/* * 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) { TMS_null = 0, // Unknown Operation TMS_abs, // Absolute value of Acc TMS_adcb, // Add ACCB to Acc With Carry TMS_add, // Add to Acc TMS_addb, // Add ACCB to Acc TMS_addc, // Add to Acc With Carry TMS_adds, // Add to Acc With Sign-Extension Suppressed TMS_addt, // Add to Acc With Shift Specified by TREG1 TMS_adrk, // Add to Aux Register With Short Immediate TMS_and, // AND With Acc TMS_andb, // AND ACCD With Acc TMS_apac, // Add P Register to Acc TMS_apl, // AND Data Memory Value With DBMR TMS_apl2, // AND Data Memory Value With Long Constant TMS_b, // Branch Unconditionally TMS_bacc, // Branch to Location (Acc) TMS_baccd, // Branch to Location (Acc) Delayed TMS_banz, // Branch on Aux Register Not Zero TMS_banzd, // Branch on Aux Register Not Zero Delayed TMS_bcnd, // Branch Conditionally TMS_bcndd, // Branch Conditionally Delayed TMS_bd, // Branch Unconditionally Delayed TMS_bit, // Test Bit TMS_bitt, // Test Bit Specified by TREG2 TMS_bldd, // Block Move From Data Memory to Data Memory TMS_bldp, // Block Move From Data Memory to Program Memory TMS_blpd, // Block Move From Program Memory to Data Memory TMS_bsar, // Barrel Shift TMS_cala, // Call Subroutine at (Acc) TMS_calad, // Call Subroutine at (Acc) Delayed TMS_call, // Call Unconditionally TMS_calld, // Call Unconditionally Delayed TMS_cc, // Call Conditionally TMS_ccd, // Call Conditionally Delayed TMS_clrc, // Clear Control Bit TMS_cmpl, // Complement Acc TMS_cmpr, // Compare Aux Register With ARCR TMS_cpl, // Compare DBMR With Data Value TMS_cpl2, // Compare Long Immediate With Data Value TMS_crgt, // Test for Acc Greater Than ACCB TMS_crlt, // Test for Acc Smaller Than ACCB TMS_dmov, // Data Move in Data Memory TMS_estop, // Emulator Stop TMS_exar, // Exchange ACCB With Acc TMS_idle, // Idle Until Interrupt TMS_idle2, // Idle Until Interrupt - Low Power Mode TMS_in, // Input Data From Port TMS_intr, // Soft Interrupt TMS_lacb, // Load Acc With ACCB TMS_lacc, // Load Acc With Shift TMS_lacl, // Load Low Acc and Clear High Acc TMS_lact, // Load Acc With Shift Specified by TREG1 TMS_lamm, // Load Acc With Memory-Mapped Register TMS_lar, // Load Aux Register TMS_ldp, // Load Data Memory Pointer TMS_lmmr, // Load Memory-Mapped Register TMS_lph, // Load Product High Register TMS_lst, // Load Status Register TMS_lt, // Load TREG0 TMS_lta, // Load TREG0 and Accumulate Previous Product TMS_ltd, // Load TREG0,Accumulate Previous Product and Move Data TMS_ltp, // Load TREG0 and Store P -> Acc TMS_lts, // Load TREG0 and Subtract Previous Product TMS_mac, // Multiply and Accumulate TMS_macd, // Multiply and Accumulate With Data Move TMS_madd, // Multiply and Accumulate With Data Move and Dynamic Addressing TMS_mads, // Multiply and Accumulate With Dynamic Addressing TMS_mar, // Modify Aux Register TMS_mpy, // Multiply TMS_mpya, // Multiply and Accumulate Previous Product TMS_mpys, // Multiply and Subtract Previous Product TMS_mpyu, // Multiply Unsigned TMS_neg, // Negate Acc TMS_nmi, // Nonmaskable Interrupt TMS_nop, // No Operation TMS_norm, // Normalize Contents of Acc TMS_opl, // OR With DBMS TMS_opl2, // OR With Long Immediate TMS_or, // OR With Acc TMS_orb, // OR ACCB With Accumulator TMS_out, // Out Data to Port TMS_pac, // Load Acc <- P TMS_pop, // Pop Top of Stack to Low Acc TMS_popd, // Pop Top of Stack to Data Memory TMS_pshd, // Push Data Memory Value Onto Stack TMS_push, // Push Low Acc Onto Stack TMS_ret, // Return From Subroutine TMS_retc, // Return Conditionally TMS_retcd, // Return Conditionally Delayed TMS_retd, // Return From Subroutine Delayed TMS_rete, // Enable Interrupts and Return From Interrupt TMS_reti, // Return From Interrupt TMS_rol, // Rotate Acc Left TMS_rolb, // Rotate ACCB and Acc Left TMS_ror, // Rotate Acc Right TMS_rorb, // Rotate ACCB and Acc Right TMS_rpt, // Repeat Next Instruction TMS_rptb, // Repeat Block TMS_rptz, // Repeat Preceded by Clearing Acc and P TMS_sacb, // Store Acc in ACCB TMS_sach, // Store High Acc With Shift TMS_sacl, // Store Low Acc With Shift TMS_samm, // Store Acc in Memory-Mapped Register TMS_sar, // Store Aux Register TMS_sath, // Barrel Shift Acc as Specified by TREG1(4) TMS_satl, // Barrel Shift Acc as Specified by TREG1(3-0) TMS_sbb, // Subtract ACCB From Acc TMS_sbbb, // Subtract ACCB From Acc With Borrow TMS_sbrk, // Subtract From Aux Register Short Immediate TMS_setc, // Set Control Bit TMS_sfl, // Shift Acc Left TMS_sflb, // Shift ACCB and Acc Left TMS_sfr, // Shift Acc Right TMS_sfrb, // Shift ACCB and Acc Right TMS_smmr, // Store Memory-Mapped Register TMS_spac, // Subtract P From Acc TMS_sph, // Store High P Register TMS_spl, // Store Low P Register TMS_splk, // Store Parallel Long Immediate TMS_spm, // Store ACCB and Acc Right TMS_sqra, // Square and Accumulate Previous Product TMS_sqrs, // Square and Subtract Previous Product TMS_sst, // Store Status Register TMS_sub, // Subtract From Acc TMS_subb, // Subtract From Acc With Borrow TMS_subc, // Conditional Subtract TMS_subs, // Subtract From Acc With Sign-Extension Suppressed TMS_subt, // Subtract From Acc With Shift Specified by TREG1 TMS_tblr, // Table Read TMS_tblw, // Table Write TMS_trap, // Software Interrupt TMS_xc, // Execute Conditionally TMS_xor, // Exclusive-OR With Acc TMS_xorb, // Exclusive-OR of ACCB With Acc TMS_xpl, // Exclusive-OR Data Memory Value TMS_xpl2, // Exclusive-OR Data Memory Value TMS_zalr, // Zero Low Acc Load High Acc With Rounding TMS_zap, // Zero Acc and P TMS_zpr, // Zero P Register // // TMS320C2x instructions // TMS2_abs, // Absolute value of accumulator TMS2_add, // Add to accumulator with shift TMS2_addc, // Add to accumulator with carry TMS2_addh, // Add to high accumulator TMS2_addk, // Add to accumulator short immediate TMS2_adds, // Add to low accumulator with sign extension suppressed TMS2_addt, // Add to accumulator with shift specified by T register TMS2_adlk, // Add to accumulator long immediate with shift TMS2_adrk, // Add to auxiliary register short immediate TMS2_and, // And with accumulator TMS2_andk, // And immediate with accumulator with shift TMS2_apac, // App P register to accumulator TMS2_b, // Branch unconditionally TMS2_bacc, // Branch to address specified by accumulator TMS2_banz, // Bnrach on auxiliary register not zero TMS2_bbnz, // Branch if tc bit != 0 TMS2_bbz, // Branch if tc bit = 0 TMS2_bc, // Branch on carry TMS2_bgez, // Branch if accumulator >= 0 TMS2_bgz, // Branch if accumulator > 0 TMS2_bioz, // Branch on i/o status = 0 TMS2_bit, // Test bit TMS2_bitt, // Test bit specifed by T register TMS2_blez, // Branch if accumulator <= 0 TMS2_blkd, // Block move from data memory to data memory TMS2_blkp, // Block move from program memory to data memory TMS2_blz, // Branch if accumulator < 0 TMS2_bnc, // Branch on no carry TMS2_bnv, // Branch if no overflow TMS2_bnz, // Branch if accumulator != 0 TMS2_bv, // Branch on overflow TMS2_bz, // Branch if accumulator = 0 TMS2_cala, // Call subroutine indirect TMS2_call, // Call subroutine TMS2_cmpl, // Complement accumulator TMS2_cmpr, // Compare auxiliary register with auxiliary register ar0 TMS2_cnfd, // Configure block as data memory TMS2_cnfp, // Configure block as program memory TMS2_conf, // Configure block as data/program memory TMS2_dint, // Disable interrupt TMS2_dmov, // Data move in data memory TMS2_eint, // Enable interrupt TMS2_fort, // Format serial port registers TMS2_idle, // Idle until interrupt TMS2_in, // Input data from port TMS2_lac, // Load accumulator with shift TMS2_lack, // Load accumulator short immediate TMS2_lact, // Load accumulator with shift specified by T register TMS2_lalk, // Load accumulator long immediate with shift TMS2_lar, // Load auxiliary register TMS2_lark, // Load auxiliary register short immediate TMS2_larp, // Load auxiliary register pointer TMS2_ldp, // Load data memory page pointer TMS2_ldpk, // Load data memory page pointer immediate TMS2_lph, // Load high P register TMS2_lrlk, // Load auxiliary register long immediate TMS2_lst, // Load status register ST0 TMS2_lst1, // Load status register ST1 TMS2_lt, // Load T register TMS2_lta, // Load T register and accumulate previous product TMS2_ltd, // Load T register, accumulate previous product and move data TMS2_ltp, // Load T register and store P register in accumulator TMS2_lts, // Load T register and subtract previous product TMS2_mac, // Multiply and accumulate TMS2_macd, // Multiply and accumulate with data move TMS2_mar, // Modify auxiliary register TMS2_mpy, // Multiply (with T register, store product in P register) TMS2_mpya, // Multiply and accumulate previous product TMS2_mpyk, // Multiply immediate TMS2_mpys, // Multiply and subtract previous product TMS2_mpyu, // Multiply unsigned TMS2_neg, // Negate accumulator TMS2_nop, // No operation TMS2_norm, // Normalize contents of accumulator TMS2_or, // Or with accumulator TMS2_ork, // Or immediate with accumulator with shift TMS2_out, // Output data to port TMS2_pac, // Load accumulator with P register TMS2_pop, // Pop top of stack to low accumulator TMS2_popd, // Pop top of stack to data memory TMS2_pshd, // Push data memory value onto stack TMS2_push, // Push low accumulator onto stack TMS2_rc, // Reset carry bit TMS2_ret, // Return from subroutine TMS2_rfsm, // Reset serial port frame synchronization mode TMS2_rhm, // Reset hold mode TMS2_rol, // Rotate accumulator left TMS2_ror, // Rotate acuumulator right TMS2_rovm, // Reset overflow mode TMS2_rpt, // Repeat instruction as specified by data memory value TMS2_rptk, // Repeat instruction as specified by immediate value TMS2_rsxm, // Reset sign extension mode TMS2_rtc, // Reset test/control flag TMS2_rtxm, // Reset serial port transmit mode TMS2_rxf, // Reset external flag TMS2_sach, // Store high accumulator with shift TMS2_sacl, // Store low accumulator with shift TMS2_sar, // Store auxiliary register TMS2_sblk, // Subtract from accumulator long immediate with shift TMS2_sbrk, // Subtract from auxiliary register short immediate TMS2_sc, // Set carry bit TMS2_sfl, // Shift accumulator left TMS2_sfr, // Shift accumulator right TMS2_sfsm, // Set serial port frame synchronization mode TMS2_shm, // Set hold mode TMS2_sovm, // Set overflow mode TMS2_spac, // Subtract P register from accumulator TMS2_sph, // Store high P register TMS2_spl, // Store low P register TMS2_spm, // Set P register output shift mode TMS2_sqra, // Square and accumulate TMS2_sqrs, // Square and subtract previous product TMS2_sst, // Store status register ST0 TMS2_sst1, // Store status register ST1 TMS2_ssxm, // Set sign extension mode TMS2_stc, // Set test/control flag TMS2_stxm, // Set serial port transmit mode TMS2_sub, // Subtract from accumulator with shift TMS2_subb, // Subtract from accumulator with borrow TMS2_subc, // Conditional subtract TMS2_subh, // Subtract from high accumulator TMS2_subk, // Subtract from accumulator shoft immediate TMS2_subs, // Subtract from low accumulator with sign extension suppressed TMS2_subt, // Subtract from accumulator with shift specified by T register TMS2_sxf, // Set external flag TMS2_tblr, // Table read TMS2_tblw, // Table write TMS2_trap, // Software interrupt TMS2_xor, // Exclusive or with accumulator TMS2_xork, // Exclusive or immediate with accumulator with shift TMS2_zac, // Zero accumulator TMS2_zalh, // Zero low accumulator and load high accumulator TMS2_zalr, // Zero low accumulator and load high accumulator with rounding TMS2_zals, // Zero low accumulator and load high accumulator with sign extension suppressed TMS_last, }; #endif