root / target-cris / crisv10-decode.h @ ef5b2344
History | View | Annotate | Download (3.4 kB)
1 |
/*
|
---|---|
2 |
* CRISv10 insn decoding macros.
|
3 |
*
|
4 |
* Copyright (c) 2010 AXIS Communications AB
|
5 |
* Written by Edgar E. Iglesias.
|
6 |
*
|
7 |
* This library is free software; you can redistribute it and/or
|
8 |
* modify it under the terms of the GNU Lesser General Public
|
9 |
* License as published by the Free Software Foundation; either
|
10 |
* version 2 of the License, or (at your option) any later version.
|
11 |
*
|
12 |
* This library is distributed in the hope that it will be useful,
|
13 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15 |
* Lesser General Public License for more details.
|
16 |
*
|
17 |
* You should have received a copy of the GNU Lesser General Public
|
18 |
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
19 |
*/
|
20 |
|
21 |
#define CRISV10_MODE_QIMMEDIATE 0 |
22 |
#define CRISV10_MODE_REG 1 |
23 |
#define CRISV10_MODE_INDIRECT 2 |
24 |
#define CRISV10_MODE_AUTOINC 3 |
25 |
|
26 |
/* Quick Immediate. */
|
27 |
#define CRISV10_QIMM_BCC_R0 0 |
28 |
#define CRISV10_QIMM_BCC_R1 1 |
29 |
#define CRISV10_QIMM_BCC_R2 2 |
30 |
#define CRISV10_QIMM_BCC_R3 3 |
31 |
|
32 |
#define CRISV10_QIMM_BDAP_R0 4 |
33 |
#define CRISV10_QIMM_BDAP_R1 5 |
34 |
#define CRISV10_QIMM_BDAP_R2 6 |
35 |
#define CRISV10_QIMM_BDAP_R3 7 |
36 |
|
37 |
#define CRISV10_QIMM_ADDQ 8 |
38 |
#define CRISV10_QIMM_MOVEQ 9 |
39 |
#define CRISV10_QIMM_SUBQ 10 |
40 |
#define CRISV10_QIMM_CMPQ 11 |
41 |
#define CRISV10_QIMM_ANDQ 12 |
42 |
#define CRISV10_QIMM_ORQ 13 |
43 |
#define CRISV10_QIMM_ASHQ 14 |
44 |
#define CRISV10_QIMM_LSHQ 15 |
45 |
|
46 |
|
47 |
#define CRISV10_REG_ADDX 0 |
48 |
#define CRISV10_REG_MOVX 1 |
49 |
#define CRISV10_REG_SUBX 2 |
50 |
#define CRISV10_REG_LSL 3 |
51 |
#define CRISV10_REG_ADDI 4 |
52 |
#define CRISV10_REG_BIAP 5 |
53 |
#define CRISV10_REG_NEG 6 |
54 |
#define CRISV10_REG_BOUND 7 |
55 |
#define CRISV10_REG_ADD 8 |
56 |
#define CRISV10_REG_MOVE_R 9 |
57 |
#define CRISV10_REG_MOVE_SPR_R 9 |
58 |
#define CRISV10_REG_MOVE_R_SPR 8 |
59 |
#define CRISV10_REG_SUB 10 |
60 |
#define CRISV10_REG_CMP 11 |
61 |
#define CRISV10_REG_AND 12 |
62 |
#define CRISV10_REG_OR 13 |
63 |
#define CRISV10_REG_ASR 14 |
64 |
#define CRISV10_REG_LSR 15 |
65 |
|
66 |
#define CRISV10_REG_BTST 3 |
67 |
#define CRISV10_REG_SCC 4 |
68 |
#define CRISV10_REG_SETF 6 |
69 |
#define CRISV10_REG_CLEARF 7 |
70 |
#define CRISV10_REG_BIAP 5 |
71 |
#define CRISV10_REG_ABS 10 |
72 |
#define CRISV10_REG_DSTEP 11 |
73 |
#define CRISV10_REG_LZ 12 |
74 |
#define CRISV10_REG_NOT 13 |
75 |
#define CRISV10_REG_SWAP 13 |
76 |
#define CRISV10_REG_XOR 14 |
77 |
#define CRISV10_REG_MSTEP 15 |
78 |
|
79 |
/* Indirect, var size. */
|
80 |
#define CRISV10_IND_TEST 14 |
81 |
#define CRISV10_IND_MUL 4 |
82 |
#define CRISV10_IND_BDAP_M 5 |
83 |
#define CRISV10_IND_ADD 8 |
84 |
#define CRISV10_IND_MOVE_M_R 9 |
85 |
|
86 |
|
87 |
/* indirect fixed size. */
|
88 |
#define CRISV10_IND_ADDX 0 |
89 |
#define CRISV10_IND_MOVX 1 |
90 |
#define CRISV10_IND_SUBX 2 |
91 |
#define CRISV10_IND_CMPX 3 |
92 |
#define CRISV10_IND_JUMP_M 4 |
93 |
#define CRISV10_IND_DIP 5 |
94 |
#define CRISV10_IND_JUMP_R 6 |
95 |
#define CRISV10_IND_BOUND 7 |
96 |
#define CRISV10_IND_BCC_M 7 |
97 |
#define CRISV10_IND_MOVE_M_SPR 8 |
98 |
#define CRISV10_IND_MOVE_SPR_M 9 |
99 |
#define CRISV10_IND_SUB 10 |
100 |
#define CRISV10_IND_CMP 11 |
101 |
#define CRISV10_IND_AND 12 |
102 |
#define CRISV10_IND_OR 13 |
103 |
#define CRISV10_IND_MOVE_R_M 15 |
104 |
|
105 |
#define CRISV10_IND_MOVEM_M_R 14 |
106 |
#define CRISV10_IND_MOVEM_R_M 15 |
107 |
|