projects
/
soc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
290c36c
)
extra comments in svp64
author
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Mon, 25 Jan 2021 16:23:07 +0000
(16:23 +0000)
committer
Luke Kenneth Casson Leighton
<lkcl@lkcl.net>
Mon, 25 Jan 2021 16:23:07 +0000
(16:23 +0000)
src/soc/sv/trans/svp64.py
patch
|
blob
|
history
diff --git
a/src/soc/sv/trans/svp64.py
b/src/soc/sv/trans/svp64.py
index 0a9af5a6c65386def55e9b68f2a204ef7c868a3d..4955df75f7703fdab954fb814391ad4eab54326e 100644
(file)
--- a/
src/soc/sv/trans/svp64.py
+++ b/
src/soc/sv/trans/svp64.py
@@
-183,9
+183,8
@@
class SVP64:
if v30b_op not in svp64.instrs:
raise Exception("opcode %s of '%s' not an svp64 instruction" % \
(v30b_op, insn))
if v30b_op not in svp64.instrs:
raise Exception("opcode %s of '%s' not an svp64 instruction" % \
(v30b_op, insn))
- isa.instr[v30b_op].regs[0]
- v30b_regs = isa.instr[v30b_op].regs[0]
- rm = svp64.instrs[v30b_op]
+ v30b_regs = isa.instr[v30b_op].regs[0] # get regs info "RT, RA, RB"
+ rm = svp64.instrs[v30b_op] # one row of the svp64 RM CSV
print ("v3.0B op", v30b_op, "Rc=1" if rc_mode else '')
print ("v3.0B regs", opcode, v30b_regs)
print (rm)
print ("v3.0B op", v30b_op, "Rc=1" if rc_mode else '')
print ("v3.0B regs", opcode, v30b_regs)
print (rm)
@@
-210,6
+209,8
@@
class SVP64:
rfield = rfield.split(";") # s:RA;d:CR1 etc.
for r in rfield:
rtype = r[0]
rfield = rfield.split(";") # s:RA;d:CR1 etc.
for r in rfield:
rtype = r[0]
+ # TODO: ignoring s/d makes it impossible to do
+ # LD/ST-with-update.
r = r[2:] # ignore s: and d:
svp64_reg_byname[r] = i # this reg in EXTRA position 0-3
# check the regtype (if CR, record that)
r = r[2:] # ignore s: and d:
svp64_reg_byname[r] = i # this reg in EXTRA position 0-3
# check the regtype (if CR, record that)