summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-05-06 15:48:16 -0700
committerGravatar Andrew Waterman <waterman@s141.Millennium.Berkeley.EDU>2011-05-06 15:48:16 -0700
commitfe1de40ead15882cfc0f9b146112d9ef1932ecf1 (patch)
tree5863940eba237043ecd8beea6fcab377be8fd5e6
parentcd0bb4d0a40c04f09c9d87f03e40b5575312c9a8 (diff)
[opcodes] reordered RVC instructions
-rw-r--r--inst.v14
-rw-r--r--opcodes27
2 files changed, 21 insertions, 20 deletions
diff --git a/inst.v b/inst.v
index e857c8e..49f712c 100644
--- a/inst.v
+++ b/inst.v
@@ -230,20 +230,23 @@
`define VF 32'b00000_?????_????????????_010_1110011
`define C_LI 32'b00000000000000000000000000000000
`define C_ADDI 32'b00000000000000000000000000000000
-`define C_MOVE 32'b00000000000000000000000000000000
-`define C_J 32'b00000000000000000000000000000000
+`define C_ADDIW 32'b00000000000000000000000000000000
`define C_LDSP 32'b00000000000000000000000000000000
`define C_LWSP 32'b00000000000000000000000000000000
`define C_SDSP 32'b00000000000000000000000000000000
`define C_SWSP 32'b00000000000000000000000000000000
+`define C_LW0 32'b00000000000000000000000000000000
+`define C_LD0 32'b00000000000000000000000000000000
+`define C_ADD 32'b00000000000000000000000000000000
+`define C_SUB 32'b00000000000000000000000000000000
+`define C_MOVE 32'b00000000000000000000000000000000
+`define C_J 32'b00000000000000000000000000000000
`define C_LD 32'b00000000000000000000000000000000
`define C_LW 32'b00000000000000000000000000000000
`define C_SD 32'b00000000000000000000000000000000
`define C_SW 32'b00000000000000000000000000000000
`define C_BEQ 32'b00000000000000000000000000000000
`define C_BNE 32'b00000000000000000000000000000000
-`define C_LW0 32'b00000000000000000000000000000000
-`define C_LD0 32'b00000000000000000000000000000000
`define C_FLW 32'b00000000000000000000000000000000
`define C_FLD 32'b00000000000000000000000000000000
`define C_FSW 32'b00000000000000000000000000000000
@@ -255,10 +258,7 @@
`define C_SRAI 32'b00000000000000000000000000000000
`define C_SRAI32 32'b00000000000000000000000000000000
`define C_SLLIW 32'b00000000000000000000000000000000
-`define C_ADD 32'b00000000000000000000000000000000
-`define C_SUB 32'b00000000000000000000000000000000
`define C_ADD3 32'b00000000000000000000000000000000
`define C_SUB3 32'b00000000000000000000000000000000
`define C_OR3 32'b00000000000000000000000000000000
`define C_AND3 32'b00000000000000000000000000000000
-`define C_ADDIW 32'b00000000000000000000000000000000
diff --git a/opcodes b/opcodes
index 6404e27..96d8eea 100644
--- a/opcodes
+++ b/opcodes
@@ -320,20 +320,26 @@ vf 31..27=0 rs1 imm12 9..7=2 6..2=0x1C 1..0=3
# compressed instructions
c.li cimm6 crd 4..0=0
c.addi cimm6 crd 4..0=1
-c.move 15=0 crs1 crd 4..0=2
-c.j 15=1 cimm10 4..0=2
+c.addiw cimm6 crd 4..0=29
c.ldsp cimm6 crd 4..0=4
c.lwsp cimm6 crd 4..0=5
c.sdsp cimm6 crd 4..0=6
c.swsp cimm6 crd 4..0=8
+
+c.lw0 15=0 crs1 crd 4..0=18
+c.ld0 15=1 crs1 crd 4..0=18
+c.add 15=0 crs1 crd 4..0=26
+c.sub 15=1 crs1 crd 4..0=26
+c.move 15=0 crs1 crd 4..0=2
+
+c.j 15=1 cimm10 4..0=2
+
c.ld crds crs1s cimm5 4..0=9
c.lw crds crs1s cimm5 4..0=10
c.sd crs2s crs1s cimm5 4..0=12
c.sw crs2s crs1s cimm5 4..0=13
c.beq crs2s crs1s cimm5 4..0=16
c.bne crs2s crs1s cimm5 4..0=17
-c.lw0 15=0 crs1 crd 4..0=18
-c.ld0 15=1 crs1 crd 4..0=18
c.flw crds crs1s cimm5 4..0=20
c.fld crds crs1s cimm5 4..0=21
c.fsw crs2s crs1s cimm5 4..0=22
@@ -347,12 +353,7 @@ c.srai crds 12..10=4 cimm5 4..0=25
c.srai32 crds 12..10=5 cimm5 4..0=25
c.slliw crds 12..10=6 cimm5 4..0=25
-c.add crd crs1 15=0 4..0=26
-c.sub crd crs1 15=1 4..0=26
-
-c.add3 crds crs1s crs2bs 9..8=0 4..0=28
-c.sub3 crds crs1s crs2bs 9..8=1 4..0=28
-c.or3 crds crs1s crs2bs 9..8=2 4..0=28
-c.and3 crds crs1s crs2bs 9..8=3 4..0=28
-
-c.addiw cimm6 crd 4..0=29
+c.add3 crds crs1s 9..8=0 crs2bs 4..0=28
+c.sub3 crds crs1s 9..8=1 crs2bs 4..0=28
+c.or3 crds crs1s 9..8=2 crs2bs 4..0=28
+c.and3 crds crs1s 9..8=3 crs2bs 4..0=28