1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| --
library ieee;
use ieee.std_logic_1164.all;
--
--! The package implements usefull defines for the armv7
--! Instruction Set Assembly (ISA).
--
--! ISA Package
package isa is
type instName_t is (AND_LLI, AND_LLR, AND_LRI, AND_LRR, AND_ARI, AND_ARR, AND_RRI, AND_RRR,
ANDS_LLI, ANDS_LLR, ANDS_LRI, ANDS_LRR, ANDS_ARI, ANDS_ARR, ANDS_RRI, ANDS_RRR,
AND_IMM, ANDS_IMM,
EOR_LLI, EOR_LLR, EOR_LRI, EOR_LRR, EOR_ARI, EOR_ARR, EOR_RRI, EOR_RRR,
EORS_LLI, EORS_LLR, EORS_LRI, EORS_LRR, EORS_ARI, EORS_ARR, EORS_RRI, EORS_RRR,
EOR_IMM, EORS_IMM,
SUB_LLI, SUB_LLR, SUB_LRI, SUB_LRR, SUB_ARI, SUB_ARR, SUB_RRI, SUB_RRR,
SUBS_LLI, SUBS_LLR, SUBS_LRI, SUBS_LRR, SUBS_ARI, SUBS_ARR, SUBS_RRI, SUBS_RRR,
SUB_IMM, SUBS_IMM,
RSB_LLI, RSB_LLR, RSB_LRI, RSB_LRR, RSB_ARI, RSB_ARR, RSB_RRI, RSB_RRR,
RSBS_LLI, RSBS_LLR, RSBS_LRI, RSBS_LRR, RSBS_ARI, RSBS_ARR, RSBS_RRI, RSBS_RRR,
RSB_IMM, RSBS_IMM,
MUL, MULS,
MLA, MLAS,
STRH_PTRM, STRH_PTIM,
LDRH_PTRM, LDRSB_PTRM, LDRSH_PTRM, LDRH_PTIM, LDRSB_PTIM, LDRSH_PTIM,
EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN,
UNDEF);
constant OP_COND_W : natural := 4; --! condition field width
subtype op_cond_t is std_ulogic_vector(OP_COND_W - 1 downto 0); --! instruction condition field
constant OP_CODE_W : natural := 12; --! bits 27:20 and 7:4
subtype opcode_t is std_ulogic_vector(OP_CODE_W - 1 downto 0); --! cpu opcode type
type cond_t is (EQ, NE, CS, CC, MI, PL, VS, VC, HI, LS, GE, LT, GT, LE, AL);
end package isa; |