From: Joshua Wise Date: Tue, 30 Dec 2008 06:00:23 +0000 (-0500) Subject: Add decode constants. X-Git-Url: http://git.joshuawise.com/firearm.git/commitdiff_plain/35c2aa5eb94e1ed39b6bfc120424f0b208b1a62c?hp=6e3dfd7965137dd06167eaf2894a4080fb7c26ef Add decode constants. --- diff --git a/ARM_Constants.v b/ARM_Constants.v index 04dd4dd..6a54819 100644 --- a/ARM_Constants.v +++ b/ARM_Constants.v @@ -50,3 +50,22 @@ `define SHIFT_LSR 2'b01 `define SHIFT_ASR 2'b10 `define SHIFT_ROR 2'b11 + +`define DECODE_ALU_MULT 32'b????000000??????????????1001???? /* Multiply -- must come before ALU, because it pattern matches a specific case of ALU */ +`define DECODE_ALU_MUL_LONG 32'b????00001???????????????1001???? /* Multiply long */ +`define DECODE_ALU_MRS 32'b????00010?001111????000000000000 /* MRS (Transfer PSR to register) */ +`define DECODE_ALU_MSR 32'b????00010?101001111100000000???? /* MSR (Transfer register to PSR) */ +`define DECODE_ALU_MSR_FLAGS 32'b????00?10?1010001111???????????? /* MSR (Transfer register or immediate to PSR, flag bits only) */ +`define DECODE_ALU_SWP 32'b????00010?00????????00001001???? /* Atomic swap */ +`define DECODE_ALU_BX 32'b????000100101111111111110001???? /* Branch and exchange */ +`define DECODE_ALU_HDATA_REG 32'b????000??0??????????00001??1???? /* Halfword transfer - register offset */ +`define DECODE_ALU_HDATA_IMM 32'b????000??1??????????00001??1???? /* Halfword transfer - immediate offset */ +`define DECODE_ALU 32'b????00?????????????????????????? /* ALU */ +`define DECODE_LDRSTR_UNDEFINED 32'b????011????????????????????1???? /* Undefined. I hate ARM */ +`define DECODE_LDRSTR 32'b????01?????????????????????????? /* Single data transfer */ +`define DECODE_LDMSTM 32'b????100????????????????????????? /* Block data transfer */ +`define DECODE_BRANCH 32'b????101????????????????????????? /* Branch */ +`define DECODE_LDCSTC 32'b????110????????????????????????? /* Coprocessor data transfer */ +`define DECODE_CDP 32'b????1110???????????????????0???? /* Coprocessor data op */ +`define DECODE_MRCMCR 32'b????1110???????????????????1???? /* Coprocessor register transfer */ +`define DECODE_SWI 32'b????1111???????????????????????? /* SWI */