351 lines
15 KiB
C++
351 lines
15 KiB
C++
/*
|
|
* Interactive disassembler (IDA).
|
|
* Copyright (c) 1990-2021 Hex-Rays
|
|
* ALL RIGHTS RESERVED.
|
|
*
|
|
*/
|
|
|
|
#ifndef __INSTRS_HPP
|
|
#define __INSTRS_HPP
|
|
|
|
extern const instruc_t Instructions[];
|
|
|
|
enum nameNum ENUM_SIZE(uint16)
|
|
{
|
|
|
|
TMS320C55_null = 0, // Unknown Operation
|
|
|
|
// ARITHMETICAL OPERATIONS
|
|
|
|
TMS320C55_abdst, // Absolute Distance
|
|
TMS320C55_abs1, // Absolute Value
|
|
TMS320C55_abs2, // Absolute Value
|
|
|
|
TMS320C55_add1, // Addition
|
|
TMS320C55_add2, // Addition
|
|
TMS320C55_add3, // Addition
|
|
TMS320C55_add4, // Addition
|
|
TMS320C55_addv1, // Addition
|
|
TMS320C55_addv2, // Addition
|
|
TMS320C55_addrv1, // Addition and Round
|
|
TMS320C55_addrv2, // Addition and Round
|
|
|
|
TMS320C55_maxdiff, // Compare and Select Maximum
|
|
TMS320C55_dmaxdiff, // Compare and Select 40-bit Maximum
|
|
TMS320C55_mindiff, // Compare and Select Minimum
|
|
TMS320C55_dmindiff, // Compare and Select 40-bit Minimum
|
|
|
|
TMS320C55_addsubcc4, // Conditional Add or Subtract
|
|
TMS320C55_addsubcc5, // Conditional Add or Subtract
|
|
TMS320C55_addsub2cc, // Conditional Add or Subtract
|
|
|
|
TMS320C55_sftcc, // Conditional Shift
|
|
|
|
TMS320C55_subc2, // Conditional Subtract
|
|
TMS320C55_subc3, // Conditional Subtract
|
|
|
|
TMS320C55_addsub, // Paralleled Add - Subtract
|
|
TMS320C55_subadd, // Parallel Subtract - Add
|
|
|
|
TMS320C55_mpy_mpy, // Two Parallel Multiply
|
|
TMS320C55_mpy_mpyr, // Two Parallel Multiply, and Round
|
|
TMS320C55_mpy_mpy40, // Two Parallel Multiply, on 40 bits
|
|
TMS320C55_mpy_mpyr40, // Two Parallel Multiply, and Round on 40 bits
|
|
TMS320C55_mac_mpy, // Parallel Multiply - Accumulate
|
|
TMS320C55_macr_mpyr, // Parallel Multiply - Accumulate, and Round
|
|
TMS320C55_mac40_mpy40, // Parallel Multiply - Accumulate, on 40 bits
|
|
TMS320C55_macr40_mpyr40, // Parallel Multiply - Accumulate, and Round on 40 bits
|
|
TMS320C55_mas_mpy, // Parallel Multiply - Subtract
|
|
TMS320C55_masr_mpyr, // Parallel Multiply - Subtract, and Round
|
|
TMS320C55_mas40_mpy40, // Parallel Multiply - Subtract, on 40 bits
|
|
TMS320C55_masr40_mpyr40, // Parallel Multiply - Subtract, and Round on 40 bits
|
|
TMS320C55_amar_mpy, // Parallel Modify Auxiliary Register - Multiply
|
|
TMS320C55_amar_mpyr, // Parallel Modify Auxiliary Register - Multiply, and Round
|
|
TMS320C55_amar_mpy40, // Parallel Modify Auxiliary Register - Multiply, on 40 bits
|
|
TMS320C55_amar_mpyr40, // Parallel Modify Auxiliary Register - Multiply, and Round on 40 bits
|
|
TMS320C55_mac_mac, // Two Parallel Multiply and Accumulate
|
|
TMS320C55_macr_macr, // Two Parallel Multiply and Accumulate, and Round
|
|
TMS320C55_mac40_mac40, // Two Parallel Multiply and Accumulate, on 40 bits
|
|
TMS320C55_macr40_macr40, // Two Parallel Multiply and Accumulate, and Round on 40 bits
|
|
TMS320C55_mas_mac, // Parallel Multiply and Subtract - Multiply and Accumulate
|
|
TMS320C55_masr_macr, // Parallel Multiply and Subtract - Multiply and Accumulate, and Round
|
|
TMS320C55_mas40_mac40, // Parallel Multiply and Subtract - Multiply and Accumulate, on 40 bits
|
|
TMS320C55_masr40_macr40, // Parallel Multiply and Subtract - Multiply and Accumulate, and Round on 40 bits
|
|
TMS320C55_amar_mac, // Parallel Modify Auxiliary Register - Multiply and Accumulate
|
|
TMS320C55_amar_macr, // Parallel Modify Auxiliary Register - Multiply and Accumulate, and Round
|
|
TMS320C55_amar_mac40, // Parallel Modify Auxiliary Register - Multiply and Accumulate, on 40 bits
|
|
TMS320C55_amar_macr40, // Parallel Modify Auxiliary Register - Multiply and Accumulate, and Round on 40 bits
|
|
TMS320C55_mas_mas, // Two Parallel Multiply and Subtract
|
|
TMS320C55_masr_masr, // Two Parallel Multiply and Subtract, and Round
|
|
TMS320C55_mas40_mas40, // Two Parallel Multiply and Subtract, on 40 bits
|
|
TMS320C55_masr40_masr40, // Two Parallel Multiply and Subtract, and Round on 40 bits
|
|
TMS320C55_amar_mas, // Parallel Modify Auxiliary Register - Multiply and Subtract
|
|
TMS320C55_amar_masr, // Parallel Modify Auxiliary Register - Multiply and Subtract, and Round
|
|
TMS320C55_amar_mas40, // Parallel Modify Auxiliary Register - Multiply and Subtract, on 40 bits
|
|
TMS320C55_amar_masr40, // Parallel Modify Auxiliary Register - Multiply and Subtract, and Round on 40 bits
|
|
TMS320C55_mpy_mac, // Parallel Multiply - Multiply and Accumulate
|
|
TMS320C55_mpyr_macr, // Parallel Multiply - Multiply and Accumulate, and Round
|
|
TMS320C55_mpy40_mac40, // Parallel Multiply - Multiply and Accumulate, on 40 bits
|
|
TMS320C55_mpyr40_macr40, // Parallel Multiply - Multiply and Accumulate, and Round on 40 bits
|
|
TMS320C55_amar3, // Three Parallel Modify Auxiliary Registers
|
|
|
|
TMS320C55_firsadd, // Parallel Multiply and Accumulate - Add
|
|
TMS320C55_firssub, // Parallel Multiply and Accumulate - Subtract
|
|
|
|
TMS320C55_mpym_mov, // Parallel Multiply - Store
|
|
TMS320C55_mpymr_mov, // Parallel Multiply - Store, and Round
|
|
TMS320C55_macm_mov, // Parallel Multiply and Accumulate - Store
|
|
TMS320C55_macmr_mov, // Parallel Multiply and Accumulate - Store, and Round
|
|
TMS320C55_masm_mov, // Parallel Multiply and Subtract - Store
|
|
TMS320C55_masmr_mov, // Parallel Multiply and Subtract - Store, and Round
|
|
TMS320C55_add_mov, // Parallel Add - Store
|
|
TMS320C55_sub_mov, // Parallel Subtract - Store
|
|
TMS320C55_mov_mov, // Parallel Load - Store
|
|
TMS320C55_mov_aadd, // Parallel Store - aadd
|
|
TMS320C55_mov_add, // Parallel Store - Add
|
|
TMS320C55_amar_amar, // Parallel Modify Auxiliary Register - Modify Auxiliary Register
|
|
TMS320C55_add_asub, // Parallel Add - asub
|
|
TMS320C55_btst_mov, // Parallel Bit Test - Store
|
|
TMS320C55_mov_asub, // Parallel Store - asub
|
|
|
|
TMS320C55_lms, // Least Mean Square
|
|
|
|
TMS320C55_max1, // Maximum Comparison
|
|
TMS320C55_max2, // Maximum Comparison
|
|
TMS320C55_min1, // Minimum Comparison
|
|
TMS320C55_min2, // Minimum Comparison
|
|
|
|
TMS320C55_cmp, // Memory Comparison
|
|
TMS320C55_cmpu, // Unsigned memory Comparison
|
|
|
|
TMS320C55_aadd, // Add Two Registers
|
|
TMS320C55_asub, // Subtract Two Registers
|
|
TMS320C55_amov, // Move From Register to Register
|
|
TMS320C55_amar1, // Auxiliary Register Modification
|
|
|
|
TMS320C55_sqr1, // Square
|
|
TMS320C55_sqr2, // Square
|
|
TMS320C55_sqrr1, // Square and Round
|
|
TMS320C55_sqrr2, // Square and Round
|
|
TMS320C55_mpy1, // Multiply
|
|
TMS320C55_mpy2, // Multiply
|
|
TMS320C55_mpy3, // Multiply
|
|
TMS320C55_mpyr1, // Multiply and Round
|
|
TMS320C55_mpyr2, // Multiply and Round
|
|
TMS320C55_mpyr3, // Multiply and Round
|
|
TMS320C55_mpyk2, // Multiply by Constant
|
|
TMS320C55_mpyk3, // Multiply by Constant
|
|
TMS320C55_mpykr2, // Multiply by Constant and Round
|
|
TMS320C55_mpykr3, // Multiply by Constant and Round
|
|
TMS320C55_mpym2, // Multiply Memory Value
|
|
TMS320C55_mpym3, // Multiply Memory Values
|
|
TMS320C55_mpymr2, // Multiply Memory Value and Round
|
|
TMS320C55_mpymr3, // Multiply Memory Values and Round
|
|
TMS320C55_mpym403, // Multiply Memory Values on 40 bits
|
|
TMS320C55_mpymr403, // Multiply Memory Values and Round on 40 bits
|
|
TMS320C55_mpymu3, // Unsigned multiply Memory Values
|
|
TMS320C55_mpymru3, // Unsigned multiply Memory Values and Round
|
|
TMS320C55_sqrm, // Square Memory Value
|
|
TMS320C55_sqrmr, // Square Memory Value, and Round
|
|
TMS320C55_mpymk, // Multiply Memory Value by Constant
|
|
TMS320C55_mpymkr, // Multiply Memory Value by Constant and Round
|
|
|
|
TMS320C55_sqa1, // Square and Accumulate
|
|
TMS320C55_sqa2, // Square and Accumulate
|
|
TMS320C55_sqar1, // Square, Accumulate and Round
|
|
TMS320C55_sqar2, // Square, Accumulate and Round
|
|
TMS320C55_mac3, // Multiply and Accumulate
|
|
TMS320C55_mac4, // Multiply and Accumulate
|
|
TMS320C55_macr3, // Multiply, Accumulate and Round
|
|
TMS320C55_macr4, // Multiply, Accumulate and Round
|
|
TMS320C55_mack3, // Multiply by Constant and Accumulate
|
|
TMS320C55_mack4, // Multiply by Constant and Accumulate
|
|
TMS320C55_mackr3, // Multiply by Constant, Round and Accumulate
|
|
TMS320C55_mackr4, // Multiply by Constant, Round and Accumulate
|
|
TMS320C55_macm2, // Multiply and Accumulate Memory Values
|
|
TMS320C55_macm3, // Multiply and Accumulate Memory Values
|
|
TMS320C55_macm4, // Multiply and Accumulate Memory Values
|
|
TMS320C55_macmr2, // Multiply and Accumulate Memory Values, and Round
|
|
TMS320C55_macmr3, // Multiply and Accumulate Memory Values, and Round
|
|
TMS320C55_macmr4, // Multiply and Accumulate Memory Values, and Round
|
|
TMS320C55_macm403, // Multiply and Accumulate Memory Values, on 40 bits
|
|
TMS320C55_macm404, // Multiply and Accumulate Memory Values, on 40 bits
|
|
TMS320C55_macmr403, // Multiply and Accumulate Memory Values, and Round on 40 bits
|
|
TMS320C55_macmr404, // Multiply and Accumulate Memory Values, and Round on 40 bits
|
|
TMS320C55_macmz, // Multiply and Accumulate Memory Values
|
|
TMS320C55_macmrz, // Multiply and Accumulate Memory Values, and Round
|
|
TMS320C55_sqam2, // Square and Accumulate Memory Value
|
|
TMS320C55_sqam3, // Square and Accumulate Memory Values
|
|
TMS320C55_sqamr2, // Square and Accumulate Memory Value, and Round
|
|
TMS320C55_sqamr3, // Square and Accumulate Memory Values, and Round
|
|
TMS320C55_macmk3, // Multiply Memory Value by Constant and Accumulate
|
|
TMS320C55_macmk4, // Multiply Memory Value by Constant and Accumulate
|
|
TMS320C55_macmkr3, // Multiply Memory Value by Constant - Accumulate, and Round
|
|
TMS320C55_macmkr4, // Multiply Memory Value by Constant - Accumulate, and Round
|
|
|
|
TMS320C55_sqs1, // Square and Subtract
|
|
TMS320C55_sqs2, // Square and Subtract
|
|
TMS320C55_sqsr1, // Square, Subtract and Round
|
|
TMS320C55_sqsr2, // Square, Subtract and Round
|
|
|
|
TMS320C55_mas2, // Multiply and Subtract
|
|
TMS320C55_mas3, // Multiply and Subtract
|
|
TMS320C55_masr2, // Multiply, Subtract and Round
|
|
TMS320C55_masr3, // Multiply, Subtract and Round
|
|
TMS320C55_masm2, // Multiply and Subtract Memory Value
|
|
TMS320C55_masm3, // Multiply and Subtract Memory Values
|
|
TMS320C55_masm4, // Multiply and Subtract Memory Values
|
|
TMS320C55_masmr2, // Multiply and Subtract Memory Values, and Round
|
|
TMS320C55_masmr3, // Multiply and Subtract Memory Values, and Round
|
|
TMS320C55_masmr4, // Multiply and Subtract Memory Values, and Round
|
|
TMS320C55_masm403, // Multiply and Subtract Memory Values, on 40 bits
|
|
TMS320C55_masm404, // Multiply and Subtract Memory Values, on 40 bits
|
|
TMS320C55_masmr403, // Multiply and Subtract Memory Values, and Round on 40 bits
|
|
TMS320C55_masmr404, // Multiply and Subtract Memory Values, and Round on 40 bits
|
|
TMS320C55_sqsm2, // Square and Subtract Memory Values
|
|
TMS320C55_sqsm3, // Square and Subtract Memory Values
|
|
TMS320C55_sqsmr2, // Square and Subtract Memory Values, and Round
|
|
TMS320C55_sqsmr3, // Square and Subtract Memory Values, and Round
|
|
|
|
TMS320C55_neg1, // Negation
|
|
TMS320C55_neg2, // Negation
|
|
|
|
TMS320C55_mant_nexp, // Exponent and Mantissa
|
|
TMS320C55_exp, // Exponent
|
|
|
|
TMS320C55_cmpand, // Compare and AND
|
|
TMS320C55_cmpandu, // Unsigned compare and AND
|
|
TMS320C55_cmpor, // Compare and OR
|
|
TMS320C55_cmporu, // Unsigned compare and OR
|
|
|
|
TMS320C55_round1, // Round
|
|
TMS320C55_round2, // Round
|
|
|
|
TMS320C55_sat1, // Saturate
|
|
TMS320C55_sat2, // Saturate
|
|
TMS320C55_satr1, // Saturate and Round
|
|
TMS320C55_satr2, // Saturate and Round
|
|
|
|
TMS320C55_sfts2, // Signed Shift
|
|
TMS320C55_sfts3, // Signed Shift
|
|
TMS320C55_sftsc2, // Signed Shift with Carry
|
|
TMS320C55_sftsc3, // Signed Shift with Carry
|
|
|
|
TMS320C55_sqdst, // Square distance
|
|
|
|
TMS320C55_sub1, // Subtract
|
|
TMS320C55_sub2, // Subtract
|
|
TMS320C55_sub3, // Subtract
|
|
TMS320C55_sub4, // Subtract
|
|
|
|
TMS320C55_band, // Bit Field Comparison
|
|
|
|
TMS320C55_bfxpa, // Bit Field Expand
|
|
|
|
TMS320C55_bfxtr, // Bit Field Extract
|
|
|
|
TMS320C55_btst, // Bit Test
|
|
TMS320C55_bnot, // Bit NOT
|
|
TMS320C55_bclr2, // Bit Clear
|
|
TMS320C55_bset2, // Bit Set
|
|
TMS320C55_btstset, // Bit Test and Set
|
|
TMS320C55_btstclr, // Bit Test and Clear
|
|
TMS320C55_btstnot, // Bit Test and NOT
|
|
TMS320C55_btstp, // Bit Pair Test
|
|
TMS320C55_bclr1, // Bit Clear
|
|
TMS320C55_bset1, // Bit Set
|
|
|
|
TMS320C55_amar2, // Load Effective Address to Extended Auxiliary Register
|
|
TMS320C55_popboth, // Pop Extended Auxiliary Register from Stack Pointers
|
|
TMS320C55_pshboth, // Push Extended Auxiliary Register to Stack Pointers
|
|
|
|
// LOGICAL OPERATIONS
|
|
|
|
TMS320C55_bcnt, // Count Bit Field
|
|
|
|
TMS320C55_not1, // NOT
|
|
TMS320C55_not2, // NOT
|
|
|
|
TMS320C55_and1, // AND
|
|
TMS320C55_and2, // AND
|
|
TMS320C55_and3, // AND
|
|
|
|
TMS320C55_or1, // OR
|
|
TMS320C55_or2, // OR
|
|
TMS320C55_or3, // OR
|
|
|
|
TMS320C55_xor1, // XOR
|
|
TMS320C55_xor2, // XOR
|
|
TMS320C55_xor3, // XOR
|
|
|
|
TMS320C55_sftl2, // Logical Shift
|
|
TMS320C55_sftl3, // Logical Shift
|
|
|
|
TMS320C55_rol, // Rotate Left
|
|
|
|
TMS320C55_ror, // Rotate Right
|
|
|
|
// MISCELLANEOUS OPERATIONS
|
|
|
|
// MOVE OPERATIONS
|
|
|
|
TMS320C55_swap, // Swap Registers
|
|
TMS320C55_swapp, // Swap Pair Registers
|
|
TMS320C55_swap4, // Swap 4 Registers
|
|
|
|
TMS320C55_mov2, // Move Data
|
|
TMS320C55_mov3, // Move 2 Data
|
|
TMS320C55_mov402, // Move Data on 40 bits
|
|
|
|
TMS320C55_delay, // Memory Delay
|
|
|
|
TMS320C55_pop1, // Pop Top of Stack1
|
|
TMS320C55_pop2, // Pop Top of Stack2
|
|
|
|
TMS320C55_psh1, // Pop Top of Stack3
|
|
TMS320C55_psh2, // Pop Top of Stack4
|
|
|
|
// PROGRAM CONTROL OPERATIONS
|
|
|
|
TMS320C55_bcc, // Branch Conditionally
|
|
TMS320C55_bccu, // Branch Conditionally
|
|
|
|
TMS320C55_b, // Branch Unconditionally
|
|
|
|
TMS320C55_callcc, // Call Conditionally
|
|
|
|
TMS320C55_call, // Call Unconditionally
|
|
|
|
TMS320C55_xcc, // Execute Conditionally
|
|
TMS320C55_xccpart, // Execute Conditionally
|
|
|
|
TMS320C55_idle, // Idle
|
|
|
|
TMS320C55_nop, // No Operation
|
|
TMS320C55_nop_16, // No Operation
|
|
|
|
TMS320C55_rptblocal, // Repeat Block of Instructions Unconditionally
|
|
TMS320C55_rptb, // Repeat Block of Instructions Unconditionally
|
|
|
|
TMS320C55_rptcc, // Repeat Single Instruction Conditionally
|
|
|
|
TMS320C55_rpt, // Repeat Single Instruction Unconditionally
|
|
TMS320C55_rptadd, // Repeat Single Instruction Unconditionally and Add to Register
|
|
TMS320C55_rptsub, // Repeat Single Instruction Unconditionally and Subtract to Register
|
|
|
|
TMS320C55_retcc, // Return Conditionally
|
|
TMS320C55_ret, // Return Unconditionally
|
|
TMS320C55_reti, // Return from Interrupt
|
|
|
|
TMS320C55_intr, // Software Interrupt
|
|
|
|
TMS320C55_reset, // Software Reset
|
|
|
|
TMS320C55_trap, // Software Trap
|
|
|
|
TMS320C55_last
|
|
|
|
};
|
|
|
|
#endif
|