Advertisement
Guest User

Untitled

a guest
May 19th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. if opcode == 'svshape':
  2. # 1.6.33 SVM-FORM from fields.txt
  3. # |0 |6 |11 |16 |21 |25 |26 |31 |
  4. # | PO | SVxd | SVyd | SVzd | SVRM |vf | XO |
  5. insn = 22 << (31-5) # opcode 22, bits 0-5
  6. fields = list(map(int, fields))
  7. insn |= (fields[0]-1) << (31-10) # SVxd , bits 6-10
  8. insn |= (fields[1]-1) << (31-15) # SVyd , bits 11-15
  9. insn |= (fields[2]-1) << (31-20) # SVzd , bits 16-20
  10. insn |= (fields[3]) << (31-24) # SVRM , bits 21-24
  11. insn |= (fields[4]) << (31-25) # vf , bits 25
  12. insn |= 0b00001 << (31-31) # XO , bits 26..31
  13. #insn &= ((1<<32)-1)
  14. log("svshape", bin(insn))
  15. yield ".long 0x%x" % insn
  16. return
  17.  
  18. if opcode in ["setvl", "setvl."]:
  19. # 1.6.28 SVL-FORM - from fields.txt
  20. # |0 |6 |11 |16 |23 |24 |25 |26 |31 |
  21. # | PO | RT | RA | SVi |ms |vs |vf | XO |Rc |
  22. insn = 22 << (31-5) # opcode 22, bits 0-5
  23. fields = list(map(int, fields))
  24. insn |= fields[0] << (31-10) # RT , bits 6-10
  25. insn |= fields[1] << (31-15) # RA , bits 11-15
  26. insn |= (fields[2]-1) << (31-22) # SVi , bits 16-22
  27. insn |= fields[3] << (31-25) # vf , bit 25
  28. insn |= fields[4] << (31-24) # vs , bit 24
  29. insn |= fields[5] << (31-23) # ms , bit 23
  30. insn |= 0b00000 << (31-30) # XO , bits 26..30
  31. if opcode == 'setvl.':
  32. insn |= 1 << (31-31) # Rc=1 , bit 31
  33. log("setvl", bin(insn))
  34. yield ".long 0x%x" % insn
  35. return
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement