26 #ifndef __CRIS_H_INCLUDED_
27 #define __CRIS_H_INCLUDED_
29 #if !defined(__STDC__) && !defined(const)
119 #define AUTOINCR_BIT (0x04)
122 #define BDAP_QUICK_OPCODE (0x0100)
123 #define BDAP_QUICK_Z_BITS (0x0e00)
125 #define BIAP_OPCODE (0x0540)
126 #define BIAP_Z_BITS (0x0a80)
128 #define DIP_OPCODE (0x0970)
129 #define DIP_Z_BITS (0xf280)
131 #define BDAP_INDIR_LOW (0x40)
132 #define BDAP_INDIR_LOW_Z (0x80)
133 #define BDAP_INDIR_HIGH (0x09)
134 #define BDAP_INDIR_HIGH_Z (0x02)
136 #define BDAP_INDIR_OPCODE (BDAP_INDIR_HIGH * 0x0100 + BDAP_INDIR_LOW)
137 #define BDAP_INDIR_Z_BITS (BDAP_INDIR_HIGH_Z * 0x100 + BDAP_INDIR_LOW_Z)
138 #define BDAP_PC_LOW (BDAP_INDIR_LOW + REG_PC)
139 #define BDAP_INCR_HIGH (BDAP_INDIR_HIGH + AUTOINCR_BIT)
143 #define NO_CRIS_PREFIX 0
170 #define BRANCH_QUICK_LOW (0)
171 #define BRANCH_QUICK_HIGH (0)
172 #define BRANCH_QUICK_OPCODE (BRANCH_QUICK_HIGH * 0x0100 + BRANCH_QUICK_LOW)
173 #define BRANCH_QUICK_Z_BITS (0x0F00)
176 #define BA_QUICK_HIGH (BRANCH_QUICK_HIGH + CC_A * 0x10)
177 #define BA_QUICK_OPCODE (BA_QUICK_HIGH * 0x100 + BRANCH_QUICK_LOW)
180 #define BRANCH_PC_LOW (0xFF)
181 #define BRANCH_INCR_HIGH (0x0D)
182 #define BA_PC_INCR_OPCODE \
183 ((BRANCH_INCR_HIGH + CC_A * 0x10) * 0x0100 + BRANCH_PC_LOW)
189 #define JUMP_INDIR_OPCODE (0x0930)
190 #define JUMP_INDIR_Z_BITS (0xf2c0)
191 #define JUMP_PC_INCR_OPCODE \
192 (JUMP_INDIR_OPCODE + AUTOINCR_BIT * 0x0100 + REG_PC)
194 #define MOVE_M_TO_PREG_OPCODE 0x0a30
195 #define MOVE_M_TO_PREG_ZBITS 0x01c0
198 #define MOVE_PC_INCR_OPCODE_PREFIX \
199 (((BDAP_INCR_HIGH | (REG_PC << 4)) << 8) | BDAP_PC_LOW | (2 << 4))
200 #define MOVE_PC_INCR_OPCODE_SUFFIX \
201 (MOVE_M_TO_PREG_OPCODE | REG_PC | (AUTOINCR_BIT << 8))
203 #define JUMP_PC_INCR_OPCODE_V32 (0x0DBF)
206 #define BA_DWORD_OPCODE (0x0EBF)
209 #define NOP_OPCODE (0x050F)
210 #define NOP_Z_BITS (0xFFFF ^ NOP_OPCODE)
212 #define NOP_OPCODE_V32 (0x05B0)
213 #define NOP_Z_BITS_V32 (0xFFFF ^ NOP_OPCODE_V32)
219 #define NOP_OPCODE_COMMON (0x630)
220 #define NOP_OPCODE_ZBITS_COMMON (0xffff & ~NOP_OPCODE_COMMON)
223 #define LAPC_DWORD_OPCODE (0x0D7F)
224 #define LAPC_DWORD_Z_BITS (0x0fff & ~LAPC_DWORD_OPCODE)
322 #define CRIS_DIS_FLAG_MEMREF (1 << 0)
325 #define CRIS_DIS_FLAG_MEM_TARGET_IS_REG (1 << 1)
328 #define CRIS_DIS_FLAG_MEM_TARGET2_IS_REG (1 << 2)
332 #define CRIS_DIS_FLAG_MEM_TARGET2_MULT2 (1 << 3)
336 #define CRIS_DIS_FLAG_MEM_TARGET2_MULT4 (1 << 4)
341 #define CRIS_DIS_FLAG_MEM_TARGET2_MEM (1 << 5)
345 #define CRIS_DIS_FLAG_MEM_TARGET2_MEM_BYTE (1 << 6)
349 #define CRIS_DIS_FLAG_MEM_TARGET2_MEM_WORD (1 << 7)
@ cris_none_reg_mode_add_sub_cmp_and_or_move_op
@ cris_reg_mode_move_from_preg_op
@ cris_eight_bit_offset_branch_op
@ cris_move_mem_to_reg_movem_op
@ cris_quick_mode_and_cmp_move_or_op
@ cris_quick_mode_add_sub_op
@ cris_quick_mode_bdap_prefix
@ cris_three_operand_bound_op
@ cris_dstep_logshift_mstep_neg_not_op
@ cris_move_reg_to_mem_movem_op
@ cris_sixteen_bit_offset_branch_op
@ cris_none_reg_mode_jump_op
@ cris_reg_mode_add_sub_cmp_and_or_move_op
@ cris_not_implemented_op
@ cris_none_reg_mode_move_from_preg_op
@ cris_two_operand_bound_op
@ cris_none_reg_mode_clear_test_op
@ cris_three_operand_add_sub_cmp_and_or_op
const struct cris_cond15 cris_conds15[]
const char *const cris_cc_strings[]
const struct cris_support_reg cris_support_regs[]
const struct cris_spec_reg cris_spec_regs[]
const struct cris_opcode cris_opcodes[]
enum cris_insn_version_usage applicable_version
enum cris_imm_oprnd_size_type imm_oprnd_size
enum cris_insn_version_usage applicable_version
enum cris_insn_version_usage applicable_version
const char *const warning