Add condition checking logic.
[firearm.git] / ARM_Constants.v
1 `define COND_EQ 4'b0000 /* Z set */
2 `define COND_NE 4'b0001 /* Z clear */
3 `define COND_CS 4'b0010 /* C set */
4 `define COND_CC 4'b0011 /* C clear */
5 `define COND_MI 4'b0100 /* N set */
6 `define COND_PL 4'b0101 /* N clear */
7 `define COND_VS 4'b0110 /* V set */
8 `define COND_VC 4'b0111 /* V clear */
9 `define COND_HI 4'b1000 /* C set and Z clear */
10 `define COND_LS 4'b1001 /* C clear or Z set */
11 `define COND_GE 4'b1010 /* N equal to V */
12 `define COND_LT 4'b1011 /* N not equal to V */
13 `define COND_GT 4'b1100 /* Z clear AND (N equals V) */
14 `define COND_LE 4'b1101 /* Z set OR (N not equals V) */
15 `define COND_AL 4'b1110 /* TRUE */
16 `define COND_NV 4'b1111 /* FALSE */
17
18 `define COND_MATTERS(x) ((x != `COND_AL) && (x != `COND_NV))
19
20 `define ALU_AND 4'b0000
21 `define ALU_EOR 4'b0001
22 `define ALU_SUB 4'b0010
23 `define ALU_RSB 4'b0011
24 `define ALU_ADD 4'b0100
25 `define ALU_ADC 4'b0101
26 `define ALU_SBC 4'b0110
27 `define ALU_RBC 4'b0111
28 `define ALU_TST 4'b1000
29 `define ALU_TEQ 4'b1001
30 `define ALU_CMP 4'b1010
31 `define ALU_CMN 4'b1011
32 `define ALU_ORR 4'b1100
33 `define ALU_MOV 4'b1101
34 `define ALU_BIC 4'b1110
35 `define ALU_MVN 4'b1111
36
37 `define SHIFT_LSL 2'b00
38 `define SHIFT_LSR 2'b01
39 `define SHIFT_ASR 2'b10
40 `define SHIFT_ROR 2'b11
41
42 `define CPSR_N  31
43 `define CPSR_Z  30
44 `define CPSR_C  29
45 `define CPSR_V  28
46 `define CPSR_I  7
47 `define CPSR_F  6
This page took 0.202799 seconds and 4 git commands to generate.