From fe1de40ead15882cfc0f9b146112d9ef1932ecf1 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Fri, 6 May 2011 15:48:16 -0700 Subject: [opcodes] reordered RVC instructions --- inst.v | 14 +++++++------- opcodes | 27 ++++++++++++++------------- 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 -- cgit v1.2.3