#include <errno.h>#include <math.h>#include "sysdep.h"#include "dis-asm.h"#include "opcode/tic30.h"

Go to the source code of this file.
Data Types | |
| type | instruction |
Defines | |
| #define | NORMAL_INSN 1 |
| #define | PARALLEL_INSN 2 |
| #define | GET_TYPE(insn) (insn & 0x80000000 ? insn & 0xC0000000 : insn & 0xE0000000) |
| #define | TWO_OPERAND_1 0x00000000 |
| #define | TWO_OPERAND_2 0x40000000 |
| #define | THREE_OPERAND 0x20000000 |
| #define | PAR_STORE 0xC0000000 |
| #define | MUL_ADDS 0x80000000 |
| #define | BRANCHES 0x60000000 |
| #define | NORMAL_IDEN 0x1F800000 |
| #define | PAR_STORE_IDEN 0x3E000000 |
| #define | MUL_ADD_IDEN 0x2C000000 |
| #define | BR_IMM_IDEN 0x1F000000 |
| #define | BR_COND_IDEN 0x1C3F0000 |
| #define | AM_REGISTER 0x00000000 |
| #define | AM_DIRECT 0x00200000 |
| #define | AM_INDIRECT 0x00400000 |
| #define | AM_IMM 0x00600000 |
| #define | P_FIELD 0x03000000 |
| #define | REG_AR0 0x08 |
| #define | LDP_INSN 0x08700000 |
Functions/Subroutines | |
| int get_tic30_instruction | PARAMS ((unsigned long, struct instruction *)) |
| int print_two_operand | PARAMS ((disassemble_info *, unsigned long, struct instruction *)) |
| int get_indirect_operand | PARAMS ((unsigned short, int, char *)) |
| int get_register_operand | PARAMS ((unsigned char, char *)) |
| int cnvt_tmsfloat_ieee | PARAMS ((unsigned long, int, float *)) |
| int | print_insn_tic30 (bfd_vma pc, disassemble_info *info) |
| int | get_tic30_instruction (unsigned long insn_word, struct instruction *insn) |
| int | print_two_operand (disassemble_info *info, unsigned long insn_word, struct instruction *insn) |
| int | print_three_operand (disassemble_info *info, unsigned long insn_word, struct instruction *insn) |
| int | print_par_insn (disassemble_info *info, unsigned long insn_word, struct instruction *insn) |
| int | print_branch (disassemble_info *info, unsigned long insn_word, struct instruction *insn) |
| int | get_indirect_operand (unsigned short fragment, int size, char *buffer) |
| int | get_register_operand (unsigned char fragment, char *buffer) |
| int | cnvt_tmsfloat_ieee (unsigned long tmsfloat, int size, float *ieeefloat) |
Variables | |
| static unsigned int | _pc |
| #define AM_DIRECT 0x00200000 |
Definition at line 50 of file tic30-dis.c.
Referenced by print_three_operand(), and print_two_operand().
| #define AM_IMM 0x00600000 |
Definition at line 52 of file tic30-dis.c.
Referenced by print_three_operand(), and print_two_operand().
| #define AM_INDIRECT 0x00400000 |
Definition at line 51 of file tic30-dis.c.
Referenced by print_three_operand(), and print_two_operand().
| #define AM_REGISTER 0x00000000 |
Definition at line 49 of file tic30-dis.c.
Referenced by print_three_operand(), and print_two_operand().
| #define BR_COND_IDEN 0x1C3F0000 |
| #define BR_IMM_IDEN 0x1F000000 |
| #define BRANCHES 0x60000000 |
Definition at line 39 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
Definition at line 31 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
| #define LDP_INSN 0x08700000 |
| #define MUL_ADD_IDEN 0x2C000000 |
| #define MUL_ADDS 0x80000000 |
Definition at line 38 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
| #define NORMAL_IDEN 0x1F800000 |
| #define NORMAL_INSN 1 |
| #define P_FIELD 0x03000000 |
| #define PAR_STORE 0xC0000000 |
Definition at line 37 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
| #define PAR_STORE_IDEN 0x3E000000 |
| #define PARALLEL_INSN 2 |
| #define REG_AR0 0x08 |
Definition at line 56 of file tic30-dis.c.
Referenced by print_branch(), regno_reg_class(), tic4x_print_indirect(), and tic4x_print_op().
| #define THREE_OPERAND 0x20000000 |
Definition at line 36 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
| #define TWO_OPERAND_1 0x00000000 |
Definition at line 34 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
| #define TWO_OPERAND_2 0x40000000 |
Definition at line 35 of file tic30-dis.c.
Referenced by get_tic30_instruction(), and print_insn_tic30().
| int cnvt_tmsfloat_ieee | ( | unsigned long | tmsfloat, | |
| int | size, | |||
| float * | ieeefloat | |||
| ) |
Definition at line 660 of file tic30-dis.c.
References exp, f, long, and val.
Referenced by print_two_operand().
| int get_indirect_operand | ( | unsigned short | fragment, | |
| int | size, | |||
| char * | buffer | |||
| ) |
Definition at line 574 of file tic30-dis.c.
References DISP_REQUIRED, ind_addr_type::displacement, i, IMPLIED_DISP, len, mod, ind_addr_type::modfield, NULL, sprintf(), strlen(), ind_addr_type::syntax, tic30_indaddr_tab, and tic30_indaddrtab_end.
Referenced by print_par_insn(), print_three_operand(), and print_two_operand().
| int get_register_operand | ( | unsigned char | fragment, | |
| char * | buffer | |||
| ) |
Definition at line 640 of file tic30-dis.c.
References _register::name, NULL, _register::opcode, strcpy, tic30_regtab, and tic30_regtab_end.
Referenced by print_branch(), print_par_insn(), print_three_operand(), and print_two_operand().
| int get_tic30_instruction | ( | unsigned long | insn_word, | |
| struct instruction * | insn | |||
| ) |
Definition at line 123 of file tic30-dis.c.
References partemplate::base_opcode, BR_COND_IDEN, BR_IMM_IDEN, BRANCHES, GET_TYPE, Imm24, MUL_ADD_IDEN, MUL_ADDS, NORMAL_IDEN, NORMAL_INSN, PAR_STORE, PAR_STORE_IDEN, PARALLEL_INSN, instruction::ptm, THREE_OPERAND, tic30_optab, tic30_optab_end, tic30_paroptab, tic30_paroptab_end, instruction::tm, TWO_OPERAND_1, TWO_OPERAND_2, and instruction::type.
Referenced by print_insn_tic30().
| int cnvt_tmsfloat_ieee PARAMS | ( | (unsigned long, int, float *) | ) |
| int get_register_operand PARAMS | ( | (unsigned char, char *) | ) |
| int get_indirect_operand PARAMS | ( | (unsigned short, int, char *) | ) |
| int print_two_operand PARAMS | ( | (disassemble_info *, unsigned long, struct instruction *) | ) |
| int get_tic30_instruction PARAMS | ( | (unsigned long, struct instruction *) | ) |
| int print_branch | ( | disassemble_info * | info, | |
| unsigned long | insn_word, | |||
| struct instruction * | insn | |||
| ) |
Definition at line 488 of file tic30-dis.c.
References _pc, abs, address, get_register_operand(), Imm24, IVector, _template::name, bfd_symbol::name, NULL, _template::opcode_modifier, _template::operand_types, _template::operands, PCRel, print_label(), REG_AR0, bfd_symbol::section, short, sprintf(), sym, instruction::tm, bfd_symbol::value, and bfd_section::vma.
Referenced by print_insn_tic30().
| int print_insn_tic30 | ( | bfd_vma | pc, | |
| disassemble_info * | info | |||
| ) |
Definition at line 83 of file tic30-dis.c.
References _pc, BRANCHES, disassemble_info::buffer, disassemble_info::buffer_vma, get_tic30_instruction(), GET_TYPE, insn, MUL_ADDS, NULL, PAR_STORE, print_branch(), print_par_insn(), print_three_operand(), print_two_operand(), THREE_OPERAND, TWO_OPERAND_1, and TWO_OPERAND_2.
Referenced by disassembler().
| int print_par_insn | ( | disassemble_info * | info, | |
| unsigned long | insn_word, | |||
| struct instruction * | insn | |||
| ) |
Definition at line 366 of file tic30-dis.c.
References free(), get_indirect_operand(), get_register_operand(), i, len, partemplate::name, NULL, OO_4op1, OO_4op2, OO_4op3, OO_5op1, OO_5op2, OO_PField, partemplate::oporder, P_FIELD, instruction::ptm, strdup, and strlen().
Referenced by print_insn_tic30().
| int print_three_operand | ( | disassemble_info * | info, | |
| unsigned long | insn_word, | |||
| struct instruction * | insn | |||
| ) |
Definition at line 322 of file tic30-dis.c.
References AddressMode, AM_DIRECT, AM_IMM, AM_INDIRECT, AM_REGISTER, get_indirect_operand(), get_register_operand(), _template::name, NULL, _template::operands, and instruction::tm.
Referenced by print_insn_tic30().
| int print_two_operand | ( | disassemble_info * | info, | |
| unsigned long | insn_word, | |||
| struct instruction * | insn | |||
| ) |
Definition at line 233 of file tic30-dis.c.
References AddressMode, AM_DIRECT, AM_IMM, AM_INDIRECT, AM_REGISTER, cnvt_tmsfloat_ieee(), Direct, get_indirect_operand(), get_register_operand(), _template::imm_arg_type, Imm_Float, Imm_SInt, Imm_UInt, Indirect, LDP_INSN, _template::name, NotReq, NULL, _template::opcode_modifier, _template::operand_types, _template::operands, sprintf(), StackOp, strcpy, and instruction::tm.
Referenced by print_insn_tic30().
unsigned int _pc [static] |
1.5.6