Repository URL to install this package:
Version:
9.0~241217-2.fc42 ▾
|
idapro-debugsource
/
usr
/
src
/
debug
/
idapro-9.0~241217-2.fc42.x86_64
/
module
/
dsp56k
/
ins.cpp
|
---|
#include "dsp56k.hpp"
const instruc_t Instructions[] =
{
{ "", 0 }, // Unknown Operation
{ "abs", CF_USE1|CF_CHG1 }, // Absolute Value
{ "adc", CF_USE1|CF_USE2|CF_CHG2 }, // Add Long with Carry
{ "add", CF_USE1|CF_USE2|CF_CHG2 }, // Addition
{ "addl", CF_USE1|CF_USE2|CF_CHG2 }, // Shift Left and Add
{ "addr", CF_USE1|CF_USE2|CF_CHG2 }, // Shift Right and Add
{ "and", CF_USE1|CF_USE2|CF_CHG2 }, // Logical AND
{ "andi", CF_USE1|CF_USE2|CF_CHG2 }, // AND Immediate to Control Register
{ "asl", CF_USE1|CF_CHG1 }, // Arithmetic Shift Left
{ "asl4", CF_USE1|CF_CHG1 }, // Arithmetic Shift Left
{ "asr", CF_USE1|CF_CHG1 }, // Arithmetic Shift Right
{ "asr4", CF_USE1|CF_CHG1 }, // Arithmetic Shift Right
{ "asr16", CF_USE1|CF_CHG1 }, // Arithmetic Shift Right
{ "bfchg", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test and Change
{ "bfclr", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test and Clear
{ "bfset", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test and Set
{ "bftsth", CF_USE1|CF_USE2|CF_CHG2 }, // Test Bit Field High
{ "bftstl", CF_USE1|CF_USE2|CF_CHG2 }, // Test Bit Field Low
{ "b", CF_USE1|CF_JUMP }, // Branch Conditionally
{ "bchg", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test and Change
{ "bclr", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test and Clear
{ "bra", CF_USE1|CF_STOP|CF_JUMP }, // Branch Always
{ "brclr", CF_USE1|CF_USE2|CF_USE3|CF_JUMP }, // Branch if Bit Clear
{ "brk", CF_USE1 }, // Exit Current DO Loop Conditionally
{ "brset", CF_USE1|CF_USE2|CF_USE3|CF_JUMP }, // Branch if Bit Set
{ "bs", CF_USE1|CF_CALL }, // Branch to Subroutine Conditionally
{ "bsclr", CF_USE1|CF_USE2|CF_USE3|CF_CALL }, // Branch to Subroutine if Bit Clear
{ "bset", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test and Set
{ "bsr", CF_USE1|CF_CALL }, // Branch to Subroutine
{ "bsset", CF_USE1|CF_USE2|CF_USE3|CF_CALL }, // Branch to Subroutine if Bit Set
{ "btst", CF_USE1|CF_USE2|CF_CHG2 }, // Bit Test on Memory and Registers
{ "chkaau", 0 }, // Check address ALU result
{ "clb", CF_USE1|CF_CHG2 }, // Count Leading Bits
{ "clr", CF_USE1|CF_CHG1 }, // Clear an Operand
{ "clr24", CF_USE1|CF_CHG1 }, // Clear 24 MS-bits of Accumulator
{ "cmp", CF_USE1|CF_USE2 }, // Compare
{ "cmpm", CF_USE1|CF_USE2 }, // Compare Magnitude
{ "cmpu", CF_USE1|CF_USE2 }, // Compare Unsigned
{ "debug", 0 }, // Enter Debug Mode
{ "debug", 0 }, // Enter Debug Mode Conditionally
{ "dec", CF_USE1|CF_CHG1 }, // Decrement by One
{ "dec24", CF_USE1|CF_CHG1 }, // Decrement 24 MS-bit of Accumulator
{ "div", CF_USE1|CF_USE2|CF_CHG2 }, // Divide Iteration
{ "dmac", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Double-Precision Multiply-Accumulate With Right Shift
{ "do", CF_USE1|CF_USE2|CF_JUMP }, // Start Hardware Loop
{ "do forever,", CF_USE1|CF_JUMP }, // Start Infinite Loop
{ "dor", CF_USE1|CF_USE2|CF_JUMP }, // Start PC-Relative Hardware Loop
{ "dor forever,", CF_USE1|CF_JUMP }, // Start PC-Relative Infinite Loop
{ "enddo", 0 }, // Exit from Hardware Loop
{ "eor", CF_USE1|CF_USE2|CF_CHG2 }, // Logical Exclusive OR
{ "extract", CF_USE1|CF_USE2|CF_CHG3 }, // Extract Bit Field
{ "extractu", CF_USE1|CF_USE2|CF_CHG3 }, // Extract Unsigned Bit Field
{ "ext", CF_USE1|CF_CHG1 }, // Sign Extend Accumulator
{ "illegal", 0 }, // Illegal Instruction
{ "imac", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Integer Multiply-Accumulate
{ "impy", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Integer Multiply
{ "inc", CF_USE1|CF_CHG1 }, // Increment by One
{ "inc24", CF_USE1|CF_CHG1 }, // Increment 24 MS-bit of Accumulator
{ "insert", CF_USE1|CF_USE2|CF_CHG3 }, // Insert Bit Field
{ "j", CF_USE1|CF_JUMP }, // Jump Conditionally
{ "jclr", CF_USE1|CF_USE2|CF_USE3|CF_JUMP }, // Jump if Bit Clear
{ "jmp", CF_USE1|CF_STOP|CF_JUMP }, // Jump
{ "js", CF_USE1|CF_CALL }, // Jump to Subroutine Conditionally
{ "jsclr", CF_USE1|CF_USE2|CF_USE3|CF_CALL }, // Jump to Subroutine if Bit Clear
{ "jset", CF_USE1|CF_USE2|CF_USE3|CF_JUMP }, // Jump if Bit Set
{ "jsr", CF_USE1|CF_CALL }, // Jump to Subroutine
{ "jsset", CF_USE1|CF_USE2|CF_USE3|CF_CALL }, // Jump to Subroutine if Bit Set
{ "lra", CF_USE1|CF_CHG2 }, // Load PC-Reliative Address
{ "lsl", CF_USE1|CF_CHG1 }, // Logical Shift Left
{ "lsr", CF_USE1|CF_CHG1 }, // Logical Shift Right
{ "lua", CF_USE1|CF_CHG2 }, // Load Updated Address
{ "lea", CF_USE1|CF_CHG2 }, // Load Updated Address
{ "mac", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply-Accumulate
{ "maci", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply-Accumulate With Immediate Operand
{ "mac", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Mixed Multiply-Accumulate
{ "macr", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply-Accumulate and Round
{ "macri", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply-Accumulate and Round With Immediate Operand
{ "max", CF_USE1|CF_USE2|CF_CHG2 }, // Transfer by Signed Value
{ "maxm", CF_USE1|CF_USE2|CF_CHG2 }, // Transfer by Magnitude
{ "merge", CF_USE1|CF_USE2|CF_CHG2 }, // Merge Two Half Words
{ "move", CF_USE1|CF_CHG2 }, // Move Data Register
{ "movec", CF_USE1|CF_CHG2 }, // Move Control Register
{ "movei", CF_USE1|CF_CHG2 }, // Move Immediate Short
{ "movem", CF_USE1|CF_CHG2 }, // Move Program Memory
{ "movep", CF_USE1|CF_CHG2 }, // Move Peripheral Data
{ "moves", CF_USE1|CF_CHG2 }, // Move Absolute Short
{ "mpy", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply
{ "mpyi", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply With Immediate Operand
{ "mpy", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Mixed Multiply
{ "mpyr", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply and Round
{ "mpyri", CF_USE1|CF_USE2|CF_USE3|CF_CHG3 }, // Signed Multiply and Round With Immediate Operand
{ "neg", CF_USE1|CF_CHG1 }, // Negate Accumulator
{ "negc", CF_USE1|CF_CHG1 }, // Negate Accumulator
{ "nop", 0 }, // No Operation
{ "norm", CF_USE1|CF_USE2|CF_CHG2 }, // Norm Accumulator Iteration
{ "normf", CF_USE1|CF_USE2|CF_CHG2 }, // Fast Accumulator Normalization
{ "not", CF_USE1|CF_CHG1 }, // Logical Complement
{ "or", CF_USE1|CF_USE2|CF_CHG2 }, // Logical Inclusive OR
{ "ori", CF_USE1|CF_USE2|CF_CHG2 }, // OR Immediate to Control Register
{ "pflush", 0 }, // Program Cache Flush
{ "pflushun", 0 }, // Program Cache Flush Unlocked Sectors
{ "pfree", 0 }, // Program Cache Global Unlock
{ "plock", 0 }, // Lock Instruction Cache Sector
{ "plockr", 0 }, // Lock Instruction Cache Relative Sector
{ "punlock", 0 }, // Unlock Instruction Cache Sector
{ "punlockr", 0 }, // Unlock Instruction Cache Relative Sector
{ "rep", CF_USE1 }, // Repeat Next Instruction
{ "rep", CF_USE1 }, // Repeat Next Instruction
{ "reset", 0 }, // Reset On-Chip Peripheral Devices
{ "rnd", CF_USE1|CF_CHG1 }, // Round
{ "rol", CF_USE1|CF_CHG1 }, // Rotate Left
{ "ror", CF_USE1|CF_CHG1 }, // Rotate Right
{ "rti", CF_STOP }, // Return from Interrupt
{ "rts", CF_STOP }, // Return from Subroutine
{ "sbc", CF_USE1|CF_USE2|CF_CHG2 }, // Subtract Long with Carry
{ "stop", CF_STOP }, // Stop Processing (Low-Power Standby)
{ "sub", CF_USE1|CF_USE2|CF_CHG2 }, // Subtract
{ "subl", CF_USE1|CF_USE2|CF_CHG2 }, // Shift Left and Subtract
{ "subr", CF_USE1|CF_USE2|CF_CHG2 }, // Shift Right and Subtract
{ "swap", CF_USE1|CF_CHG1 }, // Swap Accumulator Words
{ "t", CF_USE1|CF_USE2 }, // Transfer Conditionally
{ "tfr", CF_USE1|CF_USE2 }, // Transfer Data ALU Register
{ "tfr2", CF_USE1|CF_USE2|CF_CHG2 }, // Transfer Data ALU Register
{ "tfr3", CF_USE1|CF_USE2|CF_CHG2 }, // Transfer Data ALU Register
{ "trap", 0 }, // Software Interrupt
{ "trap", 0 }, // Software Interrupt Conditionally
{ "tst", CF_USE1 }, // Test an Operand
{ "tst2", CF_USE1 }, // Test an Operand
{ "vsl", CF_USE1|CF_USE2|CF_CHG3 }, // Viterbi Shift Left
{ "wait", 0 }, // Wait for Interrupt or DMA Request (Low-Power Standby)
{ "zero", 0 }, // Zero Extend Accumulator
{ "swi", 0 }, // Software Interrupt
{ "pmov", 0 }, // Pseudo insn
};
CASSERT(qnumber(Instructions) == DSP56_last);