/* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { NN_null = 0, // Unknown Operation NN_aaa, // ASCII Adjust after Addition NN_aad, // ASCII Adjust AX before Division NN_aam, // ASCII Adjust AX after Multiply NN_aas, // ASCII Adjust AL after Subtraction NN_adc, // Add with Carry NN_add, // Add NN_and, // Logical AND NN_arpl, // Adjust RPL Field of Selector NN_bound, // Check Array Index Against Bounds NN_bsf, // Bit Scan Forward NN_bsr, // Bit Scan Reverse NN_bt, // Bit Test NN_btc, // Bit Test and Complement NN_btr, // Bit Test and Reset NN_bts, // Bit Test and Set NN_call, // Call Procedure NN_callfi, // Indirect Call Far Procedure NN_callni, // Indirect Call Near Procedure NN_cbw, // AL -> AX (with sign) NN_cwde, // AX -> EAX (with sign) NN_cdqe, // EAX -> RAX (with sign) NN_clc, // Clear Carry Flag NN_cld, // Clear Direction Flag NN_cli, // Clear Interrupt Flag NN_clts, // Clear Task-Switched Flag in CR0 NN_cmc, // Complement Carry Flag NN_cmp, // Compare Two Operands NN_cmps, // Compare Strings NN_cwd, // AX -> DX:AX (with sign) NN_cdq, // EAX -> EDX:EAX (with sign) NN_cqo, // RAX -> RDX:RAX (with sign) NN_daa, // Decimal Adjust AL after Addition NN_das, // Decimal Adjust AL after Subtraction NN_dec, // Decrement by 1 NN_div, // Unsigned Divide NN_enterw, // Make Stack Frame for Procedure Parameters NN_enter, // Make Stack Frame for Procedure Parameters NN_enterd, // Make Stack Frame for Procedure Parameters NN_enterq, // Make Stack Frame for Procedure Parameters NN_hlt, // Halt NN_idiv, // Signed Divide NN_imul, // Signed Multiply NN_in, // Input from Port NN_inc, // Increment by 1 NN_ins, // Input Byte(s) from Port to String NN_int, // Call to Interrupt Procedure NN_into, // Call to Interrupt Procedure if Overflow Flag = 1 NN_int3, // Trap to Debugger NN_iretw, // Interrupt Return NN_iret, // Interrupt Return NN_iretd, // Interrupt Return (use32) NN_iretq, // Interrupt Return (use64) NN_ja, // Jump if Above (CF=0 & ZF=0) NN_jae, // Jump if Above or Equal (CF=0) NN_jb, // Jump if Below (CF=1) NN_jbe, // Jump if Below or Equal (CF=1 | ZF=1) NN_jc, // Jump if Carry (CF=1) NN_jcxz, // Jump if CX is 0 NN_jecxz, // Jump if ECX is 0 NN_jrcxz, // Jump if RCX is 0 NN_je, // Jump if Equal (ZF=1) NN_jg, // Jump if Greater (ZF=0 & SF=OF) NN_jge, // Jump if Greater or Equal (SF=OF) NN_jl, // Jump if Less (SF!=OF) NN_jle, // Jump if Less or Equal (ZF=1 | SF!=OF) NN_jna, // Jump if Not Above (CF=1 | ZF=1) NN_jnae, // Jump if Not Above or Equal (CF=1) NN_jnb, // Jump if Not Below (CF=0) NN_jnbe, // Jump if Not Below or Equal (CF=0 & ZF=0) NN_jnc, // Jump if Not Carry (CF=0) NN_jne, // Jump if Not Equal (ZF=0) NN_jng, // Jump if Not Greater (ZF=1 | SF!=OF) NN_jnge, // Jump if Not Greater or Equal (ZF=1) NN_jnl, // Jump if Not Less (SF=OF) NN_jnle, // Jump if Not Less or Equal (ZF=0 & SF=OF) NN_jno, // Jump if Not Overflow (OF=0) NN_jnp, // Jump if Not Parity (PF=0) NN_jns, // Jump if Not Sign (SF=0) NN_jnz, // Jump if Not Zero (ZF=0) NN_jo, // Jump if Overflow (OF=1) NN_jp, // Jump if Parity (PF=1) NN_jpe, // Jump if Parity Even (PF=1) NN_jpo, // Jump if Parity Odd (PF=0) NN_js, // Jump if Sign (SF=1) NN_jz, // Jump if Zero (ZF=1) NN_jmp, // Jump NN_jmpfi, // Indirect Far Jump NN_jmpni, // Indirect Near Jump NN_jmpshort, // Jump Short (not used) NN_lahf, // Load Flags into AH Register NN_lar, // Load Access Right Byte NN_lea, // Load Effective Address NN_leavew, // High Level Procedure Exit NN_leave, // High Level Procedure Exit NN_leaved, // High Level Procedure Exit NN_leaveq, // High Level Procedure Exit NN_lgdt, // Load Global Descriptor Table Register NN_lidt, // Load Interrupt Descriptor Table Register NN_lgs, // Load Full Pointer to GS:xx NN_lss, // Load Full Pointer to SS:xx NN_lds, // Load Full Pointer to DS:xx NN_les, // Load Full Pointer to ES:xx NN_lfs, // Load Full Pointer to FS:xx NN_lldt, // Load Local Descriptor Table Register NN_lmsw, // Load Machine Status Word NN_lock, // Assert LOCK# Signal Prefix NN_lods, // Load String NN_loopw, // Loop while ECX != 0 NN_loop, // Loop while CX != 0 NN_loopd, // Loop while ECX != 0 NN_loopq, // Loop while RCX != 0 NN_loopwe, // Loop while CX != 0 and ZF=1 NN_loope, // Loop while rCX != 0 and ZF=1 NN_loopde, // Loop while ECX != 0 and ZF=1 NN_loopqe, // Loop while RCX != 0 and ZF=1 NN_loopwne, // Loop while CX != 0 and ZF=0 NN_loopne, // Loop while rCX != 0 and ZF=0 NN_loopdne, // Loop while ECX != 0 and ZF=0 NN_loopqne, // Loop while RCX != 0 and ZF=0 NN_lsl, // Load Segment Limit NN_ltr, // Load Task Register NN_mov, // Move Data NN_movsp, // Move to/from Special Registers NN_movs, // Move Byte(s) from String to String NN_movsx, // Move with Sign-Extend NN_movzx, // Move with Zero-Extend NN_mul, // Unsigned Multiplication of AL or AX NN_neg, // Two's Complement Negation NN_nop, // No Operation NN_not, // One's Complement Negation NN_or, // Logical Inclusive OR NN_out, // Output to Port NN_outs, // Output Byte(s) to Port NN_pop, // Pop a word from the Stack NN_popaw, // Pop all General Registers NN_popa, // Pop all General Registers NN_popad, // Pop all General Registers (use32) NN_popaq, // Pop all General Registers (use64) NN_popfw, // Pop Stack into Flags Register NN_popf, // Pop Stack into Flags Register NN_popfd, // Pop Stack into Eflags Register NN_popfq, // Pop Stack into Rflags Register NN_push, // Push Operand onto the Stack NN_pushaw, // Push all General Registers NN_pusha, // Push all General Registers NN_pushad, // Push all General Registers (use32) NN_pushaq, // Push all General Registers (use64) NN_pushfw, // Push Flags Register onto the Stack NN_pushf, // Push Flags Register onto the Stack NN_pushfd, // Push Flags Register onto the Stack (use32) NN_pushfq, // Push Flags Register onto the Stack (use64) NN_rcl, // Rotate Through Carry Left NN_rcr, // Rotate Through Carry Right NN_rol, // Rotate Left NN_ror, // Rotate Right NN_rep, // Repeat String Operation NN_repe, // Repeat String Operation while ZF=1 NN_repne, // Repeat String Operation while ZF=0 NN_retn, // Return Near from Procedure NN_retf, // Return Far from Procedure NN_sahf, // Store AH into Flags Register NN_sal, // Shift Arithmetic Left NN_sar, // Shift Arithmetic Right NN_shl, // Shift Logical Left NN_shr, // Shift Logical Right NN_sbb, // Integer Subtraction with Borrow NN_scas, // Compare String NN_seta, // Set Byte if Above (CF=0 & ZF=0) NN_setae, // Set Byte if Above or Equal (CF=0) NN_setb, // Set Byte if Below (CF=1) NN_setbe, // Set Byte if Below or Equal (CF=1 | ZF=1) NN_setc, // Set Byte if Carry (CF=1) NN_sete, // Set Byte if Equal (ZF=1) NN_setg, // Set Byte if Greater (ZF=0 & SF=OF) NN_setge, // Set Byte if Greater or Equal (SF=OF) NN_setl, // Set Byte if Less (SF!=OF) NN_setle, // Set Byte if Less or Equal (ZF=1 | SF!=OF) NN_setna, // Set Byte if Not Above (CF=1 | ZF=1) NN_setnae, // Set Byte if Not Above or Equal (CF=1) NN_setnb, // Set Byte if Not Below (CF=0) NN_setnbe, // Set Byte if Not Below or Equal (CF=0 & ZF=0) NN_setnc, // Set Byte if Not Carry (CF=0) NN_setne, // Set Byte if Not Equal (ZF=0) NN_setng, // Set Byte if Not Greater (ZF=1 | SF!=OF) NN_setnge, // Set Byte if Not Greater or Equal (ZF=1) NN_setnl, // Set Byte if Not Less (SF=OF) NN_setnle, // Set Byte if Not Less or Equal (ZF=0 & SF=OF) NN_setno, // Set Byte if Not Overflow (OF=0) NN_setnp, // Set Byte if Not Parity (PF=0) NN_setns, // Set Byte if Not Sign (SF=0) NN_setnz, // Set Byte if Not Zero (ZF=0) NN_seto, // Set Byte if Overflow (OF=1) NN_setp, // Set Byte if Parity (PF=1) NN_setpe, // Set Byte if Parity Even (PF=1) NN_setpo, // Set Byte if Parity Odd (PF=0) NN_sets, // Set Byte if Sign (SF=1) NN_setz, // Set Byte if Zero (ZF=1) NN_sgdt, // Store Global Descriptor Table Register NN_sidt, // Store Interrupt Descriptor Table Register NN_shld, // Double Precision Shift Left NN_shrd, // Double Precision Shift Right NN_sldt, // Store Local Descriptor Table Register NN_smsw, // Store Machine Status Word NN_stc, // Set Carry Flag NN_std, // Set Direction Flag NN_sti, // Set Interrupt Flag NN_stos, // Store String NN_str, // Store Task Register NN_sub, // Integer Subtraction NN_test, // Logical Compare NN_verr, // Verify a Segment for Reading NN_verw, // Verify a Segment for Writing NN_wait, // Wait until BUSY# Pin is Inactive (HIGH) NN_xchg, // Exchange Register/Memory with Register NN_xlat, // Table Lookup Translation NN_xor, // Logical Exclusive OR // // 486 instructions // NN_cmpxchg, // Compare and Exchange NN_bswap, // Swap bits in EAX NN_xadd, // t<-dest; dest<-src+dest; src<-t NN_invd, // Invalidate Data Cache NN_wbinvd, // Invalidate Data Cache (write changes) NN_invlpg, // Invalidate TLB entry // // Pentium instructions // NN_rdmsr, // Read Machine Status Register NN_wrmsr, // Write Machine Status Register NN_cpuid, // Get CPU ID NN_cmpxchg8b, // Compare and Exchange Eight Bytes NN_rdtsc, // Read Time Stamp Counter NN_rsm, // Resume from System Management Mode // // Pentium Pro instructions // NN_cmova, // Move if Above (CF=0 & ZF=0) NN_cmovb, // Move if Below (CF=1) NN_cmovbe, // Move if Below or Equal (CF=1 | ZF=1) NN_cmovg, // Move if Greater (ZF=0 & SF=OF) NN_cmovge, // Move if Greater or Equal (SF=OF) NN_cmovl, // Move if Less (SF!=OF) NN_cmovle, // Move if Less or Equal (ZF=1 | SF!=OF) NN_cmovnb, // Move if Not Below (CF=0) NN_cmovno, // Move if Not Overflow (OF=0) NN_cmovnp, // Move if Not Parity (PF=0) NN_cmovns, // Move if Not Sign (SF=0) NN_cmovnz, // Move if Not Zero (ZF=0) NN_cmovo, // Move if Overflow (OF=1) NN_cmovp, // Move if Parity (PF=1) NN_cmovs, // Move if Sign (SF=1) NN_cmovz, // Move if Zero (ZF=1) NN_fcmovb, // Floating Move if Below NN_fcmove, // Floating Move if Equal NN_fcmovbe, // Floating Move if Below or Equal NN_fcmovu, // Floating Move if Unordered NN_fcmovnb, // Floating Move if Not Below NN_fcmovne, // Floating Move if Not Equal NN_fcmovnbe, // Floating Move if Not Below or Equal NN_fcmovnu, // Floating Move if Not Unordered NN_fcomi, // FP Compare, result in EFLAGS NN_fucomi, // FP Unordered Compare, result in EFLAGS NN_fcomip, // FP Compare, result in EFLAGS, pop stack NN_fucomip, // FP Unordered Compare, result in EFLAGS, pop stack NN_rdpmc, // Read Performance Monitor Counter // // FPP instructuions // NN_fld, // Load Real NN_fst, // Store Real NN_fstp, // Store Real and Pop NN_fxch, // Exchange Registers NN_fild, // Load Integer NN_fist, // Store Integer NN_fistp, // Store Integer and Pop NN_fbld, // Load BCD NN_fbstp, // Store BCD and Pop NN_fadd, // Add Real NN_faddp, // Add Real and Pop NN_fiadd, // Add Integer NN_fsub, // Subtract Real NN_fsubp, // Subtract Real and Pop NN_fisub, // Subtract Integer NN_fsubr, // Subtract Real Reversed NN_fsubrp, // Subtract Real Reversed and Pop NN_fisubr, // Subtract Integer Reversed NN_fmul, // Multiply Real NN_fmulp, // Multiply Real and Pop NN_fimul, // Multiply Integer NN_fdiv, // Divide Real NN_fdivp, // Divide Real and Pop NN_fidiv, // Divide Integer NN_fdivr, // Divide Real Reversed NN_fdivrp, // Divide Real Reversed and Pop NN_fidivr, // Divide Integer Reversed NN_fsqrt, // Square Root NN_fscale, // Scale: st(0) <- st(0) * 2^st(1) NN_fprem, // Partial Remainder NN_frndint, // Round to Integer NN_fxtract, // Extract exponent and significand NN_fabs, // Absolute value NN_fchs, // Change Sign NN_fcom, // Compare Real NN_fcomp, // Compare Real and Pop NN_fcompp, // Compare Real and Pop Twice NN_ficom, // Compare Integer NN_ficomp, // Compare Integer and Pop NN_ftst, // Test NN_fxam, // Examine NN_fptan, // Partial tangent NN_fpatan, // Partial arctangent NN_f2xm1, // 2^x - 1 NN_fyl2x, // Y * lg2(X) NN_fyl2xp1, // Y * lg2(X+1) NN_fldz, // Load +0.0 NN_fld1, // Load +1.0 NN_fldpi, // Load PI=3.14... NN_fldl2t, // Load lg2(10) NN_fldl2e, // Load lg2(e) NN_fldlg2, // Load lg10(2) NN_fldln2, // Load ln(2) NN_finit, // Initialize Processor NN_fninit, // Initialize Processor (no wait) NN_fsetpm, // Set Protected Mode NN_fldcw, // Load Control Word NN_fstcw, // Store Control Word NN_fnstcw, // Store Control Word (no wait) NN_fstsw, // Store Status Word NN_fnstsw, // Store Status Word (no wait) NN_fclex, // Clear Exceptions NN_fnclex, // Clear Exceptions (no wait) NN_fstenv, // Store Environment NN_fnstenv, // Store Environment (no wait) NN_fldenv, // Load Environment NN_fsave, // Save State NN_fnsave, // Save State (no wait) NN_frstor, // Restore State NN_fincstp, // Increment Stack Pointer NN_fdecstp, // Decrement Stack Pointer NN_ffree, // Free Register NN_fnop, // No Operation NN_feni, // (8087 only) NN_fneni, // (no wait) (8087 only) NN_fdisi, // (8087 only) NN_fndisi, // (no wait) (8087 only) // // 80387 instructions // NN_fprem1, // Partial Remainder ( < half ) NN_fsincos, // t<-cos(st); st<-sin(st); push t NN_fsin, // Sine NN_fcos, // Cosine NN_fucom, // Compare Unordered Real NN_fucomp, // Compare Unordered Real and Pop NN_fucompp, // Compare Unordered Real and Pop Twice // // Instructions added 28.02.96 // NN_setalc, // Set AL to Carry Flag NN_svdc, // Save Register and Descriptor NN_rsdc, // Restore Register and Descriptor NN_svldt, // Save LDTR and Descriptor NN_rsldt, // Restore LDTR and Descriptor NN_svts, // Save TR and Descriptor NN_rsts, // Restore TR and Descriptor NN_icebp, // ICE Break Point NN_loadall, // Load the entire CPU state from ES:EDI // // MMX instructions // NN_emms, // Empty MMX state NN_movd, // Move 32 bits NN_movq, // Move 64 bits NN_packsswb, // Pack with Signed Saturation (Word->Byte) NN_packssdw, // Pack with Signed Saturation (Dword->Word) NN_packuswb, // Pack with Unsigned Saturation (Word->Byte) NN_paddb, // Packed Add Byte NN_paddw, // Packed Add Word NN_paddd, // Packed Add Dword NN_paddsb, // Packed Add with Saturation (Byte) NN_paddsw, // Packed Add with Saturation (Word) NN_paddusb, // Packed Add Unsigned with Saturation (Byte) NN_paddusw, // Packed Add Unsigned with Saturation (Word) NN_pand, // Bitwise Logical And NN_pandn, // Bitwise Logical And Not NN_pcmpeqb, // Packed Compare for Equal (Byte) NN_pcmpeqw, // Packed Compare for Equal (Word) NN_pcmpeqd, // Packed Compare for Equal (Dword) NN_pcmpgtb, // Packed Compare for Greater Than (Byte) NN_pcmpgtw, // Packed Compare for Greater Than (Word) NN_pcmpgtd, // Packed Compare for Greater Than (Dword) NN_pmaddwd, // Packed Multiply and Add NN_pmulhw, // Packed Multiply High NN_pmullw, // Packed Multiply Low NN_por, // Bitwise Logical Or NN_psllw, // Packed Shift Left Logical (Word) NN_pslld, // Packed Shift Left Logical (Dword) NN_psllq, // Packed Shift Left Logical (Qword) NN_psraw, // Packed Shift Right Arithmetic (Word) NN_psrad, // Packed Shift Right Arithmetic (Dword) NN_psrlw, // Packed Shift Right Logical (Word) NN_psrld, // Packed Shift Right Logical (Dword) NN_psrlq, // Packed Shift Right Logical (Qword) NN_psubb, // Packed Subtract Byte NN_psubw, // Packed Subtract Word NN_psubd, // Packed Subtract Dword NN_psubsb, // Packed Subtract with Saturation (Byte) NN_psubsw, // Packed Subtract with Saturation (Word) NN_psubusb, // Packed Subtract Unsigned with Saturation (Byte) NN_psubusw, // Packed Subtract Unsigned with Saturation (Word) NN_punpckhbw, // Unpack High Packed Data (Byte->Word) NN_punpckhwd, // Unpack High Packed Data (Word->Dword) NN_punpckhdq, // Unpack High Packed Data (Dword->Qword) NN_punpcklbw, // Unpack Low Packed Data (Byte->Word) NN_punpcklwd, // Unpack Low Packed Data (Word->Dword) NN_punpckldq, // Unpack Low Packed Data (Dword->Qword) NN_pxor, // Bitwise Logical Exclusive Or // // Undocumented Deschutes processor instructions // NN_fxsave, // Fast save FP context NN_fxrstor, // Fast restore FP context // Pentium II instructions NN_sysenter, // Fast Transition to System Call Entry Point NN_sysexit, // Fast Transition from System Call Entry Point // 3DNow! instructions NN_pavgusb, // Packed 8-bit Unsigned Integer Averaging NN_pfadd, // Packed Floating-Point Addition NN_pfsub, // Packed Floating-Point Subtraction NN_pfsubr, // Packed Floating-Point Reverse Subtraction NN_pfacc, // Packed Floating-Point Accumulate NN_pfcmpge, // Packed Floating-Point Comparison, Greater or Equal NN_pfcmpgt, // Packed Floating-Point Comparison, Greater NN_pfcmpeq, // Packed Floating-Point Comparison, Equal NN_pfmin, // Packed Floating-Point Minimum NN_pfmax, // Packed Floating-Point Maximum NN_pi2fd, // Packed 32-bit Integer to Floating-Point NN_pf2id, // Packed Floating-Point to 32-bit Integer NN_pfrcp, // Packed Floating-Point Reciprocal Approximation NN_pfrsqrt, // Packed Floating-Point Reciprocal Square Root Approximation NN_pfmul, // Packed Floating-Point Multiplication NN_pfrcpit1, // Packed Floating-Point Reciprocal First Iteration Step NN_pfrsqit1, // Packed Floating-Point Reciprocal Square Root First Iteration Step NN_pfrcpit2, // Packed Floating-Point Reciprocal Second Iteration Step NN_pmulhrw, // Packed Floating-Point 16-bit Integer Multiply with rounding NN_femms, // Faster entry/exit of the MMX or floating-point state NN_prefetch, // Prefetch at least a 32-byte line into L1 data cache NN_prefetchw, // Prefetch processor cache line into L1 data cache (mark as modified) // Pentium III instructions NN_addps, // Packed Single-FP Add NN_addss, // Scalar Single-FP Add NN_andnps, // Bitwise Logical And Not for Single-FP NN_andps, // Bitwise Logical And for Single-FP NN_cmpps, // Packed Single-FP Compare NN_cmpss, // Scalar Single-FP Compare NN_comiss, // Scalar Ordered Single-FP Compare and Set EFLAGS NN_cvtpi2ps, // Packed signed INT32 to Packed Single-FP conversion NN_cvtps2pi, // Packed Single-FP to Packed INT32 conversion NN_cvtsi2ss, // Scalar signed INT32 to Single-FP conversion NN_cvtss2si, // Scalar Single-FP to signed INT32 conversion NN_cvttps2pi, // Packed Single-FP to Packed INT32 conversion (truncate) NN_cvttss2si, // Scalar Single-FP to signed INT32 conversion (truncate) NN_divps, // Packed Single-FP Divide NN_divss, // Scalar Single-FP Divide NN_ldmxcsr, // Load Streaming SIMD Extensions Technology Control/Status Register NN_maxps, // Packed Single-FP Maximum NN_maxss, // Scalar Single-FP Maximum NN_minps, // Packed Single-FP Minimum NN_minss, // Scalar Single-FP Minimum NN_movaps, // Move Aligned Four Packed Single-FP NN_movhlps, // Move High to Low Packed Single-FP NN_movhps, // Move High Packed Single-FP NN_movlhps, // Move Low to High Packed Single-FP NN_movlps, // Move Low Packed Single-FP NN_movmskps, // Move Mask to Register NN_movss, // Move Scalar Single-FP NN_movups, // Move Unaligned Four Packed Single-FP NN_mulps, // Packed Single-FP Multiply NN_mulss, // Scalar Single-FP Multiply NN_orps, // Bitwise Logical OR for Single-FP Data NN_rcpps, // Packed Single-FP Reciprocal NN_rcpss, // Scalar Single-FP Reciprocal NN_rsqrtps, // Packed Single-FP Square Root Reciprocal NN_rsqrtss, // Scalar Single-FP Square Root Reciprocal NN_shufps, // Shuffle Single-FP NN_sqrtps, // Packed Single-FP Square Root NN_sqrtss, // Scalar Single-FP Square Root NN_stmxcsr, // Store Streaming SIMD Extensions Technology Control/Status Register NN_subps, // Packed Single-FP Subtract NN_subss, // Scalar Single-FP Subtract NN_ucomiss, // Scalar Unordered Single-FP Compare and Set EFLAGS NN_unpckhps, // Unpack High Packed Single-FP Data NN_unpcklps, // Unpack Low Packed Single-FP Data NN_xorps, // Bitwise Logical XOR for Single-FP Data NN_pavgb, // Packed Average (Byte) NN_pavgw, // Packed Average (Word) NN_pextrw, // Extract Word NN_pinsrw, // Insert Word NN_pmaxsw, // Packed Signed Integer Word Maximum NN_pmaxub, // Packed Unsigned Integer Byte Maximum NN_pminsw, // Packed Signed Integer Word Minimum NN_pminub, // Packed Unsigned Integer Byte Minimum NN_pmovmskb, // Move Byte Mask to Integer NN_pmulhuw, // Packed Multiply High Unsigned NN_psadbw, // Packed Sum of Absolute Differences NN_pshufw, // Packed Shuffle Word NN_maskmovq, // Byte Mask write NN_movntps, // Move Aligned Four Packed Single-FP Non Temporal NN_movntq, // Move 64 Bits Non Temporal NN_prefetcht0, // Prefetch to all cache levels NN_prefetcht1, // Prefetch to all cache levels NN_prefetcht2, // Prefetch to L2 cache NN_prefetchnta, // Prefetch to L1 cache NN_sfence, // Store Fence // Pentium III Pseudo instructions NN_cmpeqps, // Packed Single-FP Compare EQ NN_cmpltps, // Packed Single-FP Compare LT NN_cmpleps, // Packed Single-FP Compare LE NN_cmpunordps, // Packed Single-FP Compare UNORD NN_cmpneqps, // Packed Single-FP Compare NOT EQ NN_cmpnltps, // Packed Single-FP Compare NOT LT NN_cmpnleps, // Packed Single-FP Compare NOT LE NN_cmpordps, // Packed Single-FP Compare ORDERED NN_cmpeqss, // Scalar Single-FP Compare EQ NN_cmpltss, // Scalar Single-FP Compare LT NN_cmpless, // Scalar Single-FP Compare LE NN_cmpunordss, // Scalar Single-FP Compare UNORD NN_cmpneqss, // Scalar Single-FP Compare NOT EQ NN_cmpnltss, // Scalar Single-FP Compare NOT LT NN_cmpnless, // Scalar Single-FP Compare NOT LE NN_cmpordss, // Scalar Single-FP Compare ORDERED // AMD K7 instructions NN_pf2iw, // Packed Floating-Point to Integer with Sign Extend NN_pfnacc, // Packed Floating-Point Negative Accumulate NN_pfpnacc, // Packed Floating-Point Mixed Positive-Negative Accumulate NN_pi2fw, // Packed 16-bit Integer to Floating-Point NN_pswapd, // Packed Swap Double Word // Undocumented FP instructions (thanks to norbert.juffa@amd.com) NN_fstp1, // Alias of Store Real and Pop NN_fcom2, // Alias of Compare Real NN_fcomp3, // Alias of Compare Real and Pop NN_fxch4, // Alias of Exchange Registers NN_fcomp5, // Alias of Compare Real and Pop NN_ffreep, // Free Register and Pop NN_fxch7, // Alias of Exchange Registers NN_fstp8, // Alias of Store Real and Pop NN_fstp9, // Alias of Store Real and Pop // Pentium 4 instructions NN_addpd, // Add Packed Double-Precision Floating-Point Values NN_addsd, // Add Scalar Double-Precision Floating-Point Values NN_andnpd, // Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values NN_andpd, // Bitwise Logical AND of Packed Double-Precision Floating-Point Values NN_clflush, // Flush Cache Line NN_cmppd, // Compare Packed Double-Precision Floating-Point Values NN_cmpsd, // Compare Scalar Double-Precision Floating-Point Values NN_comisd, // Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS NN_cvtdq2pd, // Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values NN_cvtdq2ps, // Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values NN_cvtpd2dq, // Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers NN_cvtpd2pi, // Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers NN_cvtpd2ps, // Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values NN_cvtpi2pd, // Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values NN_cvtps2dq, // Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers NN_cvtps2pd, // Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values NN_cvtsd2si, // Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer NN_cvtsd2ss, // Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value NN_cvtsi2sd, // Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value NN_cvtss2sd, // Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value NN_cvttpd2dq, // Convert With Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers NN_cvttpd2pi, // Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers NN_cvttps2dq, // Convert With Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers NN_cvttsd2si, // Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer NN_divpd, // Divide Packed Double-Precision Floating-Point Values NN_divsd, // Divide Scalar Double-Precision Floating-Point Values NN_lfence, // Load Fence NN_maskmovdqu, // Store Selected Bytes of Double Quadword NN_maxpd, // Return Maximum Packed Double-Precision Floating-Point Values NN_maxsd, // Return Maximum Scalar Double-Precision Floating-Point Value NN_mfence, // Memory Fence NN_minpd, // Return Minimum Packed Double-Precision Floating-Point Values NN_minsd, // Return Minimum Scalar Double-Precision Floating-Point Value NN_movapd, // Move Aligned Packed Double-Precision Floating-Point Values NN_movdq2q, // Move Quadword from XMM to MMX Register NN_movdqa, // Move Aligned Double Quadword NN_movdqu, // Move Unaligned Double Quadword NN_movhpd, // Move High Packed Double-Precision Floating-Point Values NN_movlpd, // Move Low Packed Double-Precision Floating-Point Values NN_movmskpd, // Extract Packed Double-Precision Floating-Point Sign Mask NN_movntdq, // Store Double Quadword Using Non-Temporal Hint NN_movnti, // Store Doubleword Using Non-Temporal Hint NN_movntpd, // Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint NN_movq2dq, // Move Quadword from MMX to XMM Register NN_movsd, // Move Scalar Double-Precision Floating-Point Values NN_movupd, // Move Unaligned Packed Double-Precision Floating-Point Values NN_mulpd, // Multiply Packed Double-Precision Floating-Point Values NN_mulsd, // Multiply Scalar Double-Precision Floating-Point Values NN_orpd, // Bitwise Logical OR of Double-Precision Floating-Point Values NN_paddq, // Add Packed Quadword Integers NN_pause, // Spin Loop Hint NN_pmuludq, // Multiply Packed Unsigned Doubleword Integers NN_pshufd, // Shuffle Packed Doublewords NN_pshufhw, // Shuffle Packed High Words NN_pshuflw, // Shuffle Packed Low Words NN_pslldq, // Shift Double Quadword Left Logical NN_psrldq, // Shift Double Quadword Right Logical NN_psubq, // Subtract Packed Quadword Integers NN_punpckhqdq, // Unpack High Data NN_punpcklqdq, // Unpack Low Data NN_shufpd, // Shuffle Packed Double-Precision Floating-Point Values NN_sqrtpd, // Compute Square Roots of Packed Double-Precision Floating-Point Values NN_sqrtsd, // Compute Square Rootof Scalar Double-Precision Floating-Point Value NN_subpd, // Subtract Packed Double-Precision Floating-Point Values NN_subsd, // Subtract Scalar Double-Precision Floating-Point Values NN_ucomisd, // Unordered Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS NN_unpckhpd, // Unpack and Interleave High Packed Double-Precision Floating-Point Values NN_unpcklpd, // Unpack and Interleave Low Packed Double-Precision Floating-Point Values NN_xorpd, // Bitwise Logical OR of Double-Precision Floating-Point Values // AMD syscall/sysret instructions NN_syscall, // Low latency system call NN_sysret, // Return from system call // AMD64 instructions NN_swapgs, // Exchange GS base with KernelGSBase MSR // New Pentium instructions (SSE3) NN_movddup, // Move One Double-FP and Duplicate NN_movshdup, // Move Packed Single-FP High and Duplicate NN_movsldup, // Move Packed Single-FP Low and Duplicate // Missing AMD64 instructions NN_movsxd, // Move with Sign-Extend Doubleword NN_cmpxchg16b, // Compare and Exchange 16 Bytes // SSE3 instructions NN_addsubpd, // Add /Sub packed DP FP numbers NN_addsubps, // Add /Sub packed SP FP numbers NN_haddpd, // Add horizontally packed DP FP numbers NN_haddps, // Add horizontally packed SP FP numbers NN_hsubpd, // Sub horizontally packed DP FP numbers NN_hsubps, // Sub horizontally packed SP FP numbers NN_monitor, // Set up a linear address range to be monitored by hardware NN_mwait, // Wait until write-back store performed within the range specified by the MONITOR instruction NN_fisttp, // Store ST in intXX (chop) and pop NN_lddqu, // Load unaligned integer 128-bit // SSSE3 instructions NN_psignb, // Packed SIGN Byte NN_psignw, // Packed SIGN Word NN_psignd, // Packed SIGN Doubleword NN_pshufb, // Packed Shuffle Bytes NN_pmulhrsw, // Packed Multiply High with Round and Scale NN_pmaddubsw, // Multiply and Add Packed Signed and Unsigned Bytes NN_phsubsw, // Packed Horizontal Subtract and Saturate NN_phaddsw, // Packed Horizontal Add and Saturate NN_phaddw, // Packed Horizontal Add Word NN_phaddd, // Packed Horizontal Add Doubleword NN_phsubw, // Packed Horizontal Subtract Word NN_phsubd, // Packed Horizontal Subtract Doubleword NN_palignr, // Packed Align Right NN_pabsb, // Packed Absolute Value Byte NN_pabsw, // Packed Absolute Value Word NN_pabsd, // Packed Absolute Value Doubleword // VMX instructions NN_vmcall, // Call to VM Monitor NN_vmclear, // Clear Virtual Machine Control Structure NN_vmlaunch, // Launch Virtual Machine NN_vmresume, // Resume Virtual Machine NN_vmptrld, // Load Pointer to Virtual Machine Control Structure NN_vmptrst, // Store Pointer to Virtual Machine Control Structure NN_vmread, // Read Field from Virtual Machine Control Structure NN_vmwrite, // Write Field from Virtual Machine Control Structure NN_vmxoff, // Leave VMX Operation NN_vmxon, // Enter VMX Operation // Undefined Instruction NN_ud2, // Undefined Instruction // Added with x86-64 NN_rdtscp, // Read Time-Stamp Counter and Processor ID // Geode LX 3DNow! extensions NN_pfrcpv, // Reciprocal Approximation for a Pair of 32-bit Floats NN_pfrsqrtv, // Reciprocal Square Root Approximation for a Pair of 32-bit Floats // SSE2 pseudoinstructions NN_cmpeqpd, // Packed Double-FP Compare EQ NN_cmpltpd, // Packed Double-FP Compare LT NN_cmplepd, // Packed Double-FP Compare LE NN_cmpunordpd, // Packed Double-FP Compare UNORD NN_cmpneqpd, // Packed Double-FP Compare NOT EQ NN_cmpnltpd, // Packed Double-FP Compare NOT LT NN_cmpnlepd, // Packed Double-FP Compare NOT LE NN_cmpordpd, // Packed Double-FP Compare ORDERED NN_cmpeqsd, // Scalar Double-FP Compare EQ NN_cmpltsd, // Scalar Double-FP Compare LT NN_cmplesd, // Scalar Double-FP Compare LE NN_cmpunordsd, // Scalar Double-FP Compare UNORD NN_cmpneqsd, // Scalar Double-FP Compare NOT EQ NN_cmpnltsd, // Scalar Double-FP Compare NOT LT NN_cmpnlesd, // Scalar Double-FP Compare NOT LE NN_cmpordsd, // Scalar Double-FP Compare ORDERED // SSSE4.1 instructions NN_blendpd, // Blend Packed Double Precision Floating-Point Values NN_blendps, // Blend Packed Single Precision Floating-Point Values NN_blendvpd, // Variable Blend Packed Double Precision Floating-Point Values NN_blendvps, // Variable Blend Packed Single Precision Floating-Point Values NN_dppd, // Dot Product of Packed Double Precision Floating-Point Values NN_dpps, // Dot Product of Packed Single Precision Floating-Point Values NN_extractps, // Extract Packed Single Precision Floating-Point Value NN_insertps, // Insert Packed Single Precision Floating-Point Value NN_movntdqa, // Load Double Quadword Non-Temporal Aligned Hint NN_mpsadbw, // Compute Multiple Packed Sums of Absolute Difference NN_packusdw, // Pack with Unsigned Saturation NN_pblendvb, // Variable Blend Packed Bytes NN_pblendw, // Blend Packed Words NN_pcmpeqq, // Compare Packed Qword Data for Equal NN_pextrb, // Extract Byte NN_pextrd, // Extract Dword NN_pextrq, // Extract Qword NN_phminposuw, // Packed Horizontal Word Minimum NN_pinsrb, // Insert Byte NN_pinsrd, // Insert Dword NN_pinsrq, // Insert Qword NN_pmaxsb, // Maximum of Packed Signed Byte Integers NN_pmaxsd, // Maximum of Packed Signed Dword Integers NN_pmaxud, // Maximum of Packed Unsigned Dword Integers NN_pmaxuw, // Maximum of Packed Word Integers NN_pminsb, // Minimum of Packed Signed Byte Integers NN_pminsd, // Minimum of Packed Signed Dword Integers NN_pminud, // Minimum of Packed Unsigned Dword Integers NN_pminuw, // Minimum of Packed Word Integers NN_pmovsxbw, // Packed Move with Sign Extend NN_pmovsxbd, // Packed Move with Sign Extend NN_pmovsxbq, // Packed Move with Sign Extend NN_pmovsxwd, // Packed Move with Sign Extend NN_pmovsxwq, // Packed Move with Sign Extend NN_pmovsxdq, // Packed Move with Sign Extend NN_pmovzxbw, // Packed Move with Zero Extend NN_pmovzxbd, // Packed Move with Zero Extend NN_pmovzxbq, // Packed Move with Zero Extend NN_pmovzxwd, // Packed Move with Zero Extend NN_pmovzxwq, // Packed Move with Zero Extend NN_pmovzxdq, // Packed Move with Zero Extend NN_pmuldq, // Multiply Packed Signed Dword Integers NN_pmulld, // Multiply Packed Signed Dword Integers and Store Low Result NN_ptest, // Logical Compare NN_roundpd, // Round Packed Double Precision Floating-Point Values NN_roundps, // Round Packed Single Precision Floating-Point Values NN_roundsd, // Round Scalar Double Precision Floating-Point Values NN_roundss, // Round Scalar Single Precision Floating-Point Values // SSSE4.2 instructions NN_crc32, // Accumulate CRC32 Value NN_pcmpestri, // Packed Compare Explicit Length Strings, Return Index NN_pcmpestrm, // Packed Compare Explicit Length Strings, Return Mask NN_pcmpistri, // Packed Compare Implicit Length Strings, Return Index NN_pcmpistrm, // Packed Compare Implicit Length Strings, Return Mask NN_pcmpgtq, // Compare Packed Data for Greater Than NN_popcnt, // Return the Count of Number of Bits Set to 1 // AMD SSE4a instructions NN_extrq, // Extract Field From Register NN_insertq, // Insert Field NN_movntsd, // Move Non-Temporal Scalar Double-Precision Floating-Point NN_movntss, // Move Non-Temporal Scalar Single-Precision Floating-Point NN_lzcnt, // Leading Zero Count // xsave/xrstor instructions NN_xgetbv, // Get Value of Extended Control Register NN_xrstor, // Restore Processor Extended States NN_xsave, // Save Processor Extended States NN_xsetbv, // Set Value of Extended Control Register // Intel Safer Mode Extensions (SMX) NN_getsec, // Safer Mode Extensions (SMX) Instruction // AMD-V Virtualization ISA Extension NN_clgi, // Clear Global Interrupt Flag NN_invlpga, // Invalidate TLB Entry in a Specified ASID NN_skinit, // Secure Init and Jump with Attestation NN_stgi, // Set Global Interrupt Flag NN_vmexit, // Stop Executing Guest, Begin Executing Host NN_vmload, // Load State from VMCB NN_vmmcall, // Call VMM NN_vmrun, // Run Virtual Machine NN_vmsave, // Save State to VMCB // VMX+ instructions NN_invept, // Invalidate Translations Derived from EPT NN_invvpid, // Invalidate Translations Based on VPID // Intel Atom instructions NN_movbe, // Move Data After Swapping Bytes // Intel AES instructions NN_aesenc, // Perform One Round of an AES Encryption Flow NN_aesenclast, // Perform the Last Round of an AES Encryption Flow NN_aesdec, // Perform One Round of an AES Decryption Flow NN_aesdeclast, // Perform the Last Round of an AES Decryption Flow NN_aesimc, // Perform the AES InvMixColumn Transformation NN_aeskeygenassist, // AES Round Key Generation Assist // Carryless multiplication NN_pclmulqdq, // Carry-Less Multiplication Quadword // Returns modifies by operand size prefixes NN_retnw, // Return Near from Procedure (use16) NN_retnd, // Return Near from Procedure (use32) NN_retnq, // Return Near from Procedure (use64) NN_retfw, // Return Far from Procedure (use16) NN_retfd, // Return Far from Procedure (use32) NN_retfq, // Return Far from Procedure (use64) // RDRAND support NN_rdrand, // Read Random Number // new GPR instructions NN_adcx, // Unsigned Integer Addition of Two Operands with Carry Flag NN_adox, // Unsigned Integer Addition of Two Operands with Overflow Flag NN_andn, // Logical AND NOT NN_bextr, // Bit Field Extract NN_blsi, // Extract Lowest Set Isolated Bit NN_blsmsk, // Get Mask Up to Lowest Set Bit NN_blsr, // Reset Lowest Set Bit NN_bzhi, // Zero High Bits Starting with Specified Bit Position NN_clac, // Clear AC Flag in EFLAGS Register NN_mulx, // Unsigned Multiply Without Affecting Flags NN_pdep, // Parallel Bits Deposit NN_pext, // Parallel Bits Extract NN_rorx, // Rotate Right Logical Without Affecting Flags NN_sarx, // Shift Arithmetically Right Without Affecting Flags NN_shlx, // Shift Logically Left Without Affecting Flags NN_shrx, // Shift Logically Right Without Affecting Flags NN_stac, // Set AC Flag in EFLAGS Register NN_tzcnt, // Count the Number of Trailing Zero Bits NN_xsaveopt, // Save Processor Extended States Optimized NN_invpcid, // Invalidate Processor Context ID NN_rdseed, // Read Random Seed NN_rdfsbase, // Read FS Segment Base NN_rdgsbase, // Read GS Segment Base NN_wrfsbase, // Write FS Segment Base NN_wrgsbase, // Write GS Segment Base // new AVX instructions NN_vaddpd, // Add Packed Double-Precision Floating-Point Values NN_vaddps, // Packed Single-FP Add NN_vaddsd, // Add Scalar Double-Precision Floating-Point Values NN_vaddss, // Scalar Single-FP Add NN_vaddsubpd, // Add /Sub packed DP FP numbers NN_vaddsubps, // Add /Sub packed SP FP numbers NN_vaesdec, // Perform One Round of an AES Decryption Flow NN_vaesdeclast, // Perform the Last Round of an AES Decryption Flow NN_vaesenc, // Perform One Round of an AES Encryption Flow NN_vaesenclast, // Perform the Last Round of an AES Encryption Flow NN_vaesimc, // Perform the AES InvMixColumn Transformation NN_vaeskeygenassist, // AES Round Key Generation Assist NN_vandnpd, // Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values NN_vandnps, // Bitwise Logical And Not for Single-FP NN_vandpd, // Bitwise Logical AND of Packed Double-Precision Floating-Point Values NN_vandps, // Bitwise Logical And for Single-FP NN_vblendpd, // Blend Packed Double Precision Floating-Point Values NN_vblendps, // Blend Packed Single Precision Floating-Point Values NN_vblendvpd, // Variable Blend Packed Double Precision Floating-Point Values NN_vblendvps, // Variable Blend Packed Single Precision Floating-Point Values NN_vbroadcastf128, // Broadcast 128 Bits of Floating-Point Data NN_vbroadcasti128, // Broadcast 128 Bits of Integer Data NN_vbroadcastsd, // Broadcast Double-Precision Floating-Point Element NN_vbroadcastss, // Broadcast Single-Precision Floating-Point Element NN_vcmppd, // Compare Packed Double-Precision Floating-Point Values NN_vcmpps, // Packed Single-FP Compare NN_vcmpsd, // Compare Scalar Double-Precision Floating-Point Values NN_vcmpss, // Scalar Single-FP Compare NN_vcomisd, // Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS NN_vcomiss, // Scalar Ordered Single-FP Compare and Set EFLAGS NN_vcvtdq2pd, // Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values NN_vcvtdq2ps, // Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values NN_vcvtpd2dq, // Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers NN_vcvtpd2ps, // Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values NN_vcvtph2ps, // Convert 16-bit FP Values to Single-Precision FP Values NN_vcvtps2dq, // Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers NN_vcvtps2pd, // Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values NN_vcvtps2ph, // Convert Single-Precision FP value to 16-bit FP value NN_vcvtsd2si, // Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer NN_vcvtsd2ss, // Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value NN_vcvtsi2sd, // Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value NN_vcvtsi2ss, // Scalar signed INT32 to Single-FP conversion NN_vcvtss2sd, // Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value NN_vcvtss2si, // Scalar Single-FP to signed INT32 conversion NN_vcvttpd2dq, // Convert With Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers NN_vcvttps2dq, // Convert With Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers NN_vcvttsd2si, // Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer NN_vcvttss2si, // Scalar Single-FP to signed INT32 conversion (truncate) NN_vdivpd, // Divide Packed Double-Precision Floating-Point Values NN_vdivps, // Packed Single-FP Divide NN_vdivsd, // Divide Scalar Double-Precision Floating-Point Values NN_vdivss, // Scalar Single-FP Divide NN_vdppd, // Dot Product of Packed Double Precision Floating-Point Values NN_vdpps, // Dot Product of Packed Single Precision Floating-Point Values NN_vextractf128, // Extract Packed Floating-Point Values NN_vextracti128, // Extract Packed Integer Values NN_vextractps, // Extract Packed Floating-Point Values NN_vfmadd132pd, // Fused Multiply-Add of Packed Double-Precision Floating-Point Values NN_vfmadd132ps, // Fused Multiply-Add of Packed Single-Precision Floating-Point Values NN_vfmadd132sd, // Fused Multiply-Add of Scalar Double-Precision Floating-Point Values NN_vfmadd132ss, // Fused Multiply-Add of Scalar Single-Precision Floating-Point Values NN_vfmadd213pd, // Fused Multiply-Add of Packed Double-Precision Floating-Point Values NN_vfmadd213ps, // Fused Multiply-Add of Packed Single-Precision Floating-Point Values NN_vfmadd213sd, // Fused Multiply-Add of Scalar Double-Precision Floating-Point Values NN_vfmadd213ss, // Fused Multiply-Add of Scalar Single-Precision Floating-Point Values NN_vfmadd231pd, // Fused Multiply-Add of Packed Double-Precision Floating-Point Values NN_vfmadd231ps, // Fused Multiply-Add of Packed Single-Precision Floating-Point Values NN_vfmadd231sd, // Fused Multiply-Add of Scalar Double-Precision Floating-Point Values NN_vfmadd231ss, // Fused Multiply-Add of Scalar Single-Precision Floating-Point Values NN_vfmaddsub132pd, // Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values NN_vfmaddsub132ps, // Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values NN_vfmaddsub213pd, // Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values NN_vfmaddsub213ps, // Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values NN_vfmaddsub231pd, // Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values NN_vfmaddsub231ps, // Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values NN_vfmsub132pd, // Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values NN_vfmsub132ps, // Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values NN_vfmsub132sd, // Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values NN_vfmsub132ss, // Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values NN_vfmsub213pd, // Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values NN_vfmsub213ps, // Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values NN_vfmsub213sd, // Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values NN_vfmsub213ss, // Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values NN_vfmsub231pd, // Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values NN_vfmsub231ps, // Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values NN_vfmsub231sd, // Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values NN_vfmsub231ss, // Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values NN_vfmsubadd132pd, // Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values NN_vfmsubadd132ps, // Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values NN_vfmsubadd213pd, // Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values NN_vfmsubadd213ps, // Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values NN_vfmsubadd231pd, // Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values NN_vfmsubadd231ps, // Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values NN_vfnmadd132pd, // Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values NN_vfnmadd132ps, // Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values NN_vfnmadd132sd, // Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values NN_vfnmadd132ss, // Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values NN_vfnmadd213pd, // Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values NN_vfnmadd213ps, // Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values NN_vfnmadd213sd, // Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values NN_vfnmadd213ss, // Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values NN_vfnmadd231pd, // Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values NN_vfnmadd231ps, // Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values NN_vfnmadd231sd, // Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values NN_vfnmadd231ss, // Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values NN_vfnmsub132pd, // Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values NN_vfnmsub132ps, // Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values NN_vfnmsub132sd, // Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values NN_vfnmsub132ss, // Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values NN_vfnmsub213pd, // Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values NN_vfnmsub213ps, // Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values NN_vfnmsub213sd, // Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values NN_vfnmsub213ss, // Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values NN_vfnmsub231pd, // Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values NN_vfnmsub231ps, // Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values NN_vfnmsub231sd, // Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values NN_vfnmsub231ss, // Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values NN_vgatherdps, // Gather Packed SP FP Values Using Signed Dword Indices NN_vgatherdpd, // Gather Packed DP FP Values Using Signed Dword Indices NN_vgatherqps, // Gather Packed SP FP Values Using Signed Qword Indices NN_vgatherqpd, // Gather Packed DP FP Values Using Signed Qword Indices NN_vhaddpd, // Add horizontally packed DP FP numbers NN_vhaddps, // Add horizontally packed SP FP numbers NN_vhsubpd, // Sub horizontally packed DP FP numbers NN_vhsubps, // Sub horizontally packed SP FP numbers NN_vinsertf128, // Insert Packed Floating-Point Values NN_vinserti128, // Insert Packed Integer Values NN_vinsertps, // Insert Packed Single Precision Floating-Point Value NN_vlddqu, // Load Unaligned Packed Integer Values NN_vldmxcsr, // Load Streaming SIMD Extensions Technology Control/Status Register NN_vmaskmovdqu, // Store Selected Bytes of Double Quadword with NT Hint NN_vmaskmovpd, // Conditionally Load Packed Double-Precision Floating-Point Values NN_vmaskmovps, // Conditionally Load Packed Single-Precision Floating-Point Values NN_vmaxpd, // Return Maximum Packed Double-Precision Floating-Point Values NN_vmaxps, // Packed Single-FP Maximum NN_vmaxsd, // Return Maximum Scalar Double-Precision Floating-Point Value NN_vmaxss, // Scalar Single-FP Maximum NN_vminpd, // Return Minimum Packed Double-Precision Floating-Point Values NN_vminps, // Packed Single-FP Minimum NN_vminsd, // Return Minimum Scalar Double-Precision Floating-Point Value NN_vminss, // Scalar Single-FP Minimum NN_vmovapd, // Move Aligned Packed Double-Precision Floating-Point Values NN_vmovaps, // Move Aligned Four Packed Single-FP NN_vmovd, // Move 32 bits NN_vmovddup, // Move One Double-FP and Duplicate NN_vmovdqa, // Move Aligned Double Quadword NN_vmovdqu, // Move Unaligned Double Quadword NN_vmovhlps, // Move High to Low Packed Single-FP NN_vmovhpd, // Move High Packed Double-Precision Floating-Point Values NN_vmovhps, // Move High Packed Single-FP NN_vmovlhps, // Move Low to High Packed Single-FP NN_vmovlpd, // Move Low Packed Double-Precision Floating-Point Values NN_vmovlps, // Move Low Packed Single-FP NN_vmovmskpd, // Extract Packed Double-Precision Floating-Point Sign Mask NN_vmovmskps, // Move Mask to Register NN_vmovntdq, // Store Double Quadword Using Non-Temporal Hint NN_vmovntdqa, // Load Double Quadword Non-Temporal Aligned Hint NN_vmovntpd, // Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint NN_vmovntps, // Move Aligned Four Packed Single-FP Non Temporal NN_vmovq, // Move 64 bits NN_vmovsd, // Move Scalar Double-Precision Floating-Point Values NN_vmovshdup, // Move Packed Single-FP High and Duplicate NN_vmovsldup, // Move Packed Single-FP Low and Duplicate NN_vmovss, // Move Scalar Single-FP NN_vmovupd, // Move Unaligned Packed Double-Precision Floating-Point Values NN_vmovups, // Move Unaligned Four Packed Single-FP NN_vmpsadbw, // Compute Multiple Packed Sums of Absolute Difference NN_vmulpd, // Multiply Packed Double-Precision Floating-Point Values NN_vmulps, // Packed Single-FP Multiply NN_vmulsd, // Multiply Scalar Double-Precision Floating-Point Values NN_vmulss, // Scalar Single-FP Multiply NN_vorpd, // Bitwise Logical OR of Double-Precision Floating-Point Values NN_vorps, // Bitwise Logical OR for Single-FP Data NN_vpabsb, // Packed Absolute Value Byte NN_vpabsd, // Packed Absolute Value Doubleword NN_vpabsw, // Packed Absolute Value Word NN_vpackssdw, // Pack with Signed Saturation (Dword->Word) NN_vpacksswb, // Pack with Signed Saturation (Word->Byte) NN_vpackusdw, // Pack with Unsigned Saturation NN_vpackuswb, // Pack with Unsigned Saturation (Word->Byte) NN_vpaddb, // Packed Add Byte NN_vpaddd, // Packed Add Dword NN_vpaddq, // Add Packed Quadword Integers NN_vpaddsb, // Packed Add with Saturation (Byte) NN_vpaddsw, // Packed Add with Saturation (Word) NN_vpaddusb, // Packed Add Unsigned with Saturation (Byte) NN_vpaddusw, // Packed Add Unsigned with Saturation (Word) NN_vpaddw, // Packed Add Word NN_vpalignr, // Packed Align Right NN_vpand, // Bitwise Logical And NN_vpandn, // Bitwise Logical And Not NN_vpavgb, // Packed Average (Byte) NN_vpavgw, // Packed Average (Word) NN_vpblendd, // Blend Packed Dwords NN_vpblendvb, // Variable Blend Packed Bytes NN_vpblendw, // Blend Packed Words NN_vpbroadcastb, // Broadcast a Byte Integer NN_vpbroadcastd, // Broadcast a Dword Integer NN_vpbroadcastq, // Broadcast a Qword Integer NN_vpbroadcastw, // Broadcast a Word Integer NN_vpclmulqdq, // Carry-Less Multiplication Quadword NN_vpcmpeqb, // Packed Compare for Equal (Byte) NN_vpcmpeqd, // Packed Compare for Equal (Dword) NN_vpcmpeqq, // Compare Packed Qword Data for Equal NN_vpcmpeqw, // Packed Compare for Equal (Word) NN_vpcmpestri, // Packed Compare Explicit Length Strings, Return Index NN_vpcmpestrm, // Packed Compare Explicit Length Strings, Return Mask NN_vpcmpgtb, // Packed Compare for Greater Than (Byte) NN_vpcmpgtd, // Packed Compare for Greater Than (Dword) NN_vpcmpgtq, // Compare Packed Data for Greater Than NN_vpcmpgtw, // Packed Compare for Greater Than (Word) NN_vpcmpistri, // Packed Compare Implicit Length Strings, Return Index NN_vpcmpistrm, // Packed Compare Implicit Length Strings, Return Mask NN_vperm2f128, // Permute Floating-Point Values NN_vperm2i128, // Permute Integer Values NN_vpermd, // Full Doublewords Element Permutation NN_vpermilpd, // Permute Double-Precision Floating-Point Values NN_vpermilps, // Permute Single-Precision Floating-Point Values NN_vpermpd, // Permute Double-Precision Floating-Point Elements NN_vpermps, // Permute Single-Precision Floating-Point Elements NN_vpermq, // Qwords Element Permutation NN_vpextrb, // Extract Byte NN_vpextrd, // Extract Dword NN_vpextrq, // Extract Qword NN_vpextrw, // Extract Word NN_vpgatherdd, // Gather Packed Dword Values Using Signed Dword Indices NN_vpgatherdq, // Gather Packed Qword Values Using Signed Dword Indices NN_vpgatherqd, // Gather Packed Dword Values Using Signed Qword Indices NN_vpgatherqq, // Gather Packed Qword Values Using Signed Qword Indices NN_vphaddd, // Packed Horizontal Add Doubleword NN_vphaddsw, // Packed Horizontal Add and Saturate NN_vphaddw, // Packed Horizontal Add Word NN_vphminposuw, // Packed Horizontal Word Minimum NN_vphsubd, // Packed Horizontal Subtract Doubleword NN_vphsubsw, // Packed Horizontal Subtract and Saturate NN_vphsubw, // Packed Horizontal Subtract Word NN_vpinsrb, // Insert Byte NN_vpinsrd, // Insert Dword NN_vpinsrq, // Insert Qword NN_vpinsrw, // Insert Word NN_vpmaddubsw, // Multiply and Add Packed Signed and Unsigned Bytes NN_vpmaddwd, // Packed Multiply and Add NN_vpmaskmovd, // Conditionally Store Dword Values Using Mask NN_vpmaskmovq, // Conditionally Store Qword Values Using Mask NN_vpmaxsb, // Maximum of Packed Signed Byte Integers NN_vpmaxsd, // Maximum of Packed Signed Dword Integers NN_vpmaxsw, // Packed Signed Integer Word Maximum NN_vpmaxub, // Packed Unsigned Integer Byte Maximum NN_vpmaxud, // Maximum of Packed Unsigned Dword Integers NN_vpmaxuw, // Maximum of Packed Word Integers NN_vpminsb, // Minimum of Packed Signed Byte Integers NN_vpminsd, // Minimum of Packed Signed Dword Integers NN_vpminsw, // Packed Signed Integer Word Minimum NN_vpminub, // Packed Unsigned Integer Byte Minimum NN_vpminud, // Minimum of Packed Unsigned Dword Integers NN_vpminuw, // Minimum of Packed Word Integers NN_vpmovmskb, // Move Byte Mask to Integer NN_vpmovsxbd, // Packed Move with Sign Extend NN_vpmovsxbq, // Packed Move with Sign Extend NN_vpmovsxbw, // Packed Move with Sign Extend NN_vpmovsxdq, // Packed Move with Sign Extend NN_vpmovsxwd, // Packed Move with Sign Extend NN_vpmovsxwq, // Packed Move with Sign Extend NN_vpmovzxbd, // Packed Move with Zero Extend NN_vpmovzxbq, // Packed Move with Zero Extend NN_vpmovzxbw, // Packed Move with Zero Extend NN_vpmovzxdq, // Packed Move with Zero Extend NN_vpmovzxwd, // Packed Move with Zero Extend NN_vpmovzxwq, // Packed Move with Zero Extend NN_vpmuldq, // Multiply Packed Signed Dword Integers NN_vpmulhrsw, // Packed Multiply High with Round and Scale NN_vpmulhuw, // Packed Multiply High Unsigned NN_vpmulhw, // Packed Multiply High NN_vpmulld, // Multiply Packed Signed Dword Integers and Store Low Result NN_vpmullw, // Packed Multiply Low NN_vpmuludq, // Multiply Packed Unsigned Doubleword Integers NN_vpor, // Bitwise Logical Or NN_vpsadbw, // Packed Sum of Absolute Differences NN_vpshufb, // Packed Shuffle Bytes NN_vpshufd, // Shuffle Packed Doublewords NN_vpshufhw, // Shuffle Packed High Words NN_vpshuflw, // Shuffle Packed Low Words NN_vpsignb, // Packed SIGN Byte NN_vpsignd, // Packed SIGN Doubleword NN_vpsignw, // Packed SIGN Word NN_vpslld, // Packed Shift Left Logical (Dword) NN_vpslldq, // Shift Double Quadword Left Logical NN_vpsllq, // Packed Shift Left Logical (Qword) NN_vpsllvd, // Variable Bit Shift Left Logical (Dword) NN_vpsllvq, // Variable Bit Shift Left Logical (Qword) NN_vpsllw, // Packed Shift Left Logical (Word) NN_vpsrad, // Packed Shift Right Arithmetic (Dword) NN_vpsravd, // Variable Bit Shift Right Arithmetic NN_vpsraw, // Packed Shift Right Arithmetic (Word) NN_vpsrld, // Packed Shift Right Logical (Dword) NN_vpsrldq, // Shift Double Quadword Right Logical (Qword) NN_vpsrlq, // Packed Shift Right Logical (Qword) NN_vpsrlvd, // Variable Bit Shift Right Logical (Dword) NN_vpsrlvq, // Variable Bit Shift Right Logical (Qword) NN_vpsrlw, // Packed Shift Right Logical (Word) NN_vpsubb, // Packed Subtract Byte NN_vpsubd, // Packed Subtract Dword NN_vpsubq, // Subtract Packed Quadword Integers NN_vpsubsb, // Packed Subtract with Saturation (Byte) NN_vpsubsw, // Packed Subtract with Saturation (Word) NN_vpsubusb, // Packed Subtract Unsigned with Saturation (Byte) NN_vpsubusw, // Packed Subtract Unsigned with Saturation (Word) NN_vpsubw, // Packed Subtract Word NN_vptest, // Logical Compare NN_vpunpckhbw, // Unpack High Packed Data (Byte->Word) NN_vpunpckhdq, // Unpack High Packed Data (Dword->Qword) NN_vpunpckhqdq, // Unpack High Packed Data (Qword->Xmmword) NN_vpunpckhwd, // Unpack High Packed Data (Word->Dword) NN_vpunpcklbw, // Unpack Low Packed Data (Byte->Word) NN_vpunpckldq, // Unpack Low Packed Data (Dword->Qword) NN_vpunpcklqdq, // Unpack Low Packed Data (Qword->Xmmword) NN_vpunpcklwd, // Unpack Low Packed Data (Word->Dword) NN_vpxor, // Bitwise Logical Exclusive Or NN_vrcpps, // Packed Single-FP Reciprocal NN_vrcpss, // Scalar Single-FP Reciprocal NN_vroundpd, // Round Packed Double Precision Floating-Point Values NN_vroundps, // Round Packed Single Precision Floating-Point Values NN_vroundsd, // Round Scalar Double Precision Floating-Point Values NN_vroundss, // Round Scalar Single Precision Floating-Point Values NN_vrsqrtps, // Packed Single-FP Square Root Reciprocal NN_vrsqrtss, // Scalar Single-FP Square Root Reciprocal NN_vshufpd, // Shuffle Packed Double-Precision Floating-Point Values NN_vshufps, // Shuffle Single-FP NN_vsqrtpd, // Compute Square Roots of Packed Double-Precision Floating-Point Values NN_vsqrtps, // Packed Single-FP Square Root NN_vsqrtsd, // Compute Square Rootof Scalar Double-Precision Floating-Point Value NN_vsqrtss, // Scalar Single-FP Square Root NN_vstmxcsr, // Store Streaming SIMD Extensions Technology Control/Status Register NN_vsubpd, // Subtract Packed Double-Precision Floating-Point Values NN_vsubps, // Packed Single-FP Subtract NN_vsubsd, // Subtract Scalar Double-Precision Floating-Point Values NN_vsubss, // Scalar Single-FP Subtract NN_vtestpd, // Packed Double-Precision Floating-Point Bit Test NN_vtestps, // Packed Single-Precision Floating-Point Bit Test NN_vucomisd, // Unordered Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS NN_vucomiss, // Scalar Unordered Single-FP Compare and Set EFLAGS NN_vunpckhpd, // Unpack and Interleave High Packed Double-Precision Floating-Point Values NN_vunpckhps, // Unpack High Packed Single-FP Data NN_vunpcklpd, // Unpack and Interleave Low Packed Double-Precision Floating-Point Values NN_vunpcklps, // Unpack Low Packed Single-FP Data NN_vxorpd, // Bitwise Logical OR of Double-Precision Floating-Point Values NN_vxorps, // Bitwise Logical XOR for Single-FP Data NN_vzeroall, // Zero All YMM Registers NN_vzeroupper, // Zero Upper Bits of YMM Registers // Transactional Synchronization Extensions NN_xabort, // Transaction Abort NN_xbegin, // Transaction Begin NN_xend, // Transaction End NN_xtest, // Test If In Transactional Execution // Virtual PC synthetic instructions NN_vmgetinfo, // Virtual PC - Get VM Information NN_vmsetinfo, // Virtual PC - Set VM Information NN_vmdxdsbl, // Virtual PC - Disable Direct Execution NN_vmdxenbl, // Virtual PC - Enable Direct Execution NN_vmcpuid, // Virtual PC - Virtualized CPU Information NN_vmhlt, // Virtual PC - Halt NN_vmsplaf, // Virtual PC - Spin Lock Acquisition Failed NN_vmpushfd, // Virtual PC - Push virtualized flags register NN_vmpopfd, // Virtual PC - Pop virtualized flags register NN_vmcli, // Virtual PC - Clear Interrupt Flag NN_vmsti, // Virtual PC - Set Interrupt Flag NN_vmiretd, // Virtual PC - Return From Interrupt NN_vmsgdt, // Virtual PC - Store Global Descriptor Table NN_vmsidt, // Virtual PC - Store Interrupt Descriptor Table NN_vmsldt, // Virtual PC - Store Local Descriptor Table NN_vmstr, // Virtual PC - Store Task Register NN_vmsdte, // Virtual PC - Store to Descriptor Table Entry NN_vpcext, // Virtual PC - ISA extension // AMD FMA4 NN_vfmaddsubps, // Multiply with Alternating Add/Subtract of Packed Single-Precision Floating-Point NN_vfmaddsubpd, // Multiply with Alternating Add/Subtract of Packed Double-Precision Floating-Point NN_vfmsubaddps, // Multiply with Alternating Subtract/Add of Packed Single-Precision Floating-Point NN_vfmsubaddpd, // Multiply with Alternating Subtract/Add of Packed Double-Precision Floating-Point NN_vfmaddps, // Multiply and Add Packed Single-Precision Floating-Point NN_vfmaddpd, // Multiply and Add Packed Double-Precision Floating-Point NN_vfmaddss, // Multiply and Add Scalar Single-Precision Floating-Point NN_vfmaddsd, // Multiply and Add Scalar Double-Precision Floating-Point NN_vfmsubps, // Multiply and Subtract Packed Single-Precision Floating-Point NN_vfmsubpd, // Multiply and Subtract Packed Double-Precision Floating-Point NN_vfmsubss, // Multiply and Subtract Scalar Single-Precision Floating-Point NN_vfmsubsd, // Multiply and Subtract Scalar Double-Precision Floating-Point NN_vfnmaddps, // Negative Multiply and Add Packed Single-Precision Floating-Point NN_vfnmaddpd, // Negative Multiply and Add Packed Double-Precision Floating-Point NN_vfnmaddss, // Negative Multiply and Add Scalar Single-Precision Floating-Point NN_vfnmaddsd, // Negative Multiply and Add Double Single-Precision Floating-Point NN_vfnmsubps, // Negative Multiply and Subtract Packed Single-Precision Floating-Point NN_vfnmsubpd, // Negative Multiply and Subtract Packed Double-Precision Floating-Point NN_vfnmsubss, // Negative Multiply and Subtract Scalar Single-Precision Floating-Point NN_vfnmsubsd, // Negative Multiply and Subtract Double Single-Precision Floating-Point // Intel Memory Protection Extensions (MPX) NN_bndmk, // Make Bounds NN_bndcl, // Check Lower Bound NN_bndcu, // Check Upper Bound NN_bndcn, // Check Upper Bound NN_bndmov, // Move Bounds NN_bndldx, // Load Extended Bounds Using Address Translation NN_bndstx, // Store Extended Bounds Using Address Translation // New xstate instructions NN_xrstors, // Restore Processor Extended States Supervisor NN_xsavec, // Save Processor Extended States with Compaction NN_xsaves, // Save Processor Extended States Supervisor // PREFETCHWT1 support NN_prefetchwt1, // Prefetch Vector Data Into Caches with Intent to Write and T1 Hint // Memory instructions NN_clflushopt, // Flush a Cache Line Optimized NN_clwb, // Cache Line Write Back NN_pcommit, // Persistent Commit (deprecated by Intel) // Protection Key Rights for User Pages NN_rdpkru, // Read Protection Key Rights for User Pages NN_wrpkru, // Write Data to User Page Key Register // AVX comparison pseudo-ops NN_vcmpeqpd, // Compare Packed Double-Precision Floating-Point Values - Equal (ordered, non-signaling) NN_vcmpltpd, // Compare Packed Double-Precision Floating-Point Values - Less-than (ordered, signaling) NN_vcmplepd, // Compare Packed Double-Precision Floating-Point Values - Less-than-or-equal (ordered, signaling) NN_vcmpunordpd, // Compare Packed Double-Precision Floating-Point Values - Unordered (non-signaling) NN_vcmpneqpd, // Compare Packed Double-Precision Floating-Point Values - Not-equal (unordered, non-signaling) NN_vcmpnltpd, // Compare Packed Double-Precision Floating-Point Values - Not-less-than (unordered, signaling) NN_vcmpnlepd, // Compare Packed Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, signaling) NN_vcmpordpd, // Compare Packed Double-Precision Floating-Point Values - Ordered (non-signaling) NN_vcmpeq_uqpd, // Compare Packed Double-Precision Floating-Point Values - Equal (unordered, non-signaling) NN_vcmpngepd, // Compare Packed Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, signaling) NN_vcmpngtpd, // Compare Packed Double-Precision Floating-Point Values - Not-greater-than (unordered, signaling) NN_vcmpfalsepd, // Compare Packed Double-Precision Floating-Point Values - False (ordered, non-signaling) NN_vcmpneq_oqpd, // Compare Packed Double-Precision Floating-Point Values - Not-equal (ordered, non-signaling) NN_vcmpgepd, // Compare Packed Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, signaling) NN_vcmpgtpd, // Compare Packed Double-Precision Floating-Point Values - Greater-than (ordered, signaling) NN_vcmptruepd, // Compare Packed Double-Precision Floating-Point Values - True (unordered, non-signaling) NN_vcmpeq_ospd, // Compare Packed Double-Precision Floating-Point Values - Equal (ordered, signaling) NN_vcmplt_oqpd, // Compare Packed Double-Precision Floating-Point Values - Less-than (ordered, non-signaling) NN_vcmple_oqpd, // Compare Packed Double-Precision Floating-Point Values - Less-than-or-equal (ordered, non-signaling) NN_vcmpunord_spd, // Compare Packed Double-Precision Floating-Point Values - Unordered (signaling) NN_vcmpneq_uspd, // Compare Packed Double-Precision Floating-Point Values - Not-equal (unordered, signaling) NN_vcmpnlt_uqpd, // Compare Packed Double-Precision Floating-Point Values - Not-less-than (unordered, non-signaling) NN_vcmpnle_uqpd, // Compare Packed Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, non-signaling) NN_vcmpord_spd, // Compare Packed Double-Precision Floating-Point Values - Ordered (signaling) NN_vcmpeq_uspd, // Compare Packed Double-Precision Floating-Point Values - Equal (unordered, signaling) NN_vcmpnge_uqpd, // Compare Packed Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, non-signaling) NN_vcmpngt_uqpd, // Compare Packed Double-Precision Floating-Point Values - Not-greater-than (unordered, non-signaling) NN_vcmpfalse_ospd, // Compare Packed Double-Precision Floating-Point Values - False (ordered, signaling) NN_vcmpneq_ospd, // Compare Packed Double-Precision Floating-Point Values - Not-equal (ordered, signaling) NN_vcmpge_oqpd, // Compare Packed Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, non-signaling) NN_vcmpgt_oqpd, // Compare Packed Double-Precision Floating-Point Values - Greater-than (ordered, non-signaling) NN_vcmptrue_uspd, // Compare Packed Double-Precision Floating-Point Values - True (unordered, signaling) NN_vcmpeqps, // Packed Single-FP Compare - Equal (ordered, non-signaling) NN_vcmpltps, // Packed Single-FP Compare - Less-than (ordered, signaling) NN_vcmpleps, // Packed Single-FP Compare - Less-than-or-equal (ordered, signaling) NN_vcmpunordps, // Packed Single-FP Compare - Unordered (non-signaling) NN_vcmpneqps, // Packed Single-FP Compare - Not-equal (unordered, non-signaling) NN_vcmpnltps, // Packed Single-FP Compare - Not-less-than (unordered, signaling) NN_vcmpnleps, // Packed Single-FP Compare - Not-less-than-or-equal (unordered, signaling) NN_vcmpordps, // Packed Single-FP Compare - Ordered (non-signaling) NN_vcmpeq_uqps, // Packed Single-FP Compare - Equal (unordered, non-signaling) NN_vcmpngeps, // Packed Single-FP Compare - Not-greater-than-or-equal (unordered, signaling) NN_vcmpngtps, // Packed Single-FP Compare - Not-greater-than (unordered, signaling) NN_vcmpfalseps, // Packed Single-FP Compare - False (ordered, non-signaling) NN_vcmpneq_oqps, // Packed Single-FP Compare - Not-equal (ordered, non-signaling) NN_vcmpgeps, // Packed Single-FP Compare - Greater-than-or-equal (ordered, signaling) NN_vcmpgtps, // Packed Single-FP Compare - Greater-than (ordered, signaling) NN_vcmptrueps, // Packed Single-FP Compare - True (unordered, non-signaling) NN_vcmpeq_osps, // Packed Single-FP Compare - Equal (ordered, signaling) NN_vcmplt_oqps, // Packed Single-FP Compare - Less-than (ordered, non-signaling) NN_vcmple_oqps, // Packed Single-FP Compare - Less-than-or-equal (ordered, non-signaling) NN_vcmpunord_sps, // Packed Single-FP Compare - Unordered (signaling) NN_vcmpneq_usps, // Packed Single-FP Compare - Not-equal (unordered, signaling) NN_vcmpnlt_uqps, // Packed Single-FP Compare - Not-less-than (unordered, non-signaling) NN_vcmpnle_uqps, // Packed Single-FP Compare - Not-less-than-or-equal (unordered, non-signaling) NN_vcmpord_sps, // Packed Single-FP Compare - Ordered (signaling) NN_vcmpeq_usps, // Packed Single-FP Compare - Equal (unordered, signaling) NN_vcmpnge_uqps, // Packed Single-FP Compare - Not-greater-than-or-equal (unordered, non-signaling) NN_vcmpngt_uqps, // Packed Single-FP Compare - Not-greater-than (unordered, non-signaling) NN_vcmpfalse_osps, // Packed Single-FP Compare - False (ordered, signaling) NN_vcmpneq_osps, // Packed Single-FP Compare - Not-equal (ordered, signaling) NN_vcmpge_oqps, // Packed Single-FP Compare - Greater-than-or-equal (ordered, non-signaling) NN_vcmpgt_oqps, // Packed Single-FP Compare - Greater-than (ordered, non-signaling) NN_vcmptrue_usps, // Packed Single-FP Compare - True (unordered, signaling) NN_vcmpeqsd, // Compare Scalar Double-Precision Floating-Point Values - Equal (ordered, non-signaling) NN_vcmpltsd, // Compare Scalar Double-Precision Floating-Point Values - Less-than (ordered, signaling) NN_vcmplesd, // Compare Scalar Double-Precision Floating-Point Values - Less-than-or-equal (ordered, signaling) NN_vcmpunordsd, // Compare Scalar Double-Precision Floating-Point Values - Unordered (non-signaling) NN_vcmpneqsd, // Compare Scalar Double-Precision Floating-Point Values - Not-equal (unordered, non-signaling) NN_vcmpnltsd, // Compare Scalar Double-Precision Floating-Point Values - Not-less-than (unordered, signaling) NN_vcmpnlesd, // Compare Scalar Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, signaling) NN_vcmpordsd, // Compare Scalar Double-Precision Floating-Point Values - Ordered (non-signaling) NN_vcmpeq_uqsd, // Compare Scalar Double-Precision Floating-Point Values - Equal (unordered, non-signaling) NN_vcmpngesd, // Compare Scalar Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, signaling) NN_vcmpngtsd, // Compare Scalar Double-Precision Floating-Point Values - Not-greater-than (unordered, signaling) NN_vcmpfalsesd, // Compare Scalar Double-Precision Floating-Point Values - False (ordered, non-signaling) NN_vcmpneq_oqsd, // Compare Scalar Double-Precision Floating-Point Values - Not-equal (ordered, non-signaling) NN_vcmpgesd, // Compare Scalar Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, signaling) NN_vcmpgtsd, // Compare Scalar Double-Precision Floating-Point Values - Greater-than (ordered, signaling) NN_vcmptruesd, // Compare Scalar Double-Precision Floating-Point Values - True (unordered, non-signaling) NN_vcmpeq_ossd, // Compare Scalar Double-Precision Floating-Point Values - Equal (ordered, signaling) NN_vcmplt_oqsd, // Compare Scalar Double-Precision Floating-Point Values - Less-than (ordered, non-signaling) NN_vcmple_oqsd, // Compare Scalar Double-Precision Floating-Point Values - Less-than-or-equal (ordered, non-signaling) NN_vcmpunord_ssd, // Compare Scalar Double-Precision Floating-Point Values - Unordered (signaling) NN_vcmpneq_ussd, // Compare Scalar Double-Precision Floating-Point Values - Not-equal (unordered, signaling) NN_vcmpnlt_uqsd, // Compare Scalar Double-Precision Floating-Point Values - Not-less-than (unordered, non-signaling) NN_vcmpnle_uqsd, // Compare Scalar Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, non-signaling) NN_vcmpord_ssd, // Compare Scalar Double-Precision Floating-Point Values - Ordered (signaling) NN_vcmpeq_ussd, // Compare Scalar Double-Precision Floating-Point Values - Equal (unordered, signaling) NN_vcmpnge_uqsd, // Compare Scalar Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, non-signaling) NN_vcmpngt_uqsd, // Compare Scalar Double-Precision Floating-Point Values - Not-greater-than (unordered, non-signaling) NN_vcmpfalse_ossd, // Compare Scalar Double-Precision Floating-Point Values - False (ordered, signaling) NN_vcmpneq_ossd, // Compare Scalar Double-Precision Floating-Point Values - Not-equal (ordered, signaling) NN_vcmpge_oqsd, // Compare Scalar Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, non-signaling) NN_vcmpgt_oqsd, // Compare Scalar Double-Precision Floating-Point Values - Greater-than (ordered, non-signaling) NN_vcmptrue_ussd, // Compare Scalar Double-Precision Floating-Point Values - True (unordered, signaling) NN_vcmpeqss, // Scalar Single-FP Compare - Equal (ordered, non-signaling) NN_vcmpltss, // Scalar Single-FP Compare - Less-than (ordered, signaling) NN_vcmpless, // Scalar Single-FP Compare - Less-than-or-equal (ordered, signaling) NN_vcmpunordss, // Scalar Single-FP Compare - Unordered (non-signaling) NN_vcmpneqss, // Scalar Single-FP Compare - Not-equal (unordered, non-signaling) NN_vcmpnltss, // Scalar Single-FP Compare - Not-less-than (unordered, signaling) NN_vcmpnless, // Scalar Single-FP Compare - Not-less-than-or-equal (unordered, signaling) NN_vcmpordss, // Scalar Single-FP Compare - Ordered (non-signaling) NN_vcmpeq_uqss, // Scalar Single-FP Compare - Equal (unordered, non-signaling) NN_vcmpngess, // Scalar Single-FP Compare - Not-greater-than-or-equal (unordered, signaling) NN_vcmpngtss, // Scalar Single-FP Compare - Not-greater-than (unordered, signaling) NN_vcmpfalsess, // Scalar Single-FP Compare - False (ordered, non-signaling) NN_vcmpneq_oqss, // Scalar Single-FP Compare - Not-equal (ordered, non-signaling) NN_vcmpgess, // Scalar Single-FP Compare - Greater-than-or-equal (ordered, signaling) NN_vcmpgtss, // Scalar Single-FP Compare - Greater-than (ordered, signaling) NN_vcmptruess, // Scalar Single-FP Compare - True (unordered, non-signaling) NN_vcmpeq_osss, // Scalar Single-FP Compare - Equal (ordered, signaling) NN_vcmplt_oqss, // Scalar Single-FP Compare - Less-than (ordered, non-signaling) NN_vcmple_oqss, // Scalar Single-FP Compare - Less-than-or-equal (ordered, non-signaling) NN_vcmpunord_sss, // Scalar Single-FP Compare - Unordered (signaling) NN_vcmpneq_usss, // Scalar Single-FP Compare - Not-equal (unordered, signaling) NN_vcmpnlt_uqss, // Scalar Single-FP Compare - Not-less-than (unordered, non-signaling) NN_vcmpnle_uqss, // Scalar Single-FP Compare - Not-less-than-or-equal (unordered, non-signaling) NN_vcmpord_sss, // Scalar Single-FP Compare - Ordered (signaling) NN_vcmpeq_usss, // Scalar Single-FP Compare - Equal (unordered, signaling) NN_vcmpnge_uqss, // Scalar Single-FP Compare - Not-greater-than-or-equal (unordered, non-signaling) NN_vcmpngt_uqss, // Scalar Single-FP Compare - Not-greater-than (unordered, non-signaling) NN_vcmpfalse_osss, // Scalar Single-FP Compare - False (ordered, signaling) NN_vcmpneq_osss, // Scalar Single-FP Compare - Not-equal (ordered, signaling) NN_vcmpge_oqss, // Scalar Single-FP Compare - Greater-than-or-equal (ordered, non-signaling) NN_vcmpgt_oqss, // Scalar Single-FP Compare - Greater-than (ordered, non-signaling) NN_vcmptrue_usss, // Scalar Single-FP Compare - True (unordered, signaling) // AVX-512 instructions NN_valignd, // Align Doubleword Vectors NN_valignq, // Align Quadword Vectors NN_vblendmpd, // Blend Float64 Vectors Using an OpMask Control NN_vblendmps, // Blend Float32 Vectors Using an OpMask Control NN_vpblendmb, // Blend Byte Vectors Using an Opmask Control NN_vpblendmw, // Blend Word Vectors Using an Opmask Control NN_vpblendmd, // Blend Int32 Vectors Using an OpMask Control NN_vpblendmq, // Blend Int64 Vectors Using an OpMask Control NN_vbroadcastf32x2, // Load with Broadcast Floating-Point Data NN_vbroadcastf32x4, // Load with Broadcast Floating-Point Data NN_vbroadcastf64x2, // Load with Broadcast Floating-Point Data NN_vbroadcastf32x8, // Load with Broadcast Floating-Point Data NN_vbroadcastf64x4, // Load with Broadcast Floating-Point Data NN_vbroadcasti32x2, // Load Integer and Broadcast NN_vbroadcasti32x4, // Load Integer and Broadcast NN_vbroadcasti64x2, // Load Integer and Broadcast NN_vbroadcasti32x8, // Load Integer and Broadcast NN_vbroadcasti64x4, // Load Integer and Broadcast NN_vcompresspd, // Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory NN_vcompressps, // Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory NN_vcvtpd2qq, // Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers NN_vcvtpd2udq, // Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers NN_vcvtpd2uqq, // Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers NN_vcvtps2udq, // Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values NN_vcvtps2qq, // Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values NN_vcvtps2uqq, // Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values NN_vcvtqq2pd, // Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values NN_vcvtqq2ps, // Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values NN_vcvtsd2usi, // Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer NN_vcvtss2usi, // Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer NN_vcvttpd2qq, // Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers NN_vcvttpd2udq, // Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers NN_vcvttpd2uqq, // Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers NN_vcvttps2udq, // Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values NN_vcvttps2qq, // Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values NN_vcvttps2uqq, // Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values NN_vcvttsd2usi, // Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer NN_vcvttss2usi, // Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer NN_vcvtudq2pd, // Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values NN_vcvtudq2ps, // Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values NN_vcvtuqq2pd, // Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values NN_vcvtuqq2ps, // Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values NN_vcvtusi2sd, // Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value NN_vcvtusi2ss, // Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value NN_vdbpsadbw, // Double Block Packed Sum-Absolute-Differences (SAD) on Unsigned Bytes NN_vexpandpd, // Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory NN_vexpandps, // Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory NN_vextractf32x4, // Extract Packed Floating-Point Values NN_vextractf64x2, // Extract Packed Floating-Point Values NN_vextractf32x8, // Extract Packed Floating-Point Values NN_vextractf64x4, // Extract Packed Floating-Point Values NN_vextracti32x4, // Extract packed Integer Values NN_vextracti64x2, // Extract packed Integer Values NN_vextracti32x8, // Extract packed Integer Values NN_vextracti64x4, // Extract packed Integer Values NN_vfixupimmpd, // Fix Up Special Packed Float64 Values NN_vfixupimmps, // Fix Up Special Packed Float32 Values NN_vfixupimmsd, // Fix Up Special Scalar Float64 Value NN_vfixupimmss, // Fix Up Special Scalar Float32 Value NN_vfpclasspd, // Tests Types Of a Packed Float64 Values NN_vfpclassps, // Tests Types Of a Packed Float32 Values NN_vfpclasssd, // Tests Types Of a Scalar Float64 Values NN_vfpclassss, // Tests Types Of a Scalar Float32 Values NN_vgetexppd, // Convert Exponents of Packed DP FP Values to DP FP Values NN_vgetexpps, // Convert Exponents of Packed SP FP Values to SP FP Values NN_vgetexpsd, // Convert Exponents of Scalar DP FP Values to DP FP Value NN_vgetexpss, // Convert Exponents of Scalar SP FP Values to SP FP Value NN_vgetmantpd, // Extract Float64 Vector of Normalized Mantissas from Float64 Vector NN_vgetmantps, // Extract Float32 Vector of Normalized Mantissas from Float32 Vector NN_vgetmantsd, // Extract Float64 of Normalized Mantissas from Float64 Scalar NN_vgetmantss, // Extract Float32 Vector of Normalized Mantissa from Float32 Vector NN_vinsertf32x4, // Insert Packed Floating-Point Values NN_vinsertf64x2, // Insert Packed Floating-Point Values NN_vinsertf32x8, // Insert Packed Floating-Point Values NN_vinsertf64x4, // Insert Packed Floating-Point Values NN_vinserti32x4, // Insert Packed Integer Values NN_vinserti64x2, // Insert Packed Integer Values NN_vinserti32x8, // Insert Packed Integer Values NN_vinserti64x4, // Insert Packed Integer Values NN_vmovdqa32, // Move Aligned Packed Integer Values NN_vmovdqa64, // Move Aligned Packed Integer Values NN_vmovdqu8, // Move Unaligned Packed Integer Values NN_vmovdqu16, // Move Unaligned Packed Integer Values NN_vmovdqu32, // Move Unaligned Packed Integer Values NN_vmovdqu64, // Move Unaligned Packed Integer Values NN_vpabsq, // Packed Absolute Value NN_vpandd, // Logical AND NN_vpandq, // Logical AND NN_vpandnd, // Logical AND NOT NN_vpandnq, // Logical AND NOT NN_vpbroadcastmb2q, // Broadcast Mask to Vector Register NN_vpbroadcastmw2d, // Broadcast Mask to Vector Register NN_vpcmpb, // Compare Packed Byte Values Into Mask NN_vpcmpub, // Compare Packed Byte Values Into Mask NN_vpcmpd, // Compare Packed Integer Values into Mask NN_vpcmpud, // Compare Packed Integer Values into Mask NN_vpcmpq, // Compare Packed Integer Values into Mask NN_vpcmpuq, // Compare Packed Integer Values into Mask NN_vpcmpw, // Compare Packed Word Values Into Mask NN_vpcmpuw, // Compare Packed Word Values Into Mask NN_vpcompressd, // Store Sparse Packed Doubleword Integer Values into Dense Memory/Register NN_vpcompressq, // Store Sparse Packed Quadword Integer Values into Dense Memory/Register NN_vpconflictd, // Detect Conflicts Within a Vector of Packed Dword Values into Dense Memory/Register NN_vpconflictq, // Detect Conflicts Within a Vector of Packed Qword Values into Dense Memory/Register NN_vpermb, // Permute Packed Bytes Elements NN_vpermw, // Permute Packed Words Elements NN_vpermi2b, // Full Permute of Bytes From Two Tables Overwriting the Index NN_vpermi2w, // Full Permute From Two Tables Overwriting the Index NN_vpermi2d, // Full Permute From Two Tables Overwriting the Index NN_vpermi2q, // Full Permute From Two Tables Overwriting the Index NN_vpermi2ps, // Full Permute From Two Tables Overwriting the Index NN_vpermi2pd, // Full Permute From Two Tables Overwriting the Index NN_vpermt2b, // Full Permute of Bytes From Two Tables Overwriting a Table NN_vpermt2w, // Full Permute from Two Tables Overwriting one Table NN_vpermt2d, // Full Permute from Two Tables Overwriting one Table NN_vpermt2q, // Full Permute from Two Tables Overwriting one Table NN_vpermt2ps, // Full Permute from Two Tables Overwriting one Table NN_vpermt2pd, // Full Permute from Two Tables Overwriting one Table NN_vpexpandd, // Load Sparse Packed Doubleword Integer Values from Dense Memory/Register NN_vpexpandq, // Load Sparse Packed Quadword Integer Values from Dense Memory/Register NN_vplzcntd, // Count the Number of Leading Zero Bits for Packed Dword Values NN_vplzcntq, // Count the Number of Leading Zero Bits for Packed Qword Values NN_vpmadd52luq, // Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Qword Accumulators NN_vpmadd52huq, // Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to 64-bit Accumulators NN_vpmaxsq, // Maximum of Packed Signed Integers NN_vpmaxuq, // Maximum of Packed Unsigned Integers NN_vpminsq, // Minimum of Packed Signed Integers NN_vpminuq, // Minimum of Packed Unsigned Integers NN_vpmovm2b, // Convert a Mask Register to a Vector Register NN_vpmovm2w, // Convert a Mask Register to a Vector Register NN_vpmovm2d, // Convert a Mask Register to a Vector Register NN_vpmovm2q, // Convert a Mask Register to a Vector Register NN_vpmovb2m, // Convert a Vector Register to a Mask NN_vpmovw2m, // Convert a Vector Register to a Mask NN_vpmovd2m, // Convert a Vector Register to a Mask NN_vpmovq2m, // Convert a Vector Register to a Mask NN_vpmovqb, // Down Convert QWord to Byte NN_vpmovsqb, // Down Convert QWord to Byte NN_vpmovusqb, // Down Convert QWord to Byte NN_vpmovqw, // Down Convert QWord to Word NN_vpmovsqw, // Down Convert QWord to Word NN_vpmovusqw, // Down Convert QWord to Word NN_vpmovqd, // Down Convert QWord to DWord NN_vpmovsqd, // Down Convert QWord to DWord NN_vpmovusqd, // Down Convert QWord to DWord NN_vpmovdb, // Down Convert DWord to Byte NN_vpmovsdb, // Down Convert DWord to Byte NN_vpmovusdb, // Down Convert DWord to Byte NN_vpmovdw, // Down Convert DWord to Word NN_vpmovsdw, // Down Convert DWord to Word NN_vpmovusdw, // Down Convert DWord to Word NN_vpmovwb, // Down Convert Word to Byte NN_vpmovswb, // Down Convert Word to Byte NN_vpmovuswb, // Down Convert Word to Byte NN_vpmullq, // Multiply Packed Integers and Store Low Result NN_vpmultishiftqb, // Select Packed Unaligned Bytes from Quadword Sources NN_vpord, // Bitwise Logical Or NN_vporq, // Bitwise Logical Or NN_vprold, // Bit Rotate Left NN_vprolvd, // Bit Rotate Left NN_vprolq, // Bit Rotate Left NN_vprolvq, // Bit Rotate Left NN_vprord, // Bit Rotate Right NN_vprorvd, // Bit Rotate Right NN_vprorq, // Bit Rotate Right NN_vprorvq, // Bit Rotate Right NN_vpscatterdd, // Scatter Packed Dword with Signed Dword NN_vpscatterdq, // Scatter Packed Qword with Signed Qword Indices NN_vpscatterqd, // Scatter Packed Dword with Signed Dword NN_vpscatterqq, // Scatter Packed Qword with Signed Qword Indices NN_vpsraq, // Bit Shift Arithmetic Right NN_vpsllvw, // Variable Bit Shift Left Logical NN_vpsrlvw, // Variable Bit Shift Right Logical NN_vptestnmb, // Logical NAND and Set NN_vptestnmw, // Logical NAND and Set NN_vptestnmd, // Logical NAND and Set NN_vptestnmq, // Logical NAND and Set NN_vshuff32x4, // Shuffle Packed Values at 128-bit Granularity NN_vshuff64x2, // Shuffle Packed Values at 128-bit Granularity NN_vshufi32x4, // Shuffle Packed Values at 128-bit Granularity NN_vshufi64x2, // Shuffle Packed Values at 128-bit Granularity NN_vpternlogd, // Bitwise Ternary Logic NN_vpternlogq, // Bitwise Ternary Logic NN_vptestmb, // Logical AND and Set Mask NN_vptestmw, // Logical AND and Set Mask NN_vptestmd, // Logical AND and Set Mask NN_vptestmq, // Logical AND and Set Mask NN_vpsravw, // Variable Bit Shift Right Arithmetic NN_vpsravq, // Variable Bit Shift Right Arithmetic NN_vpxord, // Exclusive Or NN_vpxorq, // Exclusive Or NN_vrangepd, // Range Restriction Calculation For Packed Pairs of Float64 Values NN_vrangeps, // Range Restriction Calculation For Packed Pairs of Float32 Values NN_vrangesd, // Range Restriction Calculation From a pair of Scalar Float64 Values NN_vrangess, // Range Restriction Calculation From a Pair of Scalar Float32 Values NN_vrcp14pd, // Compute Approximate Reciprocals of Packed Float64 Values NN_vrcp14sd, // Compute Approximate Reciprocal of Scalar Float64 Value NN_vrcp14ps, // Compute Approximate Reciprocals of Packed Float32 Values NN_vrcp14ss, // Compute Approximate Reciprocal of Scalar Float32 Value NN_vreducepd, // Perform Reduction Transformation on Packed Float64 Values NN_vreducesd, // Perform a Reduction Transformation on a Scalar Float64 Value NN_vreduceps, // Perform Reduction Transformation on Packed Float32 Values NN_vreducess, // Perform a Reduction Transformation on a Scalar Float32 Value NN_vrndscalepd, // Round Packed Float64 Values To Include A Given Number Of Fraction Bits NN_vrndscalesd, // Round Scalar Float64 Value To Include A Given Number Of Fraction Bits NN_vrndscaleps, // Round Packed Float32 Values To Include A Given Number Of Fraction Bits NN_vrndscaless, // Round Scalar Float32 Value To Include A Given Number Of Fraction Bits NN_vrsqrt14pd, // Compute Approximate Reciprocals of Square Roots of Packed Float64 Values NN_vrsqrt14sd, // Compute Approximate Reciprocal of Square Root of Scalar Float64 Value NN_vrsqrt14ps, // Compute Approximate Reciprocals of Square Roots of Packed Float32 Values NN_vrsqrt14ss, // Compute Approximate Reciprocal of Square Root of Scalar Float32 Value NN_vscalefpd, // Scale Packed Float64 Values With Float64 Values NN_vscalefsd, // Scale Scalar Float64 Values With Float64 Values NN_vscalefps, // Scale Packed Float32 Values With Float32 Values NN_vscalefss, // Scale Scalar Float32 Value With Float32 Value NN_vscatterdps, // Scatter Packed Single, Packed Double with Signed Dword and Qword Indices NN_vscatterdpd, // Scatter Packed Single, Packed Double with Signed Dword and Qword Indices NN_vscatterqps, // Scatter Packed Single, Packed Double with Signed Dword and Qword Indices NN_vscatterqpd, // Scatter Packed Single, Packed Double with Signed Dword and Qword Indices NN_vexp2pd, // Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error NN_vexp2ps, // Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error NN_vrcp28pd, // Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error NN_vrcp28sd, // Approximation to the Reciprocal of Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error NN_vrcp28ps, // Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error NN_vrcp28ss, // Approximation to the Reciprocal of Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error NN_vrsqrt28pd, // Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error NN_vrsqrt28sd, // Approximation to the Reciprocal Square Root of Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error NN_vrsqrt28ps, // Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error NN_vrsqrt28ss, // Approximation to the Reciprocal Square Root of Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error NN_vgatherpf0dps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint NN_vgatherpf0qps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint NN_vgatherpf0dpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint NN_vgatherpf0qpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint NN_vgatherpf1dps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint NN_vgatherpf1qps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint NN_vgatherpf1dpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint NN_vgatherpf1qpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint NN_vscatterpf0dps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write NN_vscatterpf0qps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write NN_vscatterpf0dpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write NN_vscatterpf0qpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write NN_vscatterpf1dps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write NN_vscatterpf1qps, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write NN_vscatterpf1dpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write NN_vscatterpf1qpd, // Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write // AVX-512 comparison pseudo-ops NN_vpcmpltd, // Compare Packed Integer Values into Mask NN_vpcmpled, // Compare Packed Integer Values into Mask NN_vpcmpneqd, // Compare Packed Integer Values into Mask NN_vpcmpnltd, // Compare Packed Integer Values into Mask NN_vpcmpnled, // Compare Packed Integer Values into Mask NN_vpcmpequd, // Compare Packed Integer Values into Mask NN_vpcmpltud, // Compare Packed Integer Values into Mask NN_vpcmpleud, // Compare Packed Integer Values into Mask NN_vpcmpnequd, // Compare Packed Integer Values into Mask NN_vpcmpnltud, // Compare Packed Integer Values into Mask NN_vpcmpnleud, // Compare Packed Integer Values into Mask NN_vpcmpltq, // Compare Packed Integer Values into Mask NN_vpcmpleq, // Compare Packed Integer Values into Mask NN_vpcmpneqq, // Compare Packed Integer Values into Mask NN_vpcmpnltq, // Compare Packed Integer Values into Mask NN_vpcmpnleq, // Compare Packed Integer Values into Mask NN_vpcmpequq, // Compare Packed Integer Values into Mask NN_vpcmpltuq, // Compare Packed Integer Values into Mask NN_vpcmpleuq, // Compare Packed Integer Values into Mask NN_vpcmpnequq, // Compare Packed Integer Values into Mask NN_vpcmpnltuq, // Compare Packed Integer Values into Mask NN_vpcmpnleuq, // Compare Packed Integer Values into Mask // Opmask instructions NN_kaddw, // ADD Two Masks NN_kaddb, // ADD Two Masks NN_kaddq, // ADD Two Masks NN_kaddd, // ADD Two Masks NN_kandw, // Bitwise Logical AND Masks NN_kandb, // Bitwise Logical AND Masks NN_kandq, // Bitwise Logical AND Masks NN_kandd, // Bitwise Logical AND Masks NN_kandnw, // Bitwise Logical AND NOT Masks NN_kandnb, // Bitwise Logical AND NOT Masks NN_kandnq, // Bitwise Logical AND NOT Masks NN_kandnd, // Bitwise Logical AND NOT Masks NN_kmovw, // Move from and to Mask Registers NN_kmovb, // Move from and to Mask Registers NN_kmovq, // Move from and to Mask Registers NN_kmovd, // Move from and to Mask Registers NN_kunpckbw, // Unpack for Mask Registers NN_kunpckwd, // Unpack for Mask Registers NN_kunpckdq, // Unpack for Mask Registers NN_knotw, // NOT Mask Register NN_knotb, // NOT Mask Register NN_knotq, // NOT Mask Register NN_knotd, // NOT Mask Register NN_korw, // Bitwise Logical OR Masks NN_korb, // Bitwise Logical OR Masks NN_korq, // Bitwise Logical OR Masks NN_kord, // Bitwise Logical OR Masks NN_kortestw, // OR Masks And Set Flags NN_kortestb, // OR Masks And Set Flags NN_kortestq, // OR Masks And Set Flags NN_kortestd, // OR Masks And Set Flags NN_kshiftlw, // Shift Left Mask Registers NN_kshiftlb, // Shift Left Mask Registers NN_kshiftlq, // Shift Left Mask Registers NN_kshiftld, // Shift Left Mask Registers NN_kshiftrw, // Shift Right Mask Registers NN_kshiftrb, // Shift Right Mask Registers NN_kshiftrq, // Shift Right Mask Registers NN_kshiftrd, // Shift Right Mask Registers NN_kxnorw, // Bitwise Logical XNOR Masks NN_kxnorb, // Bitwise Logical XNOR Masks NN_kxnorq, // Bitwise Logical XNOR Masks NN_kxnord, // Bitwise Logical XNOR Masks NN_ktestw, // Packed Bit Test Masks and Set Flags NN_ktestb, // Packed Bit Test Masks and Set Flags NN_ktestq, // Packed Bit Test Masks and Set Flags NN_ktestd, // Packed Bit Test Masks and Set Flags NN_kxorw, // Bitwise Logical XOR Masks NN_kxorb, // Bitwise Logical XOR Masks NN_kxorq, // Bitwise Logical XOR Masks NN_kxord, // Bitwise Logical XOR Masks // SHA Extensions NN_sha1rnds4, // Perform Four Rounds of SHA1 Operation NN_sha1nexte, // Calculate SHA1 State Variable E after Four Rounds NN_sha1msg1, // Perform an Intermediate Calculation for the Next Four SHA1 Message Dwords NN_sha1msg2, // Perform a Final Calculation for the Next Four SHA1 Message Dwords NN_sha256rnds2, // Perform Two Rounds of SHA256 Operation NN_sha256msg1, // Perform an Intermediate Calculation for the Next Four SHA256 Message Dwords NN_sha256msg2, // Perform a Final Calculation for the Next Four SHA256 Message Dwords // Intel Software Guard Extensions NN_encls, // Execute an Enclave System Function of Specified Leaf Number NN_enclu, // Execute an Enclave User Function of Specified Leaf Number // AMD XOP NN_vfrczpd, // Extract Fraction Packed Double-Precision Floating-Point NN_vfrczps, // Extract Fraction Packed Single-Precision Floating-Point NN_vfrczsd, // Extract Fraction Scalar Double-Precision Floating-Point NN_vfrczss, // Extract Fraction Scalar Single-Precision Floating Point NN_vpcmov, // Vector Conditional Moves NN_vpcomb, // Compare Vector Signed Bytes NN_vpcomd, // Compare Vector Signed Doublewords NN_vpcomq, // Compare Vector Signed Quadwords NN_vpcomub, // Compare Vector Unsigned Bytes NN_vpcomud, // Compare Vector Unsigned Doublewords NN_vpcomuq, // Compare Vector Unsigned Quadwords NN_vpcomuw, // Compare Vector Unsigned Words NN_vpcomw, // Compare Vector Signed Words NN_vpermil2pd, // Permute Two-Source Double-Precision Floating-Point Values NN_vpermil2ps, // Permute Two-Source Single-Precision Floating-Point Values NN_vphaddbd, // Packed Horizontal Add Signed Byte to Signed Doubleword NN_vphaddbq, // Packed Horizontal Add Signed Byte to Signed Quadword NN_vphaddbw, // Packed Horizontal Add Signed Byte to Signed Word NN_vphadddq, // Packed Horizontal Add Signed Doubleword to Signed Quadword NN_vphaddubd, // Packed Horizontal Add Unsigned Byte to Doubleword NN_vphaddubq, // Packed Horizontal Add Unsigned Byte to Quadword NN_vphaddubw, // Packed Horizontal Add Unsigned Byte to Word NN_vphaddudq, // Packed Horizontal Add Unsigned Doubleword to Quadword NN_vphadduwd, // Packed Horizontal Add Unsigned Word to Doubleword NN_vphadduwq, // Packed Horizontal Add Unsigned Word to Quadword NN_vphaddwd, // Packed Horizontal Add Signed Word to Signed Doubleword NN_vphaddwq, // Packed Horizontal Add Signed Word to Signed Quadword NN_vphsubbw, // Packed Horizontal Subtract Signed Byte to Signed Word NN_vphsubdq, // Packed Horizontal Subtract Signed Doubleword to Signed Quadword NN_vphsubwd, // Packed Horizontal Subtract Signed Word to Signed Doubleword NN_vpmacsdd, // Packed Multiply Accumulate Signed Doubleword to Signed Doubleword NN_vpmacsdqh, // Packed Multiply Accumulate Signed High Doubleword to Signed Quadword NN_vpmacsdql, // Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword NN_vpmacssdd, // Packed Multiply Accumulate Signed Doubleword to Signed Doubleword with Saturation NN_vpmacssdqh, // Packed Multiply Accumulate Signed High Doubleword to Signed Quadword with Saturation NN_vpmacssdql, // Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword with Saturation NN_vpmacsswd, // Packed Multiply Accumulate Signed Word to Signed Doubleword with Saturation NN_vpmacssww, // Packed Multiply Accumulate Signed Word to Signed Word with Saturation NN_vpmacswd, // Packed Multiply Accumulate Signed Word to Signed Doubleword NN_vpmacsww, // Packed Multiply Accumulate Signed Word to Signed Word NN_vpmadcsswd, // Packed Multiply, Add and Accumulate Signed Word to Signed Doubleword with Saturation NN_vpmadcswd, // Packed Multiply Add and Accumulate Signed Word to Signed Doubleword NN_vpperm, // Packed Permute Bytes NN_vprotb, // Packed Rotate Bytes NN_vprotd, // Packed Rotate Doublewords NN_vprotq, // Packed Rotate Quadwords NN_vprotw, // Packed Rotate Words NN_vpshab, // Packed Shift Arithmetic Bytes NN_vpshad, // Packed Shift Arithmetic Doublewords NN_vpshaq, // Packed Shift Arithmetic Quadwords NN_vpshaw, // Packed Shift Arithmetic Words NN_vpshlb, // Packed Shift Logical Bytes NN_vpshld, // Packed Shift Logical Doublewords NN_vpshlq, // Packed Shift Logical Quadwords NN_vpshlw, // Packed Shift Logical Words // AMD XOP comparison pseudo-ops NN_vpcomltb, // Compare Vector Signed Bytes NN_vpcomleb, // Compare Vector Signed Bytes NN_vpcomgtb, // Compare Vector Signed Bytes NN_vpcomgeb, // Compare Vector Signed Bytes NN_vpcomeqb, // Compare Vector Signed Bytes NN_vpcomneqb, // Compare Vector Signed Bytes NN_vpcomfalseb, // Compare Vector Signed Bytes NN_vpcomtrueb, // Compare Vector Signed Bytes NN_vpcomltw, // Compare Vector Signed Words NN_vpcomlew, // Compare Vector Signed Words NN_vpcomgtw, // Compare Vector Signed Words NN_vpcomgew, // Compare Vector Signed Words NN_vpcomeqw, // Compare Vector Signed Words NN_vpcomneqw, // Compare Vector Signed Words NN_vpcomfalsew, // Compare Vector Signed Words NN_vpcomtruew, // Compare Vector Signed Words NN_vpcomltd, // Compare Vector Signed Doublewords NN_vpcomled, // Compare Vector Signed Doublewords NN_vpcomgtd, // Compare Vector Signed Doublewords NN_vpcomged, // Compare Vector Signed Doublewords NN_vpcomeqd, // Compare Vector Signed Doublewords NN_vpcomneqd, // Compare Vector Signed Doublewords NN_vpcomfalsed, // Compare Vector Signed Doublewords NN_vpcomtrued, // Compare Vector Signed Doublewords NN_vpcomltq, // Compare Vector Signed Quadwords NN_vpcomleq, // Compare Vector Signed Quadwords NN_vpcomgtq, // Compare Vector Signed Quadwords NN_vpcomgeq, // Compare Vector Signed Quadwords NN_vpcomeqq, // Compare Vector Signed Quadwords NN_vpcomneqq, // Compare Vector Signed Quadwords NN_vpcomfalseq, // Compare Vector Signed Quadwords NN_vpcomtrueq, // Compare Vector Signed Quadwords NN_vpcomltub, // Compare Vector Unsigned Bytes NN_vpcomleub, // Compare Vector Unsigned Bytes NN_vpcomgtub, // Compare Vector Unsigned Bytes NN_vpcomgeub, // Compare Vector Unsigned Bytes NN_vpcomequb, // Compare Vector Unsigned Bytes NN_vpcomnequb, // Compare Vector Unsigned Bytes NN_vpcomfalseub, // Compare Vector Unsigned Bytes NN_vpcomtrueub, // Compare Vector Unsigned Bytes NN_vpcomltuw, // Compare Vector Unsigned Words NN_vpcomleuw, // Compare Vector Unsigned Words NN_vpcomgtuw, // Compare Vector Unsigned Words NN_vpcomgeuw, // Compare Vector Unsigned Words NN_vpcomequw, // Compare Vector Unsigned Words NN_vpcomnequw, // Compare Vector Unsigned Words NN_vpcomfalseuw, // Compare Vector Unsigned Words NN_vpcomtrueuw, // Compare Vector Unsigned Words NN_vpcomltud, // Compare Vector Unsigned Doublewords NN_vpcomleud, // Compare Vector Unsigned Doublewords NN_vpcomgtud, // Compare Vector Unsigned Doublewords NN_vpcomgeud, // Compare Vector Unsigned Doublewords NN_vpcomequd, // Compare Vector Unsigned Doublewords NN_vpcomnequd, // Compare Vector Unsigned Doublewords NN_vpcomfalseud, // Compare Vector Unsigned Doublewords NN_vpcomtrueud, // Compare Vector Unsigned Doublewords NN_vpcomltuq, // Compare Vector Unsigned Quadwords NN_vpcomleuq, // Compare Vector Unsigned Quadwords NN_vpcomgtuq, // Compare Vector Unsigned Quadwords NN_vpcomgeuq, // Compare Vector Unsigned Quadwords NN_vpcomequq, // Compare Vector Unsigned Quadwords NN_vpcomnequq, // Compare Vector Unsigned Quadwords NN_vpcomfalseuq, // Compare Vector Unsigned Quadwords NN_vpcomtrueuq, // Compare Vector Unsigned Quadwords // AMD Excavator NN_monitorx, // Setup Monitor Address NN_mwaitx, // Monitor Wait with Timeout // AMD Zen NN_clzero, // Zero out 64 byte cache // Intel Processor Trace NN_ptwrite, // Write Data to a Processor Trace Packet // new Intel AVX-512 instructions (December 2016) NN_v4fmaddps, // Packed Single-Precision Floating-Point Fused Multiply-Add (4-iterations) NN_v4fnmaddps, // Packed Single-Precision Floating-Point Fused Multiply-Add (4-iterations) NN_v4fmaddss, // Scalar Single-Precision Floating-Point Fused Multiply-Add (4-iterations) NN_v4fnmaddss, // Scalar Single-Precision Floating-Point Fused Multiply-Add (4-iterations) NN_vp4dpwssd, // Dot Product of Signed Words with Dword Accumulation (4-iterations) NN_vp4dpwssds, // Dot Product of Signed Words with Dword Accumulation and Saturation (4-iterations) NN_vpopcntd, // Return the Count of Number of Bits Set to 1 in DWORD NN_vpopcntq, // Return the Count of Number of Bits Set to 1 in QWORD // Read Processor ID NN_rdpid, // Read Processor ID // Invoke VM function NN_vmfunc, // Invoke VM function // Control-flow Enforcement NN_incsspd, // Increment Shadow Stack Pointer (by 4) NN_incsspq, // Increment Shadow Stack Pointer (by 8) NN_rdsspd, // Read (low 32 bits of) Shadow Stack Pointer NN_rdsspq, // Read Shadow Stack Pointer NN_saveprevssp, // Save Previous Shadow Stack Pointer NN_rstorssp, // Restore saved Shadow Stack Pointer NN_wrssd, // Write (4 bytes) to shadow stack NN_wrssq, // Write (8 bytes) to shadow stack NN_wrussd, // Write (4 bytes) to User Shadow Stack NN_wrussq, // Write (8 bytes) to User Shadow Stack NN_setssbsy, // Mark Shadow Stack Busy NN_clrssbsy, // Clear Shadow Stack Busy Flag NN_endbr64, // Terminate an Indirect Branch in 64-bit Mode NN_endbr32, // Terminate an Indirect Branch in 32-bit and Compatibility Mode // Undefined Instruction NN_ud0, // Undefined Instruction NN_ud1, // Undefined Instruction // Enqueue Stores NN_enqcmd, // Enqueue Command NN_enqcmds, // Enqueue Command Supervisor // AMD Zen2 NN_mcommit, // Commit Stores to Memory NN_rdpru, // Read Processor Register // Intel Tremont instructions NN_cldemote, // Cache Line Demote NN_enclv, // Execute an Enclave VMM Function of Specified Leaf Number // Direct Stores NN_movdiri, // Move Doubleword as Direct Store NN_movdir64b, // Move 64 Bytes as Direct Store // Intel WAITPKG instructions NN_tpause, // Timed PAUSE NN_umonitor, // User Level Set Up Monitor Address NN_umwait, // User Level Monitor Wait // Intel Sapphire Rapids instructions NN_serialize, // Serialize Instruction Execution // Intel TSX NN_xresldtrk, // Resume Tracking Load Addresses NN_xsusldtrk, // Suspend Tracking Load Addresses // Intel Affine Transformation instructions NN_gf2p8mulb, // Galois Field Multiply Bytes NN_gf2p8affineqb, // Computes Affine Transformation NN_gf2p8affineinvqb, // Computes Inverse Affine Transformation // VEX versions NN_vgf2p8mulb, // Galois Field Multiply Bytes NN_vgf2p8affineqb, // Computes Affine Transformation NN_vgf2p8affineinvqb, // Computes Inverse Affine Transformation // Intrinsics for Saving and Restoring the Extended Processor States (64-bits) NN_fxsave64, // Fast save FP context (64-bits) NN_fxrstor64, // Fast restore FP context (64-bits) NN_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { I5_null = 0, // Unknown Operation // // Intel 8080-8085 instructions // I5_aci, I5_adc, Z80_adc = I5_adc, I5_add, Z80_add = I5_add, I5_adi, I5_ana, I5_ani, I5_call, I5_cnz, I5_cz, I5_cnc, I5_cc, I5_cpo, I5_cpe, I5_cp, I5_cm, I5_cmc, I5_cmp, I5_cpi, I5_cma, I5_daa, I5_dad, I5_dcr, I5_dcx, I5_di, Z80_di = I5_di, I5_ei, Z80_ei = I5_ei, I5_halt, I5_in, Z80_in = I5_in, I5_inr, I5_inx, I5_jmp, I5_jnz, I5_jz, I5_jnc, I5_jc, I5_jpo, I5_jpe, I5_jp, I5_jm, I5_lda, I5_ldax, I5_lhld, I5_lxi, I5_mov, I5_mvi, I5_nop, I5_ora, I5_ori, I5_out, Z80_out = I5_out, I5_pchl, I5_pop, Z80_pop = I5_pop, I5_push, Z80_push = I5_push, I5_ret, I5_rnz, I5_rz, I5_rnc, I5_rc, I5_rpo, I5_rpe, I5_rp, I5_rm, I5_ral, I5_rlc, I5_rar, I5_rrc, I5_rst, I5_sbb, I5_sbi, I5_stc, I5_sphl, I5_sta, I5_stax, I5_shld, I5_sui, I5_sub, Z80_sub = I5_sub, I5_xra, I5_xri, I5_xchg, I5_xthl, I5_rim, I5_sim, // // Z80 extensions // Z80_and, Z80_bit, Z80_call, Z80_ccf, Z80_cp, Z80_cpd, Z80_cpdr, Z80_cpi, Z80_cpir, Z80_cpl, Z80_dec, Z80_djnz, Z80_ex, Z80_exx, Z80_halt, Z80_im, Z80_inc, Z80_ind, Z80_indr, Z80_ini, Z80_inir, Z80_jp, Z80_jr, Z80_ld, Z80_ldd, Z80_lddr, Z80_ldi, Z80_ldir, Z80_neg, Z80_or, Z80_otdr, Z80_otir, Z80_outd, Z80_outi, Z80_res, Z80_ret, Z80_reti, Z80_retn, Z80_rl, Z80_rla, Z80_rlc, Z80_rlca, Z80_rld, Z80_rr, Z80_rra, Z80_rrc, Z80_rrca, Z80_rrd, Z80_scf, Z80_sbc, Z80_set, Z80_sla, Z80_sra, Z80_srl, Z80_xor, Z80_inp, // undocumented Z80_outp, // undocumented Z80_srr, // undocumented // // HD64180 extensions // HD_in0, Z80_in0 = HD_in0, HD_mlt, Z80_mlt = HD_mlt, HD_otim, Z80_otim = HD_otim, HD_otimr, Z80_otimr = HD_otimr, HD_otdm, Z80_otdm = HD_otdm, HD_otdmr, Z80_otdmr = HD_otdmr, HD_out0, Z80_out0 = HD_out0, HD_slp, Z80_slp = HD_slp, HD_tst, Z80_tst = HD_tst, HD_tstio, Z80_tstio = HD_tstio, // // A80 special instructions // A80_lbcd, A80_lded, A80_lspd, A80_lixd, A80_liyd, A80_sbcd, A80_sded, A80_sspd, A80_sixd, A80_siyd, A80_xtix, A80_xtiy, A80_spix, A80_spiy, A80_pcix, A80_pciy, A80_mvra, A80_mvia, A80_mvar, A80_mvai, A80_addix, A80_addiy, A80_addc, A80_addcix, A80_addciy, A80_subc, A80_subcix, A80_subciy, A80_jrc, A80_jrnc, A80_jrz, A80_jrnz, A80_cmpi, A80_cmpd, A80_im0, A80_im1, A80_im2, A80_otd, A80_oti, // Intel 8085 undocumented instructions // (info from http://oak.oakland.edu/pub/cpm/maclib/i8085.lib) I5_dsub, // (HL) <- (HL)-(BC), affects all flags I5_arhl, // SHIFT HL RIGHT ONE BIT, (H7 IS DUPLICATED, L0 IS SHIFTED INTO CY) I5_rdel, // ROTATE DE LEFT ONE BIT THRU CY, (E0 RECEIVES CY, CY RECEIVES D7) I5_ldhi, // (DE) <- (HL)+arg I5_ldsi, // (DE) <- (SP)+arg I5_shlx, // ((DE)) <- (HL) I5_lhlx, // (HL) <- ((DE)) I5_rstv, // RESTART 40H ON V (OVERFLOW) I5_jx5, // JUMP IF X5 SET I5_jnx5, // JUMP IF NOT X5 SET // Z380 instructions Z80_cplw, // Complement HL register Z80_swap, // Swap upper register word with lower register word Z80_inw, // Input word Z80_outw, // Output word Z80_ldw, // Load word Z80_addw, // Add word Z80_subw, // Subtract word Z80_adcw, // Add with carry word Z80_sbcw, // Subtract with borrow word Z80_andw, // AND logical word Z80_xorw, // XOR logical word Z80_orw, // OR logical word Z80_cpw, // Compare word Z80_ddir, // Decoder directive Z80_calr, // Call relative Z80_ldctl, // Load control register Z80_mtest, // Mode test Z80_exxx, // Exchange Index Register with Alternate Bank Z80_exxy, // Exchange Index Register with Alternate Bank Z80_exall, // Exchange all registers with Alternate Bank Z80_setc, // Set control bit Z80_resc, // Reset control bit Z80_rlcw, // Rotate Left Circular Word Z80_rrcw, // Rotate Right Circular Word Z80_rlw, // Rotate Left Word Z80_rrw, // Rotate Right Word Z80_slaw, // Shift Left Arithmetic Word Z80_sraw, // Shift Right Arithmetic Word Z80_srlw, // Shift Right Logical Word Z80_multw, // Multiply Word Z80_multuw, // Multiply Word Unsigned Z80_divuw, // Divide unsigned Z80_outaw, // Output word direct to port address Z80_inaw, // Input word direct from port address Z80_outa, // Output byte direct to port address Z80_ina, // Input byte direct from port address Z80_negw, // Negate word Z80_exts, // Extend byte sign Z80_extsw, // Extend word sign Z80_btest, // Bank test Z80_ldiw, // Load and increment (word) Z80_ldirw, // Load and increment, repeat (word) Z80_lddw, // Load and decrement (word) Z80_lddrw, // Load and decrement, repeat (word) Z80_iniw, // Input and increment (word) Z80_inirw, // Input and increment, repeat (word) Z80_indw, // Input and decrement (word) Z80_indrw, // Input and decrement, repeat (word) Z80_outiw, // Output and increment (word) Z80_otirw, // Output and increment, repeat (word) Z80_outdw, // Output and decrement (word) Z80_otdrw, // Output and decrement, repeat (word) // Gameboy instructions GB_ldh, GB_stop, I5_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { I860_null = 0, // Unknown Operation // // Intel 860 XP instructions // I860_adds, I860_addu, I860_and, I860_andh, I860_andnot, I860_andnoth, I860_bc, I860_bc_t, I860_bla, I860_bnc, I860_bnc_t, I860_br, I860_bri, I860_bte, I860_btne, I860_call, I860_calli, I860_fadd, I860_faddp, I860_faddz, I860_famov, I860_fiadd, I860_fisub, I860_fix, I860_fld, I860_flush, I860_fmlow_dd, I860_fmul, I860_form, I860_frcp, I860_frsqr, I860_fst, I860_fsub, I860_ftrunc, I860_fxfr, I860_fzchkl, I860_fzchks, I860_introvr, I860_ixfr, I860_ld_c, I860_ld, I860_ldint, I860_ldio, I860_lock, I860_or, I860_orh, I860_pfadd, I860_pfaddp, I860_pfaddz, I860_pfamov, I860_pfeq, I860_pfgt, I860_pfiadd, I860_pfisub, I860_pfix, I860_pfld, I860_pfle, I860_pfmul, I860_pfmul3_dd, I860_pform, I860_pfsub, I860_pftrunc, I860_pfzchkl, I860_pfzchks, I860_pst_d, I860_scyc, I860_shl, I860_shr, I860_shra, I860_shrd, I860_st_c, I860_st, I860_stio, I860_subs, I860_subu, I860_trap, I860_unlock, I860_xor, I860_xorh, // // iNTEL 860 XP Pipelined F-P instructions // I860_r2p1, I860_r2pt, I860_r2ap1, I860_r2apt, I860_i2p1, I860_i2pt, I860_i2ap1, I860_i2apt, I860_rat1p2, I860_m12apm, I860_ra1p2, I860_m12ttpa, I860_iat1p2, I860_m12tpm, I860_ia1p2, I860_m12tpa, I860_r2s1, I860_r2st, I860_r2as1, I860_r2ast, I860_i2s1, I860_i2st, I860_i2as1, I860_i2ast, I860_rat1s2, I860_m12asm, I860_ra1s2, I860_m12ttsa, I860_iat1s2, I860_m12tsm, I860_ia1s2, I860_m12tsa, I860_mr2p1, I860_mr2pt, I860_mr2mp1, I860_mr2mpt, I860_mi2p1, I860_mi2pt, I860_mi2mp1, I860_mi2mpt, I860_mrmt1p2, I860_mm12mpm, I860_mrm1p2, I860_mm12ttpm, I860_mimt1p2, I860_mm12tpm, I860_mim1p2, I860_mr2s1, I860_mr2st, I860_mr2ms1, I860_mr2mst, I860_mi2s1, I860_mi2st, I860_mi2ms1, I860_mi2mst, I860_mrmt1s2, I860_mm12msm, I860_mrm1s2, I860_mm12ttsm, I860_mimt1s2, I860_mm12tsm, I860_mim1s2, I860_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { I51_null = 0, // Unknown Operation I51_acall, // Absolute Call I51_add, // Add Second Operand to Acc I51_addc, // Add Second Operand to Acc with carry I51_ajmp, // Absolute Jump I51_anl, // Logical AND (op1 &= op2) I51_cjne, // Compare Operands and JNE I51_clr, // Clear Operand (0) I51_cpl, // Complement Operand I51_da, // Decimal Adjust Accumulator I51_dec, // Decrement Operand I51_div, // Divide Acc by B I51_djnz, // Decrement Operand and JNZ I51_inc, // Increment Operand I51_jb, // Jump if Bit is set I51_jbc, // Jump if Bit is set & clear Bit I51_jc, // Jump if Carry is set I51_jmp, // Jump indirect relative to Data Pointer I51_jnb, // Jump if Bit is clear I51_jnc, // Jump if Carry is clear I51_jnz, // Jump if Acc is not zero I51_jz, // Jump if Acc is zero I51_lcall, // Long Subroutine Call I51_ljmp, // Long Jump I51_mov, // Move (Op1 <- Op2) I51_movc, // Move code byte relative to second op to Acc I51_movx, // Move from/to external RAM I51_mul, // Multiply Acc by B I51_nop, // No operation I51_orl, // Logical OR (op1 |= op2) I51_pop, // Pop from Stack and put in Direct RAM I51_push, // Push from Direct RAM to Stack I51_ret, // Return from subroutine I51_reti, // Return from Interrupt I51_rl, // Rotate Acc left I51_rlc, // Rotate Acc left through Carry I51_rr, // Rotate Acc right I51_rrc, // Rotate Acc right through Carry I51_setb, // Set Direct Bit I51_sjmp, // Short jump I51_subb, // Subtract Second Operand from Acc with Borrow I51_swap, // Swap nibbles of Acc I51_xch, // Exchange Operands I51_xchd, // Exchange Digit in Acc with Indirect RAM I51_xrl, // Exclusive OR (op1 ^= op2) // 80251 instructions I51_jsle, // Jump if less than or equal (signed) I51_jsg, // Jump if greater than (signed) I51_jle, // Jump if less than or equal I51_jg, // Jump if greater than I51_jsl, // Jump if less than (signed) I51_jsge, // Jump if greater than or equal (signed) I51_je, // Jump if equal I51_jne, // Jump if not equal I51_trap, // Trap I51_ejmp, // Extended jump I51_ecall, // Extended call I51_eret, // Extended return I51_movh, // Move immediate 16-bit data to the high word of a dword (double-word) register I51_movz, // Move 8-bit register to 16-bit register with zero extension I51_movs, // Move 8-bit register to 16-bit register with sign extension I51_srl, // Shift logical right by 1 bit I51_sra, // Shift arithmetic right by 1 bit I51_sll, // Shift logical left by 1 bit I51_sub, // Subtract I51_cmp, // Compare // 51mx instructions I51_emov, // Move (A <- @PRi+disp) or (@PRi+disp <- A) I51_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { 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, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { M65_null = 0, // Unknown Operation // NMOS instructions M65_adc, // A <- (A) + M + C M65_anc, // A <- A /\ M, C <- ~A7 M65_and, // A <- (A) /\ M M65_ane, // M <-[(A)\/$EE] /\ (X)/\(M) M65_arr, // A <- [(A /\ M) >> 1] M65_asl, // C <- A7, A <- (A) << 1 M65_asr, // A <- [(A /\ M) >> 1] M65_bcc, // if C=0, PC = PC + offset M65_bcs, // if C=1, PC = PC + offset M65_beq, // if Z=1, PC = PC + offset M65_bit, // Z <- ~(A /\ M) N<-M7 V<-M6 M65_bmi, // if N=1, PC = PC + offset M65_bne, // if Z=0, PC = PC + offset M65_bpl, // if N=0, PC = PC + offset M65_brk, // Stack <- PC, PC <- ($fffe) M65_bvc, // if V=0, PC = PC + offset M65_bvs, // if V=1, PC = PC + offset M65_clc, // C <- 0 M65_cld, // D <- 0 M65_cli, // I <- 0 M65_clv, // V <- 0 M65_cmp, // (A - M) -> NZC M65_cpx, // (X - M) -> NZC M65_cpy, // (Y - M) -> NZC M65_dcp, // M <- (M)-1, (A-M) -> NZC M65_dec, // M <- (M) - 1 M65_dex, // X <- (X) - 1 M65_dey, // Y <- (Y) - 1 M65_eor, // A <- (A) \-/ M M65_inc, // M <- (M) + 1 M65_inx, // X <- (X) +1 M65_iny, // Y <- (Y) + 1 M65_isb, // M <- (M) - 1,A <- (A)-M-~C M65_jmp, // PC <- Address M65_jmpi, // (PC <- Address) M65_jsr, // Stack <- PC, PC <- Address M65_lae, // X,S,A <- (S /\ M) M65_lax, // A <- M, X <- M M65_lda, // A <- M M65_ldx, // X <- M M65_ldy, // Y <- M M65_lsr, // C <- A0, A <- (A) >> 1 M65_lxa, // X04 <- (X04) /\ M04, A04 <- (A04) /\ M04 M65_nop, // [no operation] M65_ora, // A <- (A) V M M65_pha, // Stack <- (A) M65_php, // Stack <- (P) M65_pla, // A <- (Stack) M65_plp, // A <- (Stack) M65_rla, // M <- (M << 1) /\ (A) M65_rol, // C <- A7 & A <- A << 1 + C M65_ror, // C<-A0 & A<- (A7=C + A>>1) M65_rra, // M <- (M >> 1) + (A) + C M65_rti, // P <- (Stack), PC <-(Stack) M65_rts, // PC <- (Stack) M65_sax, // M <- (A) /\ (X) M65_sbc, // A <- (A) - M - ~C M65_sbx, // X <- (X)/\(A) - M M65_sec, // C <- 1 M65_sed, // D <- 1 M65_sei, // I <- 1 M65_sha, // M <- (A) /\ (X) /\ (PCH+1) M65_shs, // X <- (A) /\ (X), S <- (X), M <- (X) /\ (PCH+1) M65_shx, // M <- (X) /\ (PCH+1) M65_shy, // M <- (Y) /\ (PCH+1) M65_slo, // M <- (M >> 1) + A + C M65_sre, // M <- (M >> 1) \-/ A M65_sta, // M <- (A) M65_stx, // M <- (X) M65_sty, // M <- (Y) M65_tax, // X <- (A) M65_tay, // Y <- (A) M65_tsx, // X <- (S) M65_txa, // A <- (X) M65_txs, // S <- (X) M65_tya, // A <- (Y) // CMOS instructions M65_bbr0, // Branch if bit 0 reset M65_bbr1, // Branch if bit 1 reset M65_bbr2, // Branch if bit 2 reset M65_bbr3, // Branch if bit 3 reset M65_bbr4, // Branch if bit 4 reset M65_bbr5, // Branch if bit 5 reset M65_bbr6, // Branch if bit 6 reset M65_bbr7, // Branch if bit 7 reset M65_bbs0, // Branch if bit 0 set M65_bbs1, // Branch if bit 1 set M65_bbs2, // Branch if bit 2 set M65_bbs3, // Branch if bit 3 set M65_bbs4, // Branch if bit 4 set M65_bbs5, // Branch if bit 5 set M65_bbs6, // Branch if bit 6 set M65_bbs7, // Branch if bit 7 set M65_rmb0, // Reset memory bit 0 M65_rmb1, // Reset memory bit 1 M65_rmb2, // Reset memory bit 2 M65_rmb3, // Reset memory bit 3 M65_rmb4, // Reset memory bit 4 M65_rmb5, // Reset memory bit 5 M65_rmb6, // Reset memory bit 6 M65_rmb7, // Reset memory bit 7 M65_smb0, // Set memory bit 0 M65_smb1, // Set memory bit 1 M65_smb2, // Set memory bit 2 M65_smb3, // Set memory bit 3 M65_smb4, // Set memory bit 4 M65_smb5, // Set memory bit 5 M65_smb6, // Set memory bit 6 M65_smb7, // Set memory bit 7 M65_stz, // Store zero M65_tsb, // Test and set bits M65_trb, // Test and reset bits M65_phy, // Push Y register M65_ply, // Pull Y register M65_phx, // Push X register M65_plx, // Pull X register M65_bra, // Branch always M65_wai, // Wait for interrupt M65_stp, // Stop processor M65_last, }; // The instruction types (``itype''s) // m65* CPUs implements. enum m65_itype_t { // http://www.westerndesigncenter.com/wdc/datasheets/Programmanual.pdf M65816_null=0, // Unknown Operation M65816_adc, // Add with carry M65816_and, // AND A with memory M65816_asl, // Shift memory or A left M65816_bcc, // Branch if carry clear M65816_bcs, // Branch if carry set M65816_beq, // Branch if equal M65816_bit, // Test memory bits against A M65816_bmi, // Branch if minus M65816_bne, // Branch if not equal M65816_bpl, // Branch if plus M65816_bra, // Branch always M65816_brk, // Software break M65816_brl, // Branch always long M65816_bvc, // Branch if overflow clear M65816_bvs, // Branch if overflow set M65816_clc, // Clear carry flag M65816_cld, // Clear decimal mode flag M65816_cli, // Clear interrupt disable flag M65816_clv, // Clear overflow flag M65816_cmp, // Compare A with memory M65816_cop, // Co-processor enable M65816_cpx, // Compare X with memory M65816_cpy, // Compare Y with memory M65816_dec, // Decrement M65816_dex, // Decrement X M65816_dey, // Decrement Y M65816_eor, // XOR A with M M65816_inc, // Increment M65816_inx, // Increment X M65816_iny, // Increment Y M65816_jml, // Jump long (inter-bank) M65816_jmp, // Jump M65816_jsl, // Jump to subroutine long (inter-bank) M65816_jsr, // Jump to subroutine M65816_lda, // Load A from memory M65816_ldx, // Load X from memory M65816_ldy, // Load Y from memory M65816_lsr, // Logical shift memory or A right M65816_mvn, // Block move next M65816_mvp, // Block move prev M65816_nop, // Nop M65816_ora, // Or A with memory M65816_pea, // Push effective absolute address M65816_pei, // Push effective indirect address M65816_per, // Push effective PC-relative indirect address M65816_pha, // Push A M65816_phb, // Push B (data bank register) M65816_phd, // Push D (direct page register) M65816_phk, // Push K (program bank register) M65816_php, // Push processor status M65816_phx, // Push X M65816_phy, // Push Y M65816_pla, // Pull A M65816_plb, // Pull B M65816_pld, // Pull D M65816_plp, // Pull processor status M65816_plx, // Pull X M65816_ply, // Pull Y M65816_rep, // Reset status bits M65816_rol, // Rotate memory or A left M65816_ror, // Rotate memory or A right M65816_rti, // Return from interrupt M65816_rtl, // Return from subroutine long M65816_rts, // Return from subroutine M65816_sbc, // Subtract with borrow from A M65816_sec, // Set carry flag M65816_sed, // Set decimal mode flag M65816_sei, // Set interrupt disable flag M65816_sep, // Set status bits M65816_sta, // Store A to memory M65816_stp, // Stop processor M65816_stx, // Store X to memory M65816_sty, // Store Y to memory M65816_stz, // Store zero to memory M65816_tax, // Transfer A to X M65816_tay, // Transfer A to Y M65816_tcd, // Transfer 16-bit A to D (direct page register) M65816_tcs, // Transfer A to S M65816_tdc, // Transfer 16-bit D to A M65816_trb, // Test and reset memory bits against A M65816_tsb, // Test and set memory bits against A M65816_tsc, // Transfer S to A M65816_tsx, // Transfer S to X M65816_txa, // Transfer X to A M65816_txs, // Transfer X to S M65816_txy, // Transfer X to Y M65816_tya, // Transfer Y to A M65816_tyx, // Transfer Y to X M65816_wai, // Wait for interrupt M65816_wdm, // Reserved M65816_xba, // Exchange bytes in A M65816_xce, // Exchange carry and emulation bits M65816_last }; /* * Interactive disassembler (IDA) * Copyright (c) 1990-2021 Hex-Rays * PDP11 module. * Copyright (c) 1995-2006 by Iouri Kharon. * E-mail: yjh@styx.cabel.net * * ALL RIGHTS RESERVED. * */ enum { pdp_null = 0, // Unknown Operation pdp_halt, // Stop CPU pdp_wait, // Wait interrupt pdp_rti, // Interrupt return pdp_bpt, // Trap to Debbuger pdp_iot, // Trap to 20 (i/o) pdp_reset, // Reset CPU and device pdp_rtt, // Interrupt return and ignore dbg-flag pdp_mfpt, // Load Processor Type (* hi model) pdp_jmp, // Absolute jmp pdp_rts, // Return into subroutine pdp_spl, // Set Prior. pdp_nop, // Not operation pdp_clc, // Clear C bit in PSW pdp_clv, // Clear V bit in PSW pdp_clz, // Clear Z bit in PSW pdp_cln, // Clear N bit in PSW pdp_ccc, // Clear All Condition bits in PSW pdp_sec, // Set C bit in PSW pdp_sev, // Set V bit in PSW pdp_sez, // Set Z bit in PSW pdp_sen, // Set N bit in PSW pdp_scc, // Set All Condition bits bit in PSW pdp_swab, // Exchange byte in word pdp_br, // Relative jmp pdp_bne, // Jump if Z=0 pdp_beq, // Jump if Z=1 pdp_bge, // Jump if N^V=0 pdp_blt, // Jump if N^V=1 pdp_bgt, // Jump if Z|(N^V)=0 pdp_ble, // Jump if Z|(N^V)=1 pdp_jsr, // Call procedure pdp_clr, // Clear operand pdp_com, // Inverse operand pdp_inc, // Increment operand pdp_dec, // Decrement operand pdp_neg, // op = -op pdp_adc, // Add with Carry pdp_sbc, // Substract with Carry pdp_tst, // Test operand pdp_ror, // Cyclic shift rignt pdp_rol, // Cyclic shift left pdp_asr, // Arifmetic shift rignt pdp_asl, // Arifmetic shift left pdp_mark, // Return and empty stack pdp_mfpi, // Load from previous instruction space (*hi model) pdp_mtpi, // Store to previous instruction space (*hi model) pdp_sxt, // N=>op pdp_mov, // Move operand pdp_cmp, // Compare operands pdp_bit, // Check Bit's pdp_bic, // Clear Bit's pdp_bis, // Set Bit's pdp_add, // Add operands pdp_sub, // Substract operands pdp_mul, // Multiple Reg (*eis) pdp_div, // Divide Reg (*eis) pdp_ash, // Multistep shift (*eis) pdp_ashc, // Multistep shift 2 reg (*eis) pdp_xor, // Exclusive or (*eis) pdp_fadd, // Floating Add (*fis) pdp_fsub, // Floating Subtract (*fis) pdp_fmul, // Floating Multiple (*fis) pdp_fdiv, // Floating Divide (*fis) pdp_sob, // pdp_bpl, // Jump if N=0 pdp_bmi, // Jump if N=1 pdp_bhi, // Jump if (!C)&(!Z)=0 pdp_blos, // Jump if C|Z=1 pdp_bvc, // Jump if V=0 pdp_bvs, // Jump if V=1 pdp_bcc, // Jump if C=0 pdp_bcs, // Jump if C=1 pdp_emt, // Trap to System pdp_trap, // Trap to user/compiler pdp_mtps, // Store PSW (*lsi11 only) pdp_mfpd, // Load from previous data space (*hi model) pdp_mtpd, // Store to previous data space (*hi model) pdp_mfps, // Load PSW (*lsi11 only) // FPU instruction pdp_cfcc, // Copy cond.codes into FPS to PSW pdp_setf, // Set Float pdp_seti, // Set Integer pdp_setd, // Set Double pdp_setl, // Set Long Integer pdp_ldfps, // Load FPS pdp_stfps, // Store FPS pdp_stst, // Load interrupt status pdp_clrd, // Clear pdp_tstd, // Test pdp_absd, // op = mod(op) pdp_negd, // op = -op pdp_muld, // Multiple pdp_modd, // Get int. part pdp_addd, // Add pdp_ldd, // Load in Acc pdp_subd, // Substract pdp_cmpd, // Compare pdp_std, // Store into Acc pdp_divd, // Divide pdp_stexp, // Store exponent pdp_stcdi, // Store and convert double/float to integer/long pdp_stcdf, // Store and convert double/float to float/double pdp_ldexp, // Load exponent pdp_ldcif, // Load and convert integer/long to double/float pdp_ldcfd, // Load and convert float/double to double/float pdp_call, // Jsr PC, pdp_return, // RTS PC pdp_compcc, // Complex Condition Codes pdp_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { mc_null = 0, // Unknown Operation mc_abcd, // summa with BCD correction mc_add, // summa with Dn mc_adda, // summa with An mc_addi, // summa with immediate mc_addq, // -"- mc_addx, // summa 2 reg and const mc_and, // logical and mc_andi, // logical and with immediate mc_asl, // shift by count mc_asr, // -"- mc_b, // branch if cond code mc_bchg, // bit chang mc_bclr, // bit clear mc_bftst, // bit field test mc_bfchg, // bit field change mc_bfclr, // bit field set in 0 mc_bfset, // bit field set in 1 mc_bfextu, // bit field extract (unsigned) mc_bfexts, // bit field extract (signed) mc_bfffo, // bit field offset mc_bfins, // bit field include mc_bgnd, // CPU32- enter backgound mode mc_bkpt, // disable TRAP at any cycles mc_bra, // branch mc_bset, // bit set mc_bsr, // relative call mc_btst, // bit test mc_callm, // call module [descrtiptor] (020) mc_cas, // compare and swap mc_cas2, // -"- mc_chk, // compare and trap mc_chk2, // -"- mc_cinv, // invalidate cache mc_clr, // clear data mc_cmp, // compare data mc_cmp2, // -"- mc_cmpa, // compare address mc_cmpi, // compare immediate mc_cmpm, // compare memory mc_cpush, // invalidate cache mc_db, // (djnz) if cond code mc_divs, // sign divide mc_divsl, // -"- mc_divu, // unsign didide mc_divul, // -"- mc_eor, // logical xor mc_eori, // logical xor with immediate mc_exg, // exchange registers mc_ext, // analog cwd mc_extb, // analog cwq mc_fabs, // FP abs mc_facos, // FP acos mc_fadd, // FP add mc_fasin, // FP asin mc_fatan, // FP atan mc_fatanh, // FP atanh mc_fb, // fBcc mc_fcmp, // FP cmp mc_fcos, // FP cos mc_fcosh, // FP cosh mc_fdabs, // FP abs double rounded mc_fdadd, // FP add mc_fdb, // fDBcc mc_fddiv, // FP div double rounded mc_fdiv, // FP div mc_fdmove, // FP mov double rounded mc_fdmul, // FP mul double rounded mc_fdneg, // FP neg double rounded mc_fdsqrt, // FP sqrt double rounded mc_fdsub, // FP sub double rounded mc_fetox, // FP e**x mc_fetoxm1, // FP e**x-1 mc_fgetexp, // FP extract exponent mc_fgetman, // FP extract mantissa mc_fint, // FP get integer part mc_fintrz, // FP get integer part by round mc_flog2, // FP log[2] mc_flog10, // FP log[10] mc_flogn, // FP log[e] mc_flognp1, // FP log[e] x+1 mc_fmod, // FP mod mc_fmove, // move float mc_fmovecr, // move floating const mc_fmovem, // move float register list mc_fmul, // FM mul mc_fneg, // FP neg mc_fnop, // float nop mc_frem, // FP rem mc_frestore, // restore status mc_fs, // fScc mc_fsabs, // FP abs single rounded mc_fsadd, // FP add single rounded mc_fsave, // Fsave status mc_fscale, // FP *2**x mc_fsdiv, // FP div single rounded mc_fsgldiv, // FP single div mc_fsglmul, // FP single mul mc_fsin, // FP sin mc_fsincos, // FP sin & cos mc_fsinh, // FP sinh mc_fsmove, // FP mov single rounded mc_fsmul, // FP mul single rounded mc_fsneg, // FP neg single rounded mc_fsqrt, // FP sqrt mc_fssqrt, // FP sqrt single rounded mc_fssub, // FP sub single rounded mc_fsub, // FP sub mc_ftan, // FP tan mc_ftanh, // FP tanh mc_ftentox, // FP 10**x mc_ftrap, // fTRAPcc mc_ftst, // FP tst mc_ftwotox, // FP 2**x mc_halt, // (coldfire) Halt the processor mc_illegal, // trap to vector mc_jmp, // absolute Jmp mc_jsr, // absolute jsr mc_lea, // load effective address mc_link, // change sp context mc_lpstop, // cpu32 - stop mc_lsl, // logical shift mc_lsr, // -"- mc_mac, // multiple and accumulate mc_macl, // multiple and accumulate with register load mc_move, // move memory mc_move16, // move 16 byte mc_movea, // move move with address reg mc_movec, // move from/to control register mc_movem, // move register list mc_movep, // move with data register mc_moveq, // move with immediate mc_moves, // mtpd/mfpd mc_msac, // multiple and subtract mc_msacl, // multiple and subtract with register load mc_muls, // sign multiplication mc_mulu, // unsign multiplication mc_nbcd, // negative with BCD correct mc_neg, // negative mc_negx, // negative with immediate mc_nop, // null operation mc_not, // logical not mc_or, // logical or mc_ori, // logical or with immediate mc_pack, // UNP(bcd)+adj -> PACK(bcd) mc_pea, // lea into stack mc_pb, // 68851 pbcc mc_pdb, // 68851 pdbcc mc_pflush, // invalidate cache mc_pflushr, // 68851 load root entry mc_ploadr, // 68851 mc_ploadw, // 68851 mc_pmove, // move MMU register mc_prestore, // 68851 mc_psave, // 68851 mc_ps, // 68851 pscc mc_ptestr, // test a logical address mc_ptestw, // -"- mc_ptrap, // 68851 ptrapcc mc_pulse, // (coldfire) generate unique PST value mc_pvalid, // 68851 move AL bit mc_rol, // cycl. shift mc_ror, // -"- mc_roxl, // two op cycl shift mc_roxr, // -"- mc_reset, // reset mc_rtd, // mark mc_rte, // return with SR mc_rtm, // reload save module state mc_rtr, // return with CCR mc_rts, // return mc_sbcd, // substract with BCD correction mc_s, // 1 if cond code else 0 mc_stop, // halt mc_sub, // substract mc_suba, // substract address mc_subi, // substract immediate mc_subq, // -"- mc_subx, // substract memory mc_swap, // hi and low word in register mc_tas, // test byte sign mc_tbl, // CPU32-tblu/tblun/tbls/tblsn mc_trap, // analog int(86) (or trap if cond code) mc_trapv, // if V then trap mc_tst, // test destination mc_unlk, // destroy address ? mc_unpk, // PACK(bcd)+adj -> UNPACK(bcd) mc_wddata, // (coldfire) load WDDATA port (pins) mc_wdebug, // (coldfire) load debug register mc_atrap, // MacOS atrap // new ColdFire instructions mc_bitrev, // bit reverse mc_byterev, // byte reverse mc_ff1, // find first one mc_intouch, // instruction fetch touch mc_mov3q, // move 3-bit data quick mc_mvs, // move with sign extend mc_mvz, // move with zero-fill mc_sats, // signed saturate mc_movclr, // move from accumulator and clear mc_maaac, // Multiply and Add to 1st Accumulator, Add to 2nd Accumulator mc_masac, // Multiply and Add to 1st Accumulator, Subtract from 2nd Accumulator mc_msaac, // Multiply and Subtract to 1st Accumulator, Add to 2nd Accumulator mc_mssac, // Multiply and Subtract to 1st Accumulator, Subtract to 2nd Accumulator mc_remsl, // Signed Divide Remainder mc_remul, // Unsigned Divide Remainder mc_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { mc8_null = 0, // Unknown Operation mc8_aba, // Add b to a (11) mc8_ab, // Add b to index register mc8_adc, // Add with carry mc8_add, // Add without carry mc8_addd, // Add 16-bit to D (11) mc8_ais, // Add immediate value to stack pointer (8) mc8_aix, // Add immediate value to index register (H:X) (8) mc8_and, // Logical AND mc8_andcc, // Logical AND immdiate with CCR (9) mc8_asr, // Ariphmetic shift right mc8_bcc, // Branch if carry bit clear mc8_bclr, // Clear bit in memory mc8_bcs, // Branch if carry bit set mc8_beq, // Branch if equal mc8_bge, // Branch if >= (signed) mc8_bgt, // Branch if > (signed) mc8_bhcc, // Branch if half carry bit clear (8) mc8_bhcs, // Branch if half carry bit set (8) mc8_bhi, // Branch if > (unsigned) mc8_bhs, // Branch if >= (unsigned) (11) mc8_bih, // Branch if IRQ pin high (8) mc8_bil, // Branch if IRQ pin low (8) mc8_bit, // Bit test (8) mc8_ble, // Branch if <= (signed) (8) mc8_blo, // Branch if < (unsigned) (11) mc8_bls, // Branch if <= (unsigned) (8) mc8_blt, // Branch if < (signed) (8) mc8_bmc, // Branch if interrupt mask clear (8) mc8_bmi, // Branch if minus mc8_bms, // Branch if interrupt mask set (8) mc8_bne, // Branch if not equal mc8_bpl, // Branch if not plus mc8_bra, // Branch always mc8_brclr, // Branch if bit (n) in memory clear mc8_brn, // Branch never mc8_brset, // Branch if bit (n) in memory set mc8_bset, // Set bit in memory mc8_bsr, // Branch to subroutine mc8_bvc, // Branch if overflow cleared (11) mc8_bvs, // Branch if overflow set (11) mc8_cba, // Compare A to B (11) mc8_cbeq, // Compare and branch if equal (8) mc8_clc, // Clear carry bit mc8_cli, // Clear interrupt mask mc8_clr, // Clear mc8_clv, // Clear overflow flag (11) mc8_cmp, // Compare accumulator with memory mc8_com, // Complement mc8_cp, // Compare index register 16 bit (11) mc8_cpd, // Compare D 16 bit (11) mc8_cphx, // Compare index register with memory (8) mc8_cpx, // Compare X (index register low) with memory (8) mc8_cwai, // Clear CC bits & wait for interrupt (9) mc8_daa, // Decimal adjust accumulator mc8_dbnz, // Decrement and branch if not equal (8) mc8_de, // Decrement index register (11) mc8_dec, // Decrement mc8_des, // Decrement stack pointer (11) mc8_div, // Divide (8) mc8_eor, // Excusive OR memory with accumulator mc8_exg, // Exchange register (9) mc8_fdiv, // Fractional divide 16 by 16 (11) mc8_idiv, // Integer divide 16 by 16 (11) mc8_in, // Increment index register (11) mc8_inc, // Increment mc8_ins, // Increment stack pointer (11) mc8_jmp, // Jump mc8_jsr, // Jump to subroutine mc8_ld, // Load index register (11) mc8_lda, // Load accumulator from memory mc8_ldd, // Load double accumulator (11) mc8_ldhx, // Load index register from memory (8) mc8_lds, // Load stack pointer (11) mc8_ldx, // Load X (index register low) from memory (8) mc8_lea, // Load register from memory (9) mc8_lsl, // Logical (or Ariphmetic) shift left mc8_lsld, // Logical (or Ariphmetic) shift left double (11) mc8_lsr, // Logical shift right mc8_lsrd, // Logical shift right double (11) mc8_mov, // Move (8) mc8_mul, // Unsigned multiply mc8_neg, // Negate mc8_nop, // No Operation mc8_nsa, // Nibble swap accumulator (8) mc8_ora, // Inclusive OR memory with accumulator mc8_orcc, // Inclusive OR immediate with CCR (9) mc8_psh, // Push index register into stack (low first) (11) mc8_psha, // Push accumulator A into stack mc8_pshb, // Push accumulator B into stack (11) mc8_pshh, // Push H (index register high) into stack (8) mc8_pshx, // Push X (index register low) into stack (8) mc8_pul, // Pull index register from stack (hi first) (11) mc8_pula, // Pull accumulator A from stack mc8_pulb, // Pull accumulator B from stack (11) mc8_pulh, // Pull H (index register high) from stack (8) mc8_pulx, // Pull X (index register low) from stack (8) mc8_rol, // Rotate left trough carry mc8_ror, // Rotate right trough carry mc8_rsp, // Reset stack pointer (8) mc8_rti, // Reset from interrupt mc8_rts, // Reset from subroutine mc8_sba, // Subtract B from A (11) mc8_sbc, // Subtract with carry mc8_sec, // Set carry bit mc8_sei, // Set interrupt mask bit mc8_sev, // Set Overflow Flag (11) mc8_sex, // Sign extended (9) mc8_slp, // Sleep (HD63701 extention) (11) mc8_st, // Store index register in memory (11) mc8_sta, // Store accumulator in memory mc8_std, // Store accumulators in memory (11) mc8_sthx, // Store H:X (index reg) (8) mc8_stop, // Enable IRQ pin. Stop oscillator mc8_sts, // Store stack pointer (11) mc8_stx, // Store X (index register low) in memory (8) mc8_sub, // Subtract mc8_subd, // Subtract 16-bit (11) mc8_swi, // Software interrupt mc8_sync, // Syncronisation with interrupt (9) mc8_tab, // Transfer A to B (11) mc8_tap, // Transfer A to CCR mc8_tax, // Transfer accumulator to X (index register low) (8) mc8_tba, // Transfer B to A (11) mc8_test, // Address Bus Counts (in test mode) (11) mc8_tfr, // Transfer register to register (9) mc8_tpa, // Transfer CCR to A mc8_ts, // Transfer SP to index reg (11) mc8_tst, // Test for negative or zero mc8_tsx, // Transfer SP to index reg (8) mc8_txa, // Transfer X (index reg low) to accumulator (8) mc8_txs, // Transfer index reg X to SP mc8_tys, // Transfer index reg Y to SP (11) mc8_wai, // Wait for interrupt (11) mc8_wait, // Enable interrupt. Stop processor (8) mc8_xgd, // Exchange D with index register (11) mc8_1, // Special testing command (11) mc8_2, // Special testing command (11) mc8_os9, // OS9 system call (9) // these instructions must be continuous (HD63701 extention) mc8_aim, mc8_oim, mc8_eim, mc8_tim, // new S08 instructions mc8_bgnd, // Background (8) mc8_call, // Call Subroutine (8) mc8_rtc, // Return fom Call (8) // Pseudoinstructions mc8_skip1, // Skip one byte mc8_skip2, // Skip two bytes mc8_last }; /* * Interactive disassembler (IDA) * Copyright (c) 1990-2021 Hex-Rays * JVM module. * Copyright (c) 1995-2006 by Iouri Kharon. * E-mail: yjh@styx.cabel.net * * ALL RIGHTS RESERVED. * */ enum { j_nop = 0, // 0 Do nothing j_aconst_null, // 1 Push null object reference j_iconst_m1, // 2 Push integer constant -1 j_iconst_0, // 3 Push the integer 0 j_iconst_1, // 4 Push the integer 1 j_iconst_2, // 5 Push the integer 2 j_iconst_3, // 6 Push the integer 3 j_iconst_4, // 7 Push the integer 4 j_iconst_5, // 8 Push the integer 5 j_lconst_0, // 9 Push the long integer 0 j_lconst_1, // 10 Push the long integer 1 j_fconst_0, // 11 Push the single-precision foating point 0.0 j_fconst_1, // 12 Push the single-precision foating point 1.0 j_fconst_2, // 13 Push the single-precision foating point 2.0 j_dconst_0, // 14 Push the double-precision foating point 2.0 j_dconst_1, // 15 Push the double-precision foating point 2.0 j_bipush, // 16 Push one byte signed integer j_sipush, // 17 Push two-byte signed integer j_ldc, // 18 Push item from constant pool (i1) j_ldcw, // 19 Push item from constant pool (i2) j_ldc2w, // 20 Push long or double from constant pool j_iload, // 21 Push integer value of the local variable j_lload, // 22 Push long value of the local variable j_fload, // 23 Push single float value of the local variable j_dload, // 24 Push double float value of the local variable j_aload, // 25 Push object reference from the local variable j_iload_0, // 26 Push integer value of the local variable #0 j_iload_1, // 27 Push integer value of the local variable #1 j_iload_2, // 28 Push integer value of the local variable #2 j_iload_3, // 29 Push integer value of the local variable #3 j_lload_0, // 30 Push long value of the local variable #0 j_lload_1, // 31 Push long value of the local variable #1 j_lload_2, // 32 Push long value of the local variable #2 j_lload_3, // 33 Push long value of the local variable #3 j_fload_0, // 34 Push single float value of the local variable #0 j_fload_1, // 35 Push single float value of the local variable #1 j_fload_2, // 36 Push single float value of the local variable #2 j_fload_3, // 37 Push single float value of the local variable #3 j_dload_0, // 38 Push double float value of the local variable #0 j_dload_1, // 39 Push double float value of the local variable #1 j_dload_2, // 40 Push double float value of the local variable #2 j_dload_3, // 41 Push double float value of the local variable #3 j_aload_0, // 42 Push object reference from the local variable #0 j_aload_1, // 43 Push object reference from the local variable #1 j_aload_2, // 44 Push object reference from the local variable #2 j_aload_3, // 45 Push object reference from the local variable #3 j_iaload, // 46 Push integer from array j_laload, // 47 Push long from array j_faload, // 48 Push single float from array j_daload, // 49 Push double float from array j_aaload, // 50 Push object refernce from array j_baload, // 51 Push signed byte from array j_caload, // 52 Push character from array j_saload, // 53 Push short from array j_istore, // 54 Pop integer value into local variable j_lstore, // 55 Pop long value into local variable j_fstore, // 56 Pop single float value into local variable j_dstore, // 57 Pop double float value into local variable j_astore, // 58 Pop object refernce into local variable j_istore_0, // 59 Pop integer value into local variable #0 j_istore_1, // 60 Pop integer value into local variable #1 j_istore_2, // 61 Pop integer value into local variable #2 j_istore_3, // 62 Pop integer value into local variable #3 j_lstore_0, // 63 Pop long value into local variable #0 j_lstore_1, // 64 Pop long value into local variable #1 j_lstore_2, // 65 Pop long value into local variable #2 j_lstore_3, // 66 Pop long value into local variable #3 j_fstore_0, // 67 Pop single float value into local variable #0 j_fstore_1, // 68 Pop single float value into local variable #1 j_fstore_2, // 69 Pop single float value into local variable #2 j_fstore_3, // 70 Pop single float value into local variable #3 j_dstore_0, // 71 Pop double float value into local variable j_dstore_1, // 72 Pop double float value into local variable #0 j_dstore_2, // 73 Pop double float value into local variable #1 j_dstore_3, // 74 Pop double float value into local variable #2 j_astore_0, // 75 Pop object refernce into local variable #0 j_astore_1, // 76 Pop object refernce into local variable #1 j_astore_2, // 77 Pop object refernce into local variable #2 j_astore_3, // 78 Pop object refernce into local variable #3 j_iastore, // 79 Pop integer from array j_lastore, // 80 Pop long from array j_fastore, // 81 Pop single float from array j_dastore, // 82 Pop double float from array j_aastore, // 83 Pop object refernce from array j_bastore, // 84 Pop signed byte from array j_castore, // 85 Pop character from array j_sastore, // 86 Pop short from array j_pop, // 87 Pop top stack word j_pop2, // 88 Pop top two stack word j_dup, // 89 Duplicate top stack word j_dup_x1, // 90 Duplicate top stack word and put two down j_dup_x2, // 91 Duplicate top stack word and put three down j_dup2, // 92 Duplicate top two stack word j_dup2_x1, // 93 Duplicate top two stack words and put two down j_dup2_x2, // 94 Duplicate top two stack words and put three down j_swap, // 95 Swap two top stack words j_iadd, // 96 Integer add j_ladd, // 97 Long add j_fadd, // 98 Single float add j_dadd, // 99 Double float add j_isub, // 100 Integer subtract j_lsub, // 101 Long subtract j_fsub, // 102 Single float subtract j_dsub, // 103 Double Float subtract j_imul, // 104 Integer multiply j_lmul, // 105 Long multiply j_fmul, // 106 Single float multiply j_dmul, // 107 Double Float multiply j_idiv, // 108 Integer divide j_ldiv, // 109 Long divide j_fdiv, // 110 Single float divide j_ddiv, // 111 Double Float divide j_irem, // 112 Integer reminder j_lrem, // 113 Long reminder j_frem, // 114 Single float reminder j_drem, // 115 Double Float reminder j_ineg, // 116 Integer negate j_lneg, // 117 Long negate j_fneg, // 118 Single float negate j_dneg, // 119 Double Float negate j_ishl, // 120 Integer shift left j_lshl, // 121 Long shift left j_ishr, // 122 Integer logical shift right j_lshr, // 123 Long logical shift right j_iushr, // 124 Integer arithmetic shift right j_lushr, // 125 Long arithmeticshift right j_iand, // 126 Integer boolean AND j_land, // 127 Long boolean AND j_ior, // 128 Integer boolean OR j_lor, // 129 Long boolean OR j_ixor, // 130 Integer boolean XOR j_lxor, // 131 Long boolean XOR j_iinc, // 132 Add 8-bit signed const to local variable j_i2l, // 133 Integer to Long conversion j_i2f, // 134 Integer to single float conversion j_i2d, // 135 Integer to double float conversion j_l2i, // 136 Long to Integer conversion j_l2f, // 137 Long to single float conversion j_l2d, // 138 Long to double float conversion j_f2i, // 139 Single float to Integer conversion j_f2l, // 140 Single float to Long conversion j_f2d, // 141 Single float to double float conversion j_d2i, // 142 Double float to Integer conversion j_d2l, // 143 Double float to Long conversion j_d2f, // 144 Double float to double float conversion j_i2b, // 145 Integer to signed byte conversion j_i2c, // 146 Integer to unsigned short conversion j_i2s, // 147 Integer to signed short conversion j_lcmp, // 148 Long compare j_fcmpl, // 149 Single float compare (-1 on NaN) j_fcmpg, // 150 Single float compare (1 on NaN) j_dcmpl, // 151 Double float compare (-1 on NaN) j_dcmpg, // 152 Double float compare (1 on NaN) j_ifeq, // 153 Branch if equal to 0 j_ifne, // 154 Branch if not equal to 0 j_iflt, // 155 Branch if less then 0 j_ifge, // 156 Branch if greater than or equal to 0 j_ifgt, // 157 Branch if greater than 0 j_ifle, // 158 Branch if less than or equal to 0 j_if_icmpeq, // 159 Branch if integers equal j_if_icmpne, // 160 Branch if integers not equal j_if_icmplt, // 161 Branch if integers less than j_if_icmpge, // 162 Branch if integers grater than or equal to j_if_icmpgt, // 163 Branch if integers grater than j_if_icmple, // 164 Branch if integers less than or equal to j_if_acmpeq, // 165 Branch if object references are equal j_if_acmpne, // 166 Branch if object references not equal j_goto, // 167 Branch always j_jsr, // 168 Jump subroutine j_ret, // 169 Return from subroutine j_tableswitch, // 170 Access jump table by index and jump j_lookupswitch, // 171 Access jump table by key match and jump j_ireturn, // 172 Return integer from function j_lreturn, // 173 Return long from function j_freturn, // 174 Return single floatr from function j_dreturn, // 175 Return double float from function j_areturn, // 176 Return object reference from function j_return, // 177 Return (void) from procedure j_getstatic, // 178 Set static field from class j_putstatic, // 179 Set static field in class j_getfield, // 180 Fetch field from object j_putfield, // 181 Set field in object j_invokevirtual, // 182 invoke instance method j_invokespecial, // 183 invoke instance method (superclass/init/...) j_invokestatic, // 184 invoke a class (static) method j_invokeinterface,// 185 invoke interface method j_invokedynamic, // 186 invoke instance method (select by paraneter) j_new, // 187 Create new object j_newarray, // 188 Allocate new array j_anewarray, // 189 Allocate new array of refernces to object j_arraylength, // 190 Get length of array j_athrow, // 191 Throw exception or error j_checkcast, // 192 Make sure object is of given type j_instanceof, // 193 Determine if an object is of given type j_monitorenter, // 194 Enter monitored region of code j_monitorexit, // 195 Exit monitored region of code j_wide, // 196 wide (prefix of command) j_multianewarray, // 197 Allocate new multi-dimensional array j_ifnull, // 198 Branch if NULL-ptr j_ifnonnull, // 199 Branch if not NULL-ptr j_goto_w, // 200 Branch always (wide index) j_jsr_w, // 201 Jump subroutine (wide index) j_breakpoint, // 202 Stop and pass control to breakpoint handler // j_lastnorm, j_a_invokesuper = j_lastnorm, j_a_invokevirtualobject, j_a_invokeignored, // bottom of table ! (emu) j_a_software, j_a_hardware, // j_last }; enum name_quick { j_ldc_quick = j_lastnorm, // 203 (18) j_ldcw_quick, // 204 (19) j_ldc2w_quick, // 205 (20) j_getfield_quick, // 206 (180) j_putfield_quick, // 207 (181) j_getfield2_quick, // 208 j_putfield2_quick, // 209 j_getstatic_quick, // 210 (178) j_putstatic_quick, // 211 (179) j_getstatic2_quick, // 212 j_putstatic2_quick, // 213 j_invokevirtual_quick, // 214 (182) j_invokenonvirtual_quick, // 215 (183) j_invokesuper_quick, // 216 j_invokestatic_quick, // 217 (184) j_invokeinterface_quick, // 218 (185) j_invokevirtualobject_quick, // 219 j_invokeignored_quick, // 220 j_new_quick, // 221 (187) j_anewarray_quick, // 222 (189) j_multianewarray_quick, // 223 (197) j_checkcast_quick, // 224 (192) j_instanceof_quick, // 225 (193) j_invokevirtual_quick_w, // 226 j_getfield_quick_w, // 227 j_putfield_quick_w, // 228 j_quick_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { ARM_null = 0, // Unknown Operation ARM_ret, // Return from Subroutine ARM_nop, // No Operation ARM_b, // Branch ARM_bl, // Branch with Link ARM_asr, // Arithmetic Shift Right ARM_lsl, // Logical Shift Left ARM_lsr, // Logical Shift Right ARM_ror, // Rotate Right ARM_neg, // Negate ARM_and, // 0 Rd = Op1 & Op2 ARM_eor, // 1 Rd = Op1 ^ Op2 ARM_sub, // 2 Rd = Op1 - Op2 ARM_rsb, // 3 Rd = Op2 - Op1 ARM_add, // 4 Rd = Op1 + Op2 ARM_adc, // 5 Rd = Op1 + Op2 + C ARM_sbc, // 6 Rd = Op1 - Op2 + C - 1 ARM_rsc, // 7 Rd = Op2 - Op1 + C - 1 ARM_tst, // 8 Set cond. codes on Op1 & Op2 ARM_teq, // 9 Set cond. codes on Op1 ^ Op2 ARM_cmp, // A Set cond. codes on Op1 - Op2 ARM_cmn, // B Set cond. codes on Op1 + Op2 ARM_orr, // C Rd = Op1 | Op2 ARM_mov, // D Rd = Op2 ARM_bic, // E Rd = Op1 & ~Op2 ARM_mvn, // F Rd = ~Op2 ARM_mrs, // Transfer PSR to Register ARM_msr, // Transfer Register to PSR ARM_mul, // Multiply ARM_mla, // Multiply-Accumulate ARM_ldr, // Load from Memory ARM_ldrpc, // Indirect Jump ARM_str, // Store to Memory ARM_ldm, // Load Block from Memory ARM_stm, // Store Block to Memory ARM_swp, // Single Data Swap ARM_svc, // Supervisor call // Version 4 ARM_smull, // Signed Multiply long ARM_smlal, // Signed Multiply-Accumulate long ARM_umull, // Unsigned Multiply long ARM_umlal, // Unsigned Multiply-Accumulate long ARM_bx, // Branch to/from Thumb mode ARM_pop, // Pop registers ARM_push, // Push registers ARM_adr, // Load address // Version 5 ARM_bkpt, // Breakpoint ARM_blx1, // Branch with Link and Exchange (immediate address) ARM_blx2, // Branch with Link and Exchange (register indirect) ARM_clz, // Count Leading Zeros // Version 5E ARM_ldrd, // Load pair of registers ARM_pld, // Prepare to load data ARM_qadd, // Saturated addition ARM_qdadd, // Saturated addition with doubling ARM_qdsub, // Saturated subtraction with doubling ARM_qsub, // Saturated subtraction ARM_smlabb, // Signed multiply-accumulate (bottom*bottom) ARM_smlatb, // Signed multiply-accumulate (top*bottom) ARM_smlabt, // Signed multiply-accumulate (bottom*top) ARM_smlatt, // Signed multiply-accumulate (top*top) ARM_smlalbb, // Long signed multiply-accumulate (bottom*bottom) ARM_smlaltb, // Long signed multiply-accumulate (top*bottom) ARM_smlalbt, // Long signed multiply-accumulate (bottom*top) ARM_smlaltt, // Long signed multiply-accumulate (top*top) ARM_smlawb, // Wide signed multiply-accumulate (bottom) ARM_smulwb, // Wide signed multiply (bottom) ARM_smlawt, // Wide signed multiply-accumulate (top) ARM_smulwt, // Wide signed multiply (top) ARM_smulbb, // Signed multiply (bottom*bottom) ARM_smultb, // Signed multiply (top*bottom) ARM_smulbt, // Signed multiply (bottom*top) ARM_smultt, // Signed multiply (top*top) ARM_strd, // Store pair of registers // Intel xScale coprocessor instructions xScale_mia, // Multiply-Internal Accumulate xScale_miaph, // Multiply-Internal Accumulate Packed HalfWords xScale_miabb, // Multiply-Internal Accumulate Bottom-Bottom Halves xScale_miabt, // Multiply-Internal Accumulate Bottom-Top Halves xScale_miatb, // Multiply-Internal Accumulate Top-Bottom Halves xScale_miatt, // Multiply-Internal Accumulate Top-Top Halves xScale_mar, // Move To Internal Accumulator xScale_mra, // Move From Internal Accumulator // Macro instructions ARM_movl, // Move immediate to register ARM_adrl, // Load address ARM_swbkpt, // WinCE Debugger break // Coprocessor instructions ARM_cdp, // Coprocessor Data Processing ARM_cdp2, // Coprocessor Data Processing ARM_ldc, // Load Coprocessor Register ARM_ldc2, // Load Coprocessor Register ARM_stc, // Store Coprocessor Register ARM_stc2, // Store Coprocessor Register ARM_mrc, // Move from Coprocessor to ARM Register ARM_mrc2, // Move from Coprocessor to ARM Register ARM_mcr, // Move from ARM to Coprocessor Register ARM_mcr2, // Move from ARM to Coprocessor Register ARM_mcrr, // Copy pair of registers to coprocessor (5E) ARM_mrrc, // Copy pair of registers from coprocessor (5E) // VFP instructions ARM_fabsd, // Floating point Absolute Value, Double precision ARM_fabss, // Floating point Absolute Value, Single precision ARM_faddd, // Floating point Addition, Double precision ARM_fadds, // Floating point Addition, Single precision ARM_fcmpd, // Floating point Compare, Double precision ARM_fcmps, // Floating point Compare, Single precision ARM_fcmped, // Floating point Compare (NaN Exceptions), Double precision ARM_fcmpes, // Floating point Compare (NaN Exceptions), Single precision ARM_fcmpezd, // Floating point Compare (NaN Exceptions) with Zero, Double precision ARM_fcmpezs, // Floating point Compare (NaN Exceptions) with Zero, Single precision ARM_fcmpzd, // Floating point Compare with Zero, Double precision ARM_fcmpzs, // Floating point Compare with Zero, Single precision ARM_fcpyd, // Floating point Copy, Double precision ARM_fcpys, // Floating point Copy, Single precision ARM_fcvtsd, // Floating point Convert to Single precision from Double precision ARM_fcvtds, // Floating point Convert to Double precision from Single precision ARM_fdivd, // Floating point Divide, Double precision ARM_fdivs, // Floating point Divide, Single precision ARM_fldd, // Floating point Load, Double precision ARM_flds, // Floating point Load, Single precision ARM_fldmd, // Floating point Load Multiple, Double precision ARM_fldms, // Floating point Load Multiple, Single precision ARM_fldmx, // Floating point Load Multiple, Unknown precision ARM_fmacd, // Floating point Multiply and Accumulate, Double precision ARM_fmacs, // Floating point Multiply and Accumulate, Single precision ARM_fmscd, // Floating point Multiply and Subtract, Double precision ARM_fmscs, // Floating point Multiply and Subtract, Single precision ARM_fmstat, // Floating point Move Status ARM_fmuld, // Floating point Multiply, Double precision ARM_fmuls, // Floating point Multiply, Single precision ARM_fnegd, // Floating point Negate, Double precision ARM_fnegs, // Floating point Negate, Single precision ARM_fnmacd, // Floating point Negated Multiply and Accumulate, Double precision ARM_fnmacs, // Floating point Negated Multiply and Accumulate, Single precision ARM_fnmscd, // Floating point Negated Multiply and Subtract, Double precision ARM_fnmscs, // Floating point Negated Multiply and Subtract, Single precision ARM_fnmuld, // Floating point Negated Multiply, Double precision ARM_fnmuls, // Floating point Negated Multiply, Single precision ARM_fsitod, // Floating point Convert Signed Integer to Double precision ARM_fsitos, // Floating point Convert Signed Integer to Single precision ARM_fsqrtd, // Floating point Square Root, Double precision ARM_fsqrts, // Floating point Square Root, Single precision ARM_fstd, // Floating point Store, Double precision ARM_fsts, // Floating point Store, Single precision ARM_fstmd, // Floating point Store Multiple, Double precision ARM_fstms, // Floating point Store Multiple, Single precision ARM_fstmx, // Floating point Store Multiple, Unknown precision ARM_fsubd, // Floating point Subtract, Double precision ARM_fsubs, // Floating point Subtract, Single precision ARM_ftosid, // Floating point Convert to Signed Integer from Double precision ARM_ftosis, // Floating point Convert to Signed Integer from Single precision ARM_ftosizd, // Floating point Convert to Signed Integer from Double precision, RZ mode ARM_ftosizs, // Floating point Convert to Signed Integer from Single precision, RZ mode ARM_ftouid, // Floating point Convert to Unsigned Integer from Double precision ARM_ftouis, // Floating point Convert to Unsigned Integer from Single precision ARM_ftouizd, // Floating point Convert to Unsigned Integer from Double precision, RZ mode ARM_ftouizs, // Floating point Convert to Unsigned Integer from Single precision, RZ mode ARM_fuitod, // Floating point Convert Unsigned Integer to Double precision ARM_fuitos, // Floating point Convert Unsigned Integer to Single precision ARM_fmdhr, // Floating point Move to Double precision High from Register ARM_fmrdh, // Floating point Move to Register from Double precision High ARM_fmdlr, // Floating point Move to Double precision Low from Register ARM_fmrdl, // Floating point Move to Register from Double precision Low ARM_fmxr, // Floating point Move to System Register from Register ARM_fmrx, // Floating point Move to Register from System Register ARM_fmsr, // Floating point Move to Single precision from Register ARM_fmrs, // Floating point Move to Register from Single precision // VFP ARMv5TE extensions ARM_fmdrr, // Floating point Move to Double precision from two Registers ARM_fmrrd, // Floating point Move to two Registers from Double precision ARM_fmsrr, // Floating point Move to two Single precision from two Registers ARM_fmrrs, // Floating point Move to two Registers from two Single precision // ARM v5J instructions ARM_bxj, // Branch to Jazelle // ARM v6 instructions ARM_mcrr2, // Move to Coprocessor from two ARM Registers ARM_mrrc2, // Move to two ARM Registers from Coprocessor ARM_cps, // Change Processor State ARM_cpsid, // Disable Interrupts ARM_cpsie, // Enable Interrupts ARM_ldrex, // Load Register Exclusive ARM_pkhbt, // Pack halfword bottom + top ARM_pkhtb, // Pack halfword top + bottom ARM_qadd16, // Signed saturating arithmetic hafword-wise addition ARM_qadd8, // Signed saturating arithmetic byte-wise addition ARM_qaddsubx, // Signed saturating arithmetic exchange, add, substract ARM_qsub16, // Signed saturating arithmetic hafword-wise substraction ARM_qsub8, // Signed saturating arithmetic byte-wise substraction ARM_qsubaddx, // Signed saturating arithmetic exchange, substract, add ARM_rev, // Byte Reverse Word ARM_rev16, // Byte Reverse Packed Halfword ARM_revsh, // Byte Reverse Signed Halfword ARM_rfe, // Return from exception ARM_sadd16, // Signed arithmetic modulo hafword-wise addition ARM_sadd8, // Signed arithmetic modulo byte-wise addition ARM_saddsubx, // Signed arithmetic modulo exchange, add, substract ARM_sel, // Select bytes ARM_setend, // Set Byte Endianness ARM_shadd16, // Signed arithmetic hafword-wise addition, halving results ARM_shadd8, // Signed arithmetic byte-wise addition, halving results ARM_shaddsubx, // Signed arithmetic exchange, add, substract, halving results ARM_shsub16, // Signed arithmetic hafword-wise substraction, halving results ARM_shsub8, // Signed arithmetic byte-wise substraction, halving results ARM_shsubaddx, // Signed arithmetic exchange, substract, add, halving results ARM_smlad, // Dual signed multiply, add and accumulate ARM_smladx, // Dual signed multiply, add and accumulate crossed ARM_smuad, // Dual signed multiply and add ARM_smuadx, // Dual signed multiply and add crossed ARM_smlald, // Dual signed multiply, add and accumulate long ARM_smlaldx, // Dual signed multiply, add and accumulate long crossed ARM_smlsd, // Dual signed multiply, substract and accumulate ARM_smlsdx, // Dual signed multiply, substract and accumulate crossed ARM_smusd, // Dual signed multiply and substract ARM_smusdx, // Dual signed multiply and substract crossed ARM_smlsld, // Dual signed multiply, substract and accumulate long ARM_smlsldx, // Dual signed multiply, substract and accumulate long crossed ARM_smmla, // Signed most significant word multiply and accumulate truncated ARM_smmlar, // Signed most significant word multiply and accumulate rounded ARM_smmul, // Signed most significant word multiply truncated ARM_smmulr, // Signed most significant word multiply rounded ARM_smmls, // Signed most significant word multiply and substract truncated ARM_smmlsr, // Signed most significant word multiply and substract rounded ARM_srs, // Store Return State ARM_ssat, // Signed Saturate ARM_ssat16, // Signed saturate two halfwords ARM_ssub16, // Signed arithmetic hafword-wise substraction ARM_ssub8, // Signed arithmetic byte-wise substraction ARM_ssubaddx, // Signed arithmetic exchange, substract, add ARM_strex, // Store Register Exclusive ARM_sxtab, // Signed extend byte to word, add ARM_sxtb, // Signed extend byte to word ARM_sxtab16, // Signed extend two bytes to halfwords, add ARM_sxtb16, // Signed extend two bytes to halfwords ARM_sxtah, // Signed extend halfword to word, add ARM_sxth, // Signed extend halfword to word ARM_uadd16, // Unsigned arithmetic modulo hafword-wise addition ARM_uadd8, // Unsigned arithmetic modulo byte-wise addition ARM_uaddsubx, // Unsigned arithmetic modulo exchange, add, substract ARM_uhadd16, // Unsigned arithmetic hafword-wise addition, halving results ARM_uhadd8, // Unsigned arithmetic byte-wise addition, halving results ARM_uhaddsubx, // Unsigned arithmetic exchange, add, substract, halving results ARM_uhsub16, // Unsigned arithmetic hafword-wise substraction, halving results ARM_uhsub8, // Unsigned arithmetic byte-wise substraction, halving results ARM_uhsubaddx, // Unsigned arithmetic exchange, substract, add, halving results ARM_umaal, // Multiply unsigned double accumulate long ARM_uqadd16, // Unsigned saturating arithmetic hafword-wise addition ARM_uqadd8, // Unsigned saturating arithmetic byte-wise addition ARM_uqaddsubx, // Unsigned saturating arithmetic exchange, add, substract ARM_uqsub16, // Unsigned saturating arithmetic hafword-wise substraction ARM_uqsub8, // Unsigned saturating arithmetic byte-wise substraction ARM_uqsubaddx, // Unsigned saturating arithmetic exchange, substract, add ARM_usada8, // Unsigned sum of absolute differences and accumulate ARM_usad8, // Unsigned sum of absolute differences ARM_usat, // Unsigned saturate word ARM_usat16, // Unsigned saturate two halfwords ARM_usub16, // Unsigned arithmetic hafword-wise substraction ARM_usub8, // Unsigned arithmetic byte-wise substraction ARM_usubaddx, // Unsigned arithmetic exchange, substract, add ARM_uxtab, // Unsigned extend byte to word, add ARM_uxtb, // Unsigned extend byte to word ARM_uxtab16, // Unsigned extend two bytes to halfwords, add ARM_uxtb16, // Unsigned extend two bytes to halfwords ARM_uxtah, // Unsigned extend halfword to word, add ARM_uxth, // Unsigned extend halfword to word // ARM v6zk instructions ARM_clrex, // Clear Exclusive ARM_ldrexb, // Load Byte Exclusive ARM_ldrexd, // Load DoubleWord Exclusive ARM_ldrexh, // Load Halfword Exclusive ARM_strexb, // Store Byte Exclusive ARM_strexd, // Store DoubleWord Exclusive ARM_strexh, // Store Halfword Exclusive ARM_yield, // Yield (hint) ARM_sev, // Send Event (hint) ARM_wfe, // Wait For Event (hint) ARM_wfi, // Wait For Interrupt (hint) ARM_smc, // Secure Monitor Call // ARM Thumb32 instructions ARM_orn, // Rd = Op1 | ~Op2 ARM_movt, // Move Top ARM_sbfx, // Signed Bit Field Extract ARM_ubfx, // Unsigned Bit Field Extract ARM_bfi, // Bit Field Insert ARM_bfc, // Bit Field Clear ARM_tbb, // Table Branch Byte ARM_tbh, // Table Branch Halfword ARM_pli, // Prepare to load code ARM_rbit, // Reverse Bits ARM_it, // If Then ARM_mls, // Multiply and Subtract ARM_sdiv, // Signed Divide ARM_udiv, // Unsigned Divide ARM_cbz, // Compare and Branch on Zero ARM_cbnz, // Compare and Branch on Non-Zero ARM_dsb, // Data Synchronization Barrier ARM_dmb, // Data Memory Barrier ARM_isb, // Instruction Synchronization Barrier ARM_dbg, // Debug Hint ARM_und, // Architecturally undefined instruction // missing instructions (not yet decoded) ARM_rrx, // Rotate Right with Extend ARM_enterx, // Enter ThumbEE state ARM_leavex, // Leave ThumbEE state ARM_chka, // Check Array ARM_hb, // Handler Branch ARM_hbl, // Handler Branch with Link ARM_hblp, // Handler Branch with Link and Parameter ARM_hbp, // Handler Branch with Parameter // NEON (Advanced SIMD) and extra VFP instructions ARM_vaba, // Vector Absolute Difference and Accumulate ARM_vabal, // Vector Absolute Difference and Accumulate Long ARM_vabd, // Vector Absolute Difference ARM_vabdl, // Vector Absolute Difference Long ARM_vabs, // Vector Absolute ARM_vacge, // Vector Absolute Compare Greater Than or Equal ARM_vacgt, // Vector Absolute Compare Greater Than ARM_vacle, // Vector Absolute Compare Less Than or Equal ARM_vaclt, // Vector Absolute Compare Less Than ARM_vadd, // Vector Add ARM_vaddhn, // Vector Add and Narrow, returning High Half ARM_vaddl, // Vector Add Long ARM_vaddw, // Vector Add Wide ARM_vand, // Vector Bitwise AND ARM_vbic, // Vector Bitwise Bit Clear ARM_vbif, // Vector Bitwise Insert if False ARM_vbit, // Vector Bitwise Insert if True ARM_vbsl, // Vector Bitwise Select ARM_vceq, // Vector Compare Equal ARM_vcge, // Vector Compare Greater Than or Equal ARM_vcgt, // Vector Compare Greater Than ARM_vcle, // Vector Compare Less Than or Equal ARM_vcls, // Vector Count Leading Sign Bits ARM_vclt, // Vector Compare Less Than ARM_vclz, // Vector Count Leading Zeros ARM_vcmp, // Vector Compare ARM_vcmpe, // Vector Compare (Quiet NaNs trigger Exception) ARM_vcnt, // Vector Count Number of Bits ARM_vcvt, // Vector Convert ARM_vcvtr, // Vector Convert Rounding ARM_vcvtb, // Vector Convert Half-Precision Bottom ARM_vcvtt, // Vector Convert Half-Precision Top ARM_vdiv, // Vector Divide ARM_vdup, // Vector Duplicate ARM_veor, // Vector Bitwise Exclusive OR ARM_vext, // Vector Extract ARM_vfma, // Vector Fused Multiply Accumulate ARM_vfms, // Vector Fused Multiply Substract ARM_vfnma, // Vector Fused Negated Multiply Accumulate ARM_vfnms, // Vector Fused Negated Multiply Substract ARM_vhadd, // Vector Halving Add ARM_vhsub, // Vector Halving Sub ARM_vld1, // Vector Load Single Element ARM_vld2, // Vector Load Two-Element Structures ARM_vld3, // Vector Load Three-Element Structures ARM_vld4, // Vector Load Four-Element Structures ARM_vldm, // Vector Load Multiple ARM_vldr, // Vector Load Register ARM_vmax, // Vector Maximum ARM_vmin, // Vector Minimum ARM_vmla, // Vector Multiply Accumulate ARM_vmlal, // Vector Multiply Accumulate Long ARM_vmls, // Vector Multiply Subtract ARM_vmlsl, // Vector Multiply Subtract Long ARM_vmov, // Vector Move ARM_vmovl, // Vector Move Long ARM_vmovn, // Vector Move and Narrow ARM_vmrs, // Move FPSCR to ARM Register ARM_vmsr, // Move to FPSCR from ARM Register ARM_vmul, // Vector Multiply ARM_vmull, // Vector Multiply Long ARM_vmvn, // Vector Bitwise NOT ARM_vneg, // Vector Negate ARM_vnmla, // Vector Multiply Add Negated ARM_vnmls, // Vector Multiply Substract Negated ARM_vnmul, // Vector Multiply Negated ARM_vorn, // Vector Bitwise OR NOT ARM_vorr, // Vector Bitwise OR ARM_vpadal, // Vector Pairwise Add and Accumulate Long ARM_vpadd, // Vector Pairwise Add ARM_vpaddl, // Vector Pairwise Add Long ARM_vpmax, // Vector Pairwise Maximum ARM_vpmin, // Vector Pairwise Minimum ARM_vpop, // Vector Pop ARM_vpush, // Vector Push ARM_vqabs, // Vector Saturating Absolute ARM_vqadd, // Vector Saturating Add ARM_vqdmlal, // Vector Saturating Doubling Multiply Accumulate Long ARM_vqdmlsl, // Vector Saturating Doubling Multiply Subtract Long ARM_vqdmulh, // Vector Saturating Doubling Multiply Returning High Half ARM_vqdmull, // Vector Saturating Doubling Multiply Long ARM_vqmovn, // Vector Saturating Move and Narrow ARM_vqmovun, // Vector Saturating Move and Narrow, Unsigned result ARM_vqneg, // Vector Saturating Negate ARM_vqrdmulh, // Vector Saturating Rounding Doubling Multiply Returning High Half ARM_vqrshl, // Vector Saturating Rounding Shift Left ARM_vqrshrn, // Vector Saturating Rounding Shift Right, Narrow ARM_vqrshrun, // Vector Saturating Rounding Shift Right, Narrow, Unsigned result ARM_vqshl, // Vector Saturating Shift Left ARM_vqshlu, // Vector Saturating Shift Left, Unsigned result ARM_vqshrn, // Vector Saturating Shift Right, Narrow ARM_vqshrun, // Vector Saturating Shift Right, Narrow, Unsigned result ARM_vqsub, // Vector Saturating Subtract ARM_vraddhn, // Vector Rounding Add and Narrow, returning High Half ARM_vrecpe, // Vector Reciprocal Estimate ARM_vrecps, // Vector Reciprocal Step ARM_vrev16, // Vector Reverse in halfwords ARM_vrev32, // Vector Reverse in words ARM_vrev64, // Vector Reverse in doublewords ARM_vrhadd, // Vector Rounding Halving Add ARM_vrshl, // Vector Rounding Shift Left ARM_vrshr, // Vector Rounding Shift Right ARM_vrshrn, // Vector Rounding Shift Right and Narrow ARM_vrsqrte, // Vector Reciprocal Square Root Estimate ARM_vrsqrts, // Vector Reciprocal Square Root Step ARM_vrsra, // Vector Rounding Shift Right and Accumulate ARM_vrsubhn, // Vector Rounding Subtract and Narrow, returning High Half ARM_vshl, // Vector Shift Left ARM_vshll, // Vector Shift Left Long ARM_vshr, // Vector Shift Right ARM_vshrn, // Vector Shift Right Narrow ARM_vsli, // Vector Shift Left and Insert ARM_vsqrt, // Vector Square Root ARM_vsra, // Vector Shift Right and Accumulate ARM_vsri, // Vector Shift Right and Insert ARM_vst1, // Vector Store Single Element ARM_vst2, // Vector Store Two-Element Structures ARM_vst3, // Vector Store Three-Element Structures ARM_vst4, // Vector Store Four-Element Structures ARM_vstm, // Vector Store Multiple ARM_vstr, // Vector Store Register ARM_vsub, // Vector Subtract ARM_vsubhn, // Vector Subtract and Narrow, returning High Half ARM_vsubl, // Vector Subtract Long ARM_vsubw, // Vector Subtract Wide ARM_vswp, // Vector Swap ARM_vtbl, // Vector Table Lookup ARM_vtbx, // Vector Table Extension ARM_vtrn, // Vector Transpose ARM_vtst, // Vector Test Bits ARM_vuzp, // Vector Unzip ARM_vzip, // Vector Zip // ARMv7 Hypervisor extensions ARM_eret, // Exception Return ARM_hvc, // Hypervisor Call // new ARMv8 instructions for A32 and T32 mode ARM_lda, // Load-Acquire Word/Byte/Halfword ARM_stl, // Store-Release Word/Byte/Halfword ARM_ldaex, // Load-Acquire Exclusive Word/Byte/Halfword ARM_stlex, // Store-Release Exclusive Word/Byte/Halfword ARM_vsel, // Floating-point Conditional Select ARM_vmaxnm, // Vector Maximum Numeric ARM_vminnm, // Vector Minimum Numeric ARM_vcvta, // Vector Convert Round to Nearest with Ties to Away ARM_vcvtn, // Vector Convert Round to Nearest with Ties to Even ARM_vcvtp, // Vector Convert Round towards +Infinity ARM_vcvtm, // Vector Convert Round towards -Infinity ARM_vrintx, // Vector Round to Integral, FPSCR rounding mode and signaling inexactness ARM_vrintr, // Vector Round to Integral, FPSCR rounding mode ARM_vrintz, // Vector Round to Integral, Round toward Zero ARM_vrinta, // Vector Round to Integral, Round to Nearest with Ties to Away ARM_vrintn, // Vector Round to Integral, Round to Nearest with Ties to Even ARM_vrintp, // Vector Round to Integral, Round towards +Infinity ARM_vrintm, // Vector Round to Integral, Round towards -Infinity ARM_aesd, // AES single round decryption ARM_aese, // AES single round encryption ARM_aesimc, // AES inverse mix columns ARM_aesmc, // AES mix columns ARM_sha1c, // SHA1 hash update accelerator, choose ARM_sha1m, // SHA1 hash update accelerator, majority ARM_sha1p, // SHA1 hash update accelerator, parity ARM_sha1h, // SHA1 hash update accelerator, rotate left by 30 ARM_sha1su0, // SHA1 schedule update accelerator, first part ARM_sha1su1, // SHA1 schedule update accelerator, second part ARM_sha256h, // SHA256 hash update accelerator ARM_sha256h2, // SHA256 hash update accelerator upper part ARM_sha256su0, // SHA256 schedule update accelerator, first part ARM_sha256su1, // SHA256 schedule update accelerator, second part ARM_dcps1, // Debug Change Processor State to EL1 ARM_dcps2, // Debug Change Processor State to EL2 ARM_dcps3, // Debug Change Processor State to EL3 ARM_hlt, // Halting mode software breakpoint ARM_sevl, // Send Event Locally // ARMv8 AArch64 new instructions ARM_tbz, // Test and Branch Zero ARM_tbnz, // Test and Branch Non-Zero ARM_br, // Branch To Register ARM_blr, // Branch and Link Register ARM_ldur, // Load Single Register (unscaled offset) ARM_stur, // Store Single Register (unscaled offset) ARM_ldp, // Load Pair ARM_stp, // Store Pair ARM_ldnp, // Load Non-temporal Pair ARM_stnp, // Store Non-temporal Pair ARM_ldtr, // Load Unprivileged Register ARM_sttr, // Store Unprivileged Register ARM_ldxr, // Load Exclusive Register ARM_stxr, // Store Exclusive Register ARM_ldxp, // Load Exclusive Pair ARM_stxp, // Store Exclusive Pair ARM_ldar, // Load-Acquire Register ARM_stlr, // Store-Release Register ARM_ldaxr, // Load-Acquire Exclusive Register ARM_stlxr, // Store-Release Exclusive Register ARM_ldaxp, // Load-Acquire Exclusive Pair ARM_stlxp, // Store Exclusive Pair ARM_prfm, // Prefetch Memory ARM_prfum, // Prefetch Memory (unscaled offset) ARM_movi, // Move Immediate ARM_mvni, // Move Inverted Immediate ARM_movz, // Move with Zero ARM_movn, // Move with Not ARM_movk, // Move with Keep ARM_adrp, // Address of Page ARM_bfm, // Bitfield Move ARM_sbfm, // Signed Bitfield Move ARM_ubfm, // Unsigned Bitfield Move // ARM_bfi, // Bitfield Insert ARM_bfxil, // Bitfield Extract and Insert Low ARM_sbfiz, // Signed Bitfield Insert in Zero // ARM_sbfx, // Signed Bitfield Extract ARM_ubfiz, // Signed Bitfield Insert in Zero // ARM_ubfx, // Unsigned Bitfield Extract ARM_extr, // Extract ARM_sxtw, // Signed Extend Word ARM_uxtw, // Unsigned Extend Word (non-existing insn) ARM_eon, // Bitwise exclusive OR NOT ARM_not, // Bitwise NOT ARM_cls, // Count Leading Sign Bits ARM_rev32, // Reverse Bytes in Words ARM_csel, // Conditional Select ARM_csinc, // Conditional Select Increment ARM_csinv, // Conditional Select Invert ARM_csneg, // Conditional Select Negate ARM_cset, // Conditional Set ARM_csetm, // Conditional Set Mask ARM_cinc, // Conditional Increment ARM_cinv, // Conditional Invert ARM_cneg, // Conditional Negate ARM_ngc, // Negate with Carry ARM_ccmn, // Conditional Compare Negative ARM_ccmp, // Conditional Compare ARM_madd, // Multiply-Add ARM_msub, // Multiply-Subtract ARM_mneg, // Multiply-Negate ARM_smaddl, // Signed Multiply-Add Long ARM_smsubl, // Signed Multiply-Subtract Long ARM_smnegl, // Signed Multiply-Negate Long ARM_smulh, // Signed Multiply High ARM_umaddl, // Unsigned Multiply-Add Long ARM_umsubl, // Unsigned Multiply-Subtract Long ARM_umnegl, // Unsigned Multiply-Negate Long ARM_umulh, // Unsigned Multiply High ARM_drps, // Debug Restore Processor State ARM_sys, // System Maintenance Operation ARM_sysl, // System Maintenance Operation With Result ARM_ic, // Instruction Cache Maintenance ARM_dc, // Data Cache Maintenance ARM_at, // Address Translation ARM_tlbi, // TLB Invalidation ARM_hint, // Hint instruction ARM_brk, // Monitor debug-mode breakpoint // AArch64 Advanced SIMD ARM_uaba, // Unsigned Integer Absolute Difference and Accumulate ARM_saba, // Signed Integer Absolute Difference and Accumulate ARM_uabal, // Unsigned Integer Absolute Difference and Accumulate Long ARM_uabal2, // Unsigned Integer Absolute Difference and Accumulate Long (Second Part) ARM_sabal, // Signed Integer Absolute Difference and Accumulate Long ARM_sabal2, // Signed Integer Absolute Difference and Accumulate Long (Second Part) ARM_uabd, // Unsigned Integer Absolute Difference ARM_sabd, // Signed Integer Absolute Difference ARM_fabd, // Floating-point Absolute Difference ARM_uabdl, // Unsigned Integer Absolute Difference Long ARM_uabdl2, // Unsigned Integer Absolute Difference Long (Second Part) ARM_sabdl, // Signed Integer Absolute Difference Long ARM_sabdl2, // Signed Integer Absolute Difference Long (Second Part) ARM_abs, // Integer Absolute Value ARM_fabs, // Floating-point Absolute Value ARM_facge, // Floating-point Absolute Compare Greater Than or Equal ARM_facgt, // Floating-point Absolute Compare Greater Than ARM_facle, // Floating-point Absolute Compare Less Than or Equal ARM_faclt, // Floating-point Absolute Compare Less Than ARM_fadd, // Floating-point Add ARM_addhn, // Integer Vector Add and Narrow High Half ARM_addhn2, // Integer Vector Add and Narrow High Half (second part) ARM_uaddl, // Unsigned Integer Add Long ARM_uaddl2, // Unsigned Integer Add Long (second part) ARM_saddl, // Signed Integer Add Long ARM_saddl2, // Signed Integer Add Long (second part) ARM_uaddw, // Unsigned Integer Add Wide ARM_uaddw2, // Unsigned Integer Add Wide (second part) ARM_saddw, // Signed Integer Add Wide ARM_saddw2, // Signed Integer Add Wide (second part) ARM_bif, // Bitwise Vector Insert if False ARM_bit, // Bitwise Vector Insert if True ARM_bsl, // Bitwise Vector Select ARM_cmeq, // Ingeger Vector Compare Equal ARM_fcmeq, // Floating-point Vector Compare Equal ARM_cmhs, // Unsigned Compare Greater Than or Equal ARM_cmge, // Signed Compare Greater Than or Equal ARM_fcmge, // Floating-point Compare Greater Than or Equal ARM_cmhi, // Unsigned Compare Greater Than ARM_cmgt, // Signed Compare Greater Than ARM_fcmgt, // Floating-point Compare Greater Than ARM_cmls, // Unsigned Compare Less Than or Equal ARM_cmle, // Signed Compare Less Than or Equal ARM_fcmle, // Floating-point Compare Less Than or Equal ARM_cmlo, // Unsigned Compare Less Than ARM_cmlt, // Signed Compare Less Than ARM_fcmlt, // Floating-point Compare Less Than ARM_fcmp, // Floating-point Compare ARM_fcmpe, // Floating-point Signaling Compare ARM_fccmp, // Floating-point Conditional Quiet Compare ARM_fccmpe, // Floating-point Conditional Signaling Compare ARM_fcsel, // Floating-point Conditional Select ARM_cnt, // Vector Count Non-zero Bits ARM_fcvt, // Floating-point convert precision (scalar) ARM_fcvtzs, // Convert Floating-point to Signed Integer (Round to Zero) ARM_fcvtas, // Convert Floating-point to Signed Integer (Round to Nearest, Ties to Away) ARM_fcvtns, // Convert Floating-point to Signed Integer (Round to Nearest, Ties to Even) ARM_fcvtps, // Convert Floating-point to Signed Integer (Round towards +Infinity) ARM_fcvtms, // Convert Floating-point to Signed Integer (Round towards -Infinity) ARM_fcvtzu, // Convert Floating-point to Unsigned Integer (Round to Zero) ARM_fcvtau, // Convert Floating-point to Unsigned Integer (Round to Nearest, Ties to Away) ARM_fcvtnu, // Convert Floating-point to Unsigned Integer (Round to Nearest, Ties to Even) ARM_fcvtpu, // Convert Floating-point to Unsigned Integer (Round towards +Infinity) ARM_fcvtmu, // Convert Floating-point to Unsigned Integer (Round towards -Infinity) ARM_ucvtf, // Convert Unsigned Integer to Floating-point ARM_scvtf, // Convert Signed Integer to Floating-point ARM_fcvtn, // Floating-point Convert Precision, Narrow ARM_fcvtn2, // Floating-point Convert Precision, Narrow (second part) ARM_fcvtl, // Floating-point Convert Precision, Long ARM_fcvtl2, // Floating-point Convert Precision, Long (second part) ARM_fcvtxn, // Floating-point Convert Precision, Narrow (Round to Odd) ARM_fcvtxn2, // Floating-point Convert Precision, Narrow (Round to Odd) (second part) ARM_frinta, // Floating-point Round to Integral (Round to Nearest, Ties to Away) ARM_frinti, // Floating-point Round to Integral (using FPCR rounding mode) ARM_frintm, // Floating-point Round to Integral (Round towards -Infinity) ARM_frintn, // Floating-point Round to Integral (Round to Nearest, Ties to Even) ARM_frintp, // Floating-point Round to Integral (Round towards +Infinity) ARM_frintx, // Floating-point Round to Integral (using FPCR rounding mode, with exactness test) ARM_frintz, // Floating-point Round to Integral (Round towards Zero) ARM_fmadd, // Floating-point scalar fused multiply-add ARM_fmsub, // Floating-point scalar fused multiply-subtract ARM_fnmadd, // Floating-point scalar negated fused multiply-add ARM_fnmsub, // Floating-point scalar negated fused multiply-subtract ARM_fdiv, // Floating-point Divide ARM_dup, // Duplicate Single Element to All Elements ARM_ins, // Insert Single Element in Another Element ARM_ext, // Bitwise Extract ARM_uhadd, // Unsigned Integer Halving Add ARM_shadd, // Signed Integer Halving Add ARM_uhsub, // Unsigned Integer Halving Subtract ARM_shsub, // Signed Integer Halving Subtract ARM_ld1, // Vector Load Single Element ARM_ld2, // Vector Load Two-Element Structures ARM_ld3, // Vector Load Three-Element Structures ARM_ld4, // Vector Load Four-Element Structures ARM_ld1r, // Vector Load Single Element and Replicate ARM_ld2r, // Vector Load Two-Element Structures and Replicate ARM_ld3r, // Vector Load Three-Element Structures and Replicate ARM_ld4r, // Vector Load Four-Element Structures and Replicate ARM_umax, // Unsigned Integer Maximum ARM_smax, // Signed Integer Maximum ARM_fmax, // Floating-point Maximum ARM_fmaxnm, // Floating-point maxNum() ARM_umin, // Unsigned Integer Minimum ARM_smin, // Signed Integer Minimum ARM_fmin, // Floating-point Minimum ARM_fminnm, // Floating-point minNum() ARM_fmla, // Fused Multiply-Add ARM_umlal2, // Unsigned Integer Multiply-Add Long (second part) ARM_smlal2, // Signed Integer Multiply-Add Long (second part) ARM_fmls, // Fused Multiply-Subtract ARM_umlsl, // Unsigned Integer Multiply-Subtract Long ARM_umlsl2, // Unsigned Integer Multiply-Subtract Long (second part) ARM_smlsl, // Signed Integer Multiply-Subtract Long ARM_smlsl2, // Signed Integer Multiply-Subtract Long (second part) ARM_umov, // Unsigned Integer Move ARM_smov, // Signed Integer Move ARM_fmov, // Floating-point Move ARM_uxtl, // Unsigned Integer Vector Lengthen ARM_uxtl2, // Unsigned Integer Vector Lengthen (second part) ARM_sxtl, // Signed Integer Vector Lengthen ARM_sxtl2, // Signed Integer Vector Lengthen (second part) ARM_xtn, // Integer Vector Narrow ARM_xtn2, // Integer Vector Narrow (second part) ARM_fmul, // Floating-point Vector Multiply ARM_pmul, // Polynomial Vector Multiply ARM_fmulx, // Floating-point Multiply Extended ARM_fnmul, // Floating-point Multiply-Negate ARM_umull2, // Unsigned Integer Vector Multiply Long (second part) ARM_smull2, // Signed Integer Vector Multiply Long (second part) ARM_pmull, // Polynomial Vector Multiply Long ARM_pmull2, // Polynomial Vector Multiply Long (second part) ARM_fneg, // Floating-point Negate ARM_uadalp, // Unsigned Integer Vector Add and Accumulate Long Pair ARM_sadalp, // Signed Integer Vector Add and Accumulate Long Pair ARM_addp, // Integer Vector Add Pair ARM_faddp, // Floating-point Vector Add Pair ARM_uaddlp, // Unsigned Integer Vector Add Long Pair ARM_saddlp, // Signed Integer Vector Add Long Pair ARM_umaxp, // Unsigned Integer Maximum Pair ARM_smaxp, // Signed Integer Maximum Pair ARM_fmaxp, // Floating-point Maximum Pair ARM_fmaxnmp, // Floating-point maxNum Pair ARM_uminp, // Unsigned Integer Minimum Pair ARM_sminp, // Signed Integer Minimum Pair ARM_fminp, // Floating-point Minimum Pair ARM_fminnmp, // Floating-point minNum Pair ARM_sqabs, // Signed Integer Saturating Absolute ARM_uqadd, // Unsigned Integer Saturating Add ARM_sqadd, // Signed Integer Saturating Add ARM_suqadd, // Signed Integer Saturating Accumulate of Unsigned Values ARM_usqadd, // Unsigned Integer Saturating Accumulate of Signed Values ARM_sqdmlal, // Signed Integer Saturating Doubling Multiply Add Long ARM_sqdmlal2, // Signed Integer Saturating Doubling Multiply Add Long (second part) ARM_sqdmlsl, // Signed Integer Saturating Doubling Multiply Subtract Long ARM_sqdmlsl2, // Signed Integer Saturating Doubling Multiply Subtract Long (second part) ARM_sqdmulh, // Signed Integer Saturating Doubling Multiply Returning High Half ARM_sqdmull, // Signed Integer Saturating Doubling Multiply Long ARM_sqdmull2, // Signed Integer Saturating Doubling Multiply Long (second part) ARM_uqxtn, // Unsigned Integer Saturating Vector Narrow ARM_uqxtn2, // Unsigned Integer Saturating Vector Narrow (second part) ARM_sqxtn, // Signed Integer Saturating Vector Narrow ARM_sqxtn2, // Signed Integer Saturating Vector Narrow (second part) ARM_sqxtun, // Signed Integer Saturating Vector and Unsigned Narrow ARM_sqxtun2, // Signed Integer Saturating Vector and Unsigned Narrow (second part) ARM_sqneg, // Signed Integer Saturating Negate ARM_sqrdmulh, // Signed Integer Saturating Rounding Doubling Multiply Returning High Half ARM_uqrshl, // Unsigned Integer Saturating Rounding Shift Left ARM_sqrshl, // Signed Integer Saturating Rounding Shift Left ARM_uqrshrn, // Unsigned Integer Saturating Rounding Shift Right, Narrow ARM_uqrshrn2, // Unsigned Integer Saturating Rounding Shift Right, Narrow (second part) ARM_sqrshrn, // Signed Integer Saturating Rounding Shift Right, Narrow ARM_sqrshrn2, // Signed Integer Saturating Rounding Shift Right, Narrow (second part) ARM_sqrshrun, // Signed Integer Saturating Rounding Shift Right, Narrow, Unsigned result ARM_sqrshrun2, // Signed Integer Saturating Rounding Shift Right, Narrow, Unsigned result (second part) ARM_uqshl, // Unsigned Integer Saturating Shift Left ARM_sqshl, // Signed Integer Saturating Shift Left ARM_sqshlu, // Signed Integer Saturating Shift Left, Unsigned result ARM_uqshrn, // Unsigned Integer Saturating Shift Right, Narrow ARM_uqshrn2, // Unsigned Integer Saturating Shift Right, Narrow (second part) ARM_sqshrn, // Signed Integer Saturating Shift Right, Narrow ARM_sqshrn2, // Signed Integer Saturating Shift Right, Narrow (second part) ARM_sqshrun, // Signed Integer Saturating Shift Right, Narrow, Unsigned result ARM_sqshrun2, // Signed Integer Saturating Shift Right, Narrow, Unsigned result (second part) ARM_uqsub, // Unsigned Integer Saturating Subtract ARM_sqsub, // Signed Integer Saturating Subtract ARM_raddhn, // Integer Rounding Add and Narrow, returning High Half ARM_raddhn2, // Integer Rounding Add and Narrow, returning High Half (second part) ARM_urecpe, // Unsigned Integer Reciprocal Estimate ARM_frecpe, // Floating-point Reciprocal Estimate ARM_frecps, // Floating-point Reciprocal Step ARM_frecpx, // Floating-point Reciprocal Exponent ARM_rev64, // Reverse doublewords ARM_urhadd, // Unsigned Integer Rounding Halving Add ARM_srhadd, // Signed Integer Rounding Halving Add ARM_urshl, // Unsigned Integer Rounding Shift Left ARM_srshl, // Signed Integer Rounding Shift Left ARM_urshr, // Unsigned Integer Rounding Shift Right ARM_srshr, // Signed Integer Rounding Shift Right ARM_rshrn, // Integer Rounding Shift Right and Narrow ARM_rshrn2, // Integer Rounding Shift Right and Narrow (second part) ARM_ursqrte, // Unsigned Integer Reciprocal Square Root Estimate ARM_frsqrte, // Floating-point Reciprocal Square Root Estimate ARM_frsqrts, // Floating-point Reciprocal Square Root Step ARM_ursra, // Unsigned Integer Rounding Shift Right and Accumulate ARM_srsra, // Signed Integer Rounding Shift Right and Accumulate ARM_rsubhn, // Integer Subtract and Narrow, returning High Half ARM_rsubhn2, // Integer Subtract and Narrow, returning High Half (second part) ARM_ushl, // Unsigned Integer Shift Left ARM_sshl, // Signed Integer Shift Left ARM_ushll, // Unsigned Integer Shift Left Long ARM_ushll2, // Unsigned Integer Shift Left Long (second part) ARM_sshll, // Signed Integer Shift Left Long ARM_sshll2, // Signed Integer Shift Left Long (second part) ARM_ushr, // Unsigned Integer Shift Right ARM_sshr, // Signed Integer Shift Right ARM_shrn, // Integer Shift Right Narrow ARM_shrn2, // Integer Shift Right Narrow (second part) ARM_shl, // Shift Left ARM_shll, // Shift Left Long ARM_shll2, // Shift Left Long (second part) ARM_sli, // Integer Vector Shift Left and Insert ARM_fsqrt, // Floating-point Square Root ARM_usra, // Unsigned Integer Shift Right and Accumulate ARM_ssra, // Signed Integer Shift Right and Accumulate ARM_sri, // Integer Shift Right and Insert ARM_st1, // Vector Store Single Element ARM_st2, // Vector Store Two-Element Structures ARM_st3, // Vector Store Three-Element Structures ARM_st4, // Vector Store Four-Element Structures ARM_fsub, // Floating-point Subtract ARM_subhn, // Integer Subtract and Narrow, returning High Half ARM_subhn2, // Integer Subtract and Narrow, returning High Half (second part) ARM_usubl, // Unsigned Integer Subtract Long ARM_usubl2, // Unsigned Integer Subtract Long (second part) ARM_ssubl, // Signed Integer Subtract Long ARM_ssubl2, // Signed Integer Subtract Long (second part) ARM_usubw, // Unsigned Integer Subtract Wide ARM_usubw2, // Unsigned Integer Subtract Wide (second part) ARM_ssubw, // Signed Integer Subtract Wide ARM_ssubw2, // Signed Integer Subtract Wide (second part) ARM_tbl, // Vector Table Lookup ARM_tbx, // Vector Table Extension ARM_trn1, // Vector Element Transpose (primary) ARM_trn2, // Vector Element Transpose (secondary) ARM_cmtst, // Integer Compare Mask Bitwise Test ARM_uzp1, // Vector Element Unzip (primary) ARM_uzp2, // Vector Element Unzip (secondary) ARM_zip1, // Vector Element Zip (primary) ARM_zip2, // Vector Element Zip (secondary) ARM_addv, // Integer Sum Elements in Vector ARM_uaddlv, // Unsigned Integer Sum Elements in Vector Long ARM_saddlv, // Signed Integer Sum Elements in Vector Long ARM_umaxv, // Unsigned Integer Max Element in Vector ARM_smaxv, // Signed Integer Max Element in Vector ARM_fmaxv, // Floating-point Max Element in Vector ARM_fmaxnmv, // Floating-point maxNum Element in Vector ARM_uminv, // Unsigned Integer Min Element in Vector ARM_sminv, // Signed Integer Min Element in Vector ARM_fminv, // Floating-point Min Element in Vector ARM_fminnmv, // Floating-point minNum Element in Vector // atomic operations (ARMv8.1/ARMv8.3) // ARM_swp, // Swap value with memory, No memory ordering ARM_swpl, // Swap value with memory, Release ARM_swpa, // Swap value with memory, Acquire ARM_swpal, // Swap value with memory, Acquire and release ARM_ldapr, // Load-Acquire RCpc Register ARM_ldadd, // Atomic add on value in memory (return initial value), No memory ordering ARM_ldaddl, // Atomic add on value in memory (return initial value), Release ARM_ldadda, // Atomic add on value in memory (return initial value), Acquire ARM_ldaddal, // Atomic add on value in memory (return initial value), Acquire and release ARM_stadd, // Atomic add on value in memory (no return), No memory ordering ARM_staddl, // Atomic add on value in memory (no return), Release ARM_ldclr, // Atomic bit clear on value in memory (return initial value), No memory ordering ARM_ldclrl, // Atomic bit clear on value in memory (return initial value), Release ARM_ldclra, // Atomic bit clear on value in memory (return initial value), Acquire ARM_ldclral, // Atomic bit clear on value in memory (return initial value), Acquire and release ARM_stclr, // Atomic bit clear on value in memory (no return), No memory ordering ARM_stclrl, // Atomic bit clear on value in memory (no return), Release ARM_ldeor, // Atomic exclusive OR on value in memory (return initial value), No memory ordering ARM_ldeorl, // Atomic exclusive OR on value in memory (return initial value), Release ARM_ldeora, // Atomic exclusive OR on value in memory (return initial value), Acquire ARM_ldeoral, // Atomic exclusive OR on value in memory (return initial value), Acquire and release ARM_steor, // Atomic exclusive OR on value in memory (no return), No memory ordering ARM_steorl, // Atomic exclusive OR on value in memory (no return), Release ARM_ldset, // Atomic bit set on value in memory (return initial value), No memory ordering ARM_ldsetl, // Atomic bit set on value in memory (return initial value), Release ARM_ldseta, // Atomic bit set on value in memory (return initial value), Acquire ARM_ldsetal, // Atomic bit set on value in memory (return initial value), Acquire and release ARM_stset, // Atomic bit set on value in memory (no return), No memory ordering ARM_stsetl, // Atomic bit set on value in memory (no return), Release ARM_ldsmax, // Atomic signed maximum on value in memory (return initial value), No memory ordering ARM_ldsmaxl, // Atomic signed maximum on value in memory (return initial value), Release ARM_ldsmaxa, // Atomic signed maximum on value in memory (return initial value), Acquire ARM_ldsmaxal, // Atomic signed maximum on value in memory (return initial value), Acquire and release ARM_stsmax, // Atomic signed maximum on value in memory (no return), No memory ordering ARM_stsmaxl, // Atomic signed maximum on value in memory (no return), Release ARM_ldsmin, // Atomic signed minimum on value in memory (return initial value), No memory ordering ARM_ldsminl, // Atomic signed minimum on value in memory (return initial value), Release ARM_ldsmina, // Atomic signed minimum on value in memory (return initial value), Acquire ARM_ldsminal, // Atomic signed minimum on value in memory (return initial value), Acquire and release ARM_stsmin, // Atomic signed minimum on value in memory (no return), No memory ordering ARM_stsminl, // Atomic signed minimum on value in memory (no return), Release ARM_ldumax, // Atomic unsigned maximum on value in memory (return initial value), No memory ordering ARM_ldumaxl, // Atomic unsigned maximum on value in memory (return initial value), Release ARM_ldumaxa, // Atomic unsigned maximum on value in memory (return initial value), Acquire ARM_ldumaxal, // Atomic unsigned maximum on value in memory (return initial value), Acquire and release ARM_stumax, // Atomic unsigned maximum on value in memory (no return), No memory ordering ARM_stumaxl, // Atomic unsigned maximum on value in memory (no return), Release ARM_ldumin, // Atomic unsigned minimum on value in memory (return initial value), No memory ordering ARM_lduminl, // Atomic unsigned minimum on value in memory (return initial value), Release ARM_ldumina, // Atomic unsigned minimum on value in memory (return initial value), Acquire ARM_lduminal, // Atomic unsigned minimum on value in memory (return initial value), Acquire and release ARM_stumin, // Atomic unsigned minimum on value in memory (no return), No memory ordering ARM_stuminl, // Atomic unsigned minimum on value in memory (no return), Release // Compare and Swap (ARMv8.1) ARM_cas, // Compare and Swap , No memory ordering ARM_casl, // Compare and Swap, Release ARM_casa, // Compare and Swap, Acquire ARM_casal, // Compare and Swap, Acquire and release ARM_casp, // Compare and Swap Pair, No memory ordering ARM_caspl, // Compare and Swap Pair, Release ARM_caspa, // Compare and Swap Pair, Acquire ARM_caspal, // Compare and Swap Pair, Acquire and release ARM_ldlar, // Load LOAcquire Register ARM_stllr, // Store LORelease Register ARM_sqrdmlah, // Signed Saturating Rounding Doubling Multiply Accumulate ARM_sqrdmlsh, // Signed Saturating Rounding Doubling Multiply Subtract // Pointer authentication (ARMv8.3) // only completely new instructions are included; // authenticated variations of old ones are represented by instruction flags (see arm.hpp) ARM_pac, // Pointer Authentication Code for Data/Instruction address/generic ARM_aut, // Authenticate Data/Instruction address ARM_xpac, // Strip Pointer Authentication Code // ARM insns for the legacy assembler (2 operands) ARM_ldrd2, // Load pair of registers ARM_strd2, // Store pair of registers // CRC32 (optional in 8.0, mandatory since 8.1) ARM_crc32, // CRC32 using polynomial 0x04C11DB7 ARM_crc32c, // CRC32 using polynomial 0x1EDC6F41 // Armv8-M Security Extension (TrustZone for Armv8-M) ARM_tt, // Test Target (query the Security state and access permissions of a memory location) ARM_tta, // Test Target Alternate Domain (query the Security state and access permissions of a memory location for a Non-secure access) ARM_sg, // Secure Gateway ARM_vlldm, // Floating-point Lazy Load Multiple ARM_vlstm, // Floating-point Lazy Store Multiple // MP Extension instructions ARM_pldw, // Preload Data for write // ARMv8.1-RDMA (AArh32) ARM_vqrdmlah, // Vector Saturating Rounding Doubling Multiply Accumulate Returning High Half. ARM_vqrdmlsh, // Vector Saturating Rounding Doubling Multiply Subtract Returning High Half // ARMv8.2-FP16 (AArch32) ARM_vmovx, // Vector Move extraction ARM_vins, // Vector move Insertion. // ARMv8.3-JSConv (AArch32) ARM_vjcvt, // Javascript Convert to signed fixed-point, rounding toward Zero // ARMv8.3-JSConv (A64) ARM_fjcvtzs, // Javascript Convert to signed fixed-point, rounding toward Zero /* // ARMv8.3-CompNum, SIMD complex number support ARM_fcadd, // Floating-point complex add ARM_fcmla, // Floating-point complex multiply accumulate */ // ARMv8.4-RCPC ARM_ldapur, // Load-Acquire RCpc Register (unscaled offset) ARM_stlur, // Store-Release Register (unscaled offset) // ARMv8.4 ARM_cfinv, // Invert Carry Flag ARM_rmif, // Rotate value and mask into flags ARM_setf8, // set flags from value (8-bit) ARM_setf16, // set flags from value (16-bit) ARM_xaflag, // Convert floating-point condition flags to ARM format ARM_axflag, // Convert floating-point condition flags from ARM to external format. // ARMv8.5 ARM_addg, // Add with Tag ARM_subg, // Subtract with Tag ARM_subp, // Subtract Pointer ARM_cmpp, // Compare with Tag ARM_irg, // Insert Random Tag ARM_gmi, // Tag Mask Insert ARM_stg, // Store Allocation Tag ARM_stzg, // Store Allocation Tag, Zeroing ARM_stzgm, // Store Tag and Zero Multiple ARM_st2g, // Store Allocation Tags ARM_stz2g, // Store Allocation Tags, Zeroing ARM_stgm, // Store Tag Multiple ARM_stgp, // Store Allocation Tag and Pair of registers ARM_ldg, // Load Allocation Tag ARM_ldgm, // Load Tag Multiple ARM_bti, // Branch Target Identification ARM_sb, // Speculation Barrier ARM_ssbb, // Speculative Store Bypass Barrier ARM_pssbb, // Physical Speculative Store Bypass Barrier ARM_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * TMS320C6xx - VLIW (very long instruction word) architecture * */ enum { // Original TMS320C62x instructions TMS6_null = 0, // Unknown Operation TMS6_abs, // Absolute value TMS6_add, // Integer addition without saturation (signed) TMS6_addu, // Integer addition without saturation (unsigned) TMS6_addab, // Integer addition using addressing mode (byte) TMS6_addah, // Integer addition using addressing mode (halfword) TMS6_addaw, // Integer addition using addressing mode (word) TMS6_addk, // Integer addition 16bit signed constant TMS6_add2, // Two 16bit Integer adds on register halves TMS6_and, // Logical AND TMS6_b, // Branch TMS6_clr, // Clear a bit field TMS6_cmpeq, // Compare for equality TMS6_cmpgt, // Compare for greater than (signed) TMS6_cmpgtu, // Compare for greater than (unsigned) TMS6_cmplt, // Compare for less than (signed) TMS6_cmpltu, // Compare for less than (unsigned) TMS6_ext, // Extract and sign-extend a bit filed TMS6_extu, // Extract an unsigned bit field TMS6_idle, // Multicycle NOP with no termination until interrupt TMS6_ldb, // Load from memory (signed 8bit) TMS6_ldbu, // Load from memory (unsigned 8bit) TMS6_ldh, // Load from memory (signed 16bit) TMS6_ldhu, // Load from memory (unsigned 16bit) TMS6_ldw, // Load from memory (32bit) TMS6_lmbd, // Leftmost bit detection TMS6_mpy, // Signed Integer Multiply (LSB16 x LSB16) TMS6_mpyu, // Unsigned Integer Multiply (LSB16 x LSB16) TMS6_mpyus, // Integer Multiply Signed*Unsigned (LSB16 x LSB16) TMS6_mpysu, // Integer Multiply Unsigned*Signed (LSB16 x LSB16) TMS6_mpyh, // Signed Integer Multiply (MSB16 x MSB16) TMS6_mpyhu, // Unsigned Integer Multiply (MSB16 x MSB16) TMS6_mpyhus, // Integer Multiply Unsigned*Signed (MSB16 x MSB16) TMS6_mpyhsu, // Integer Multiply Signed*Unsigned (MSB16 x MSB16) TMS6_mpyhl, // Signed Integer Multiply (MSB16 x LSB16) TMS6_mpyhlu, // Unsigned Integer Multiply (MSB16 x LSB16) TMS6_mpyhuls, // Integer Multiply Signed*Unsigned (MSB16 x LSB16) TMS6_mpyhslu, // Integer Multiply Unsigned*Signed (MSB16 x LSB16) TMS6_mpylh, // Signed Integer Multiply (LSB16 x MB16) TMS6_mpylhu, // Unsigned Integer Multiply (LSB16 x MSB16) TMS6_mpyluhs, // Integer Multiply Signed*Unsigned (LSB16 x MSB16) TMS6_mpylshu, // Integer Multiply Unsigned*Signed (LSB16 x MSB16) TMS6_mv, // Move from register to register TMS6_mvc, // Move between the control file & register file TMS6_mvk, // Move a 16bit signed constant into register TMS6_mvkh, // Move a 16bit constant into the upper bits of a register TMS6_mvklh, // Move a 16bit constant into the upper bits of a register TMS6_neg, // Negate TMS6_nop, // No operation TMS6_norm, // Normalize TMS6_not, // Bitwise NOT TMS6_or, // Logical or TMS6_sadd, // Integer addition with saturation TMS6_sat, // Saturate 40bit value to 32bits TMS6_set, // Set a bit field TMS6_shl, // Arithmetic shift left TMS6_shr, // Arithmetic shift right TMS6_shru, // Logical shift left TMS6_smpy, // Integer multiply with left shift & saturation (LSB16*LSB16) TMS6_smpyhl, // Integer multiply with left shift & saturation (MSB16*LSB16) TMS6_smpylh, // Integer multiply with left shift & saturation (LSB16*MSB16) TMS6_smpyh, // Integer multiply with left shift & saturation (MSB16*MSB16) TMS6_sshl, // Shift left with saturation TMS6_ssub, // Integer substraction with saturation TMS6_stb, // Store to memory (signed 8bit) TMS6_stbu, // Store to memory (unsigned 8bit) TMS6_sth, // Store to memory (signed 16bit) TMS6_sthu, // Store to memory (unsigned 16bit) TMS6_stw, // Store to memory (32bit) TMS6_sub, // Integer substaraction without saturation (signed) TMS6_subu, // Integer substaraction without saturation (unsigned) TMS6_subab, // Integer subtraction using addressing mode (byte) TMS6_subah, // Integer subtraction using addressing mode (halfword) TMS6_subaw, // Integer subtraction using addressing mode (word) TMS6_subc, // Conditional subtract & shift (for division) TMS6_sub2, // Two 16bit integer subtractions on register halves TMS6_xor, // Exclusive OR TMS6_zero, // Zero a register // New TMS320C674x instructions TMS6_abs2, // Absolute Value With Saturation, Signed, Packed 16-bit TMS6_absdp, // Absolute Value, Double-Precision Floating-Point TMS6_abssp, // Absolute Value, Single-Precision Floating-Point TMS6_add4, // Add Without Saturation, Four 8-Bit Pairs for Four 8-Bit Results TMS6_addad, // Add Using Doubleword Addressing Mode TMS6_adddp, // Add Two Double-Precision Floating-Point Values TMS6_addkpc, // Add Signed 7-bit Constant to Program Counter TMS6_addsp, // Add Two Single-Precision Floating-Point Values TMS6_addsub, // Parallel ADD and SUB Operations On Common Inputs TMS6_addsub2, // Parallel ADD2 and SUB2 Operations On Common Inputs TMS6_andn, // Bitwise AND Invert TMS6_avg2, // Average, Signed, Packed 16-bit TMS6_avgu4, // Average, Unsigned, Packed 16-bit TMS6_bdec, // Branch and Decrement TMS6_bitc4, // Bit Count, Packed 8-bit TMS6_bitr, // Bit Reverse TMS6_bnop, // Branch With NOP TMS6_bpos, // Branch Positive TMS6_callp, // Call Using a Displacement TMS6_cmpeq2, // Compare for Equality, Packed 16-bit TMS6_cmpeq4, // Compare for Equality, Packed 8-bit TMS6_cmpeqdp, // Compare for Equality, Double-Precision Floating-Point Values TMS6_cmpeqsp, // Compare for Equality, Single-Precision Floating-Point Values TMS6_cmpgt2, // Compare for Greater Than, Packed 16-bit TMS6_cmpgtdp, // Compare for Greater Than, Double-Precision Floating-Point Values TMS6_cmpgtsp, // Compare for Greater Than, Single-Precision Floating-Point Values TMS6_cmpgtu4, // Compare for Greater Than, Unsigned, Packed 8-bit TMS6_cmplt2, // Compare for Less Than, Packed 16-bit TMS6_cmpltdp, // Compare for Less Than, Double-Precision Floating-Point Values TMS6_cmpltsp, // Compare for Less Than, Single-Precision Floating-Point Values TMS6_cmpltu4, // Compare for Less Than, Unsigned, Packed 8-bit TMS6_cmpy, // Complex Multiply Two Pairs, Signed, Packed 16-bit TMS6_cmpyr, // Complex Multiply Two Pairs, Signed, Packed 16-bit With Rounding TMS6_cmpyr1, // Complex Multiply Two Pairs, Signed, Packed 16-bit With Rounding TMS6_ddotp4, // Double Dot Product, Signed, Packed 16-Bit and Signed, Packed 8-Bit TMS6_ddotph2, // Double Dot Product, Two Pairs, Signed, Packed 16-Bit TMS6_ddotph2r, // Double Dot Product With Rounding, Two Pairs, Signed, Packed 16-Bit TMS6_ddotpl2, // Double Dot Product, Two Pairs, Signed, Packed 16-Bit TMS6_ddotpl2r, // Double Dot Product With Rounding, Two Pairs, Signed Packed 16-Bit TMS6_deal, // Deinterleave and Pack TMS6_dint, // Disable Interrupts and Save Previous Enable State TMS6_dmv, // Move Two Independent Registers to Register Pair TMS6_dotp2, // Dot Product, Signed, Packed 16-Bit TMS6_dotpn2, // Dot Product With Negate, Signed, Packed 16-Bit TMS6_dotpnrsu2, // Dot Product With Negate, Shift and Round, Signed by Unsigned, Packed 16-Bit TMS6_dotpnrus2, // Dot Product With Negate, Shift and Round, Unsigned by Signed, Packed 16-Bit TMS6_dotprsu2, // Dot Product With Shift and Round, Signed by Unsigned, Packed 16-Bit TMS6_dotprus2, // Dot Product With Shift and Round, Unsigned by Signed, Packed 16-Bit TMS6_dotpsu4, // Dot Product, Signed by Unsigned, Packed 8-Bit TMS6_dotpu4, // Dot Product, Unsigned, Packed 8-Bit TMS6_dotpus4, // Dot Product, Unsigned by Signed, Packed 8-Bit TMS6_dpack2, // Parallel PACK2 and PACKH2 Operations TMS6_dpackx2, // Parallel PACKLH2 Operations TMS6_dpint, // Convert Double-Precision Floating-Point Value to Integer TMS6_dpsp, // Convert Double-Precision Floating-Point Value to Single-Precision Floating-Point Value TMS6_dptrunc, // Convert Double-Precision Floating-Point Value to Integer With Truncation TMS6_gmpy, // Galois Field Multiply TMS6_gmpy4, // Galois Field Multiply, Packed 8-Bit TMS6_intdp, // Convert Signed Integer to Double-Precision Floating-Point Value TMS6_intdpu, // Convert Unsigned Integer to Double-Precision Floating-Point Value TMS6_intsp, // Convert Signed Integer to Single-Precision Floating-Point Value TMS6_intspu, // Convert Unsigned Integer to Single-Precision Floating-Point Value TMS6_lddw, // Load Doubleword From Memory With a 5-Bit Unsigned Constant Offset or Register Offset TMS6_ldndw, // Load Nonaligned Doubleword From Memory With Constant or Register Offset TMS6_ldnw, // Load Nonaligned Word From Memory With Constant or Register Offset TMS6_max2, // Maximum, Signed, Packed 16-Bit TMS6_maxu4, // Maximum, Unsigned, Packed 8-Bit TMS6_min2, // Minimum, Signed, Packed 16-Bit TMS6_minu4, // Minimum, Unsigned, Packed 8-Bit TMS6_mpy2, // Multiply Signed by Signed, 16 LSB x 16 LSB and 16 MSB x 16 MSB TMS6_mpy2ir, // Multiply Two 16-Bit x 32-Bit, Shifted by 15 to Produce a Rounded 32-Bit Result TMS6_mpy32, // Multiply Signed 32-Bit x Signed 32-Bit Into 32-Bit Result TMS6_mpy32su, // Multiply Signed 32-Bit x Unsigned 32-Bit Into Signed 64-Bit Result TMS6_mpy32u, // Multiply Unsigned 32-Bit x Unsigned 32-Bit Into Unsigned 64-Bit Result TMS6_mpy32us, // Multiply Unsigned 32-Bit x Signed 32-Bit Into Signed 64-Bit Result TMS6_mpydp, // Multiply Two Double-Precision Floating-Point Values TMS6_mpyhi, // Multiply 16 MSB x 32-Bit Into 64-Bit Result TMS6_mpyhir, // Multiply 16 MSB x 32-Bit, Shifted by 15 to Produce a Rounded 32-Bit Result TMS6_mpyi, // Multiply 32-Bit x 32-Bit Into 32-Bit Result TMS6_mpyid, // Multiply 32-Bit x 32-Bit Into 64-Bit Result TMS6_mpyih, // Multiply 32-Bit x 16-MSB Into 64-Bit Result TMS6_mpyihr, // Multiply 32-Bit x 16 MSB, Shifted by 15 to Produce a Rounded 32-Bit Result TMS6_mpyil, // Multiply 32-Bit x 16 LSB Into 64-Bit Result TMS6_mpyilr, // Multiply 32-Bit x 16 LSB, Shifted by 15 to Produce a Rounded 32-Bit Result TMS6_mpyli, // Multiply 16 LSB x 32-Bit Into 64-Bit Result TMS6_mpylir, // Multiply 16 LSB x 32-Bit, Shifted by 15 to Produce a Rounded 32-Bit Result TMS6_mpysp, // Multiply Two Single-Precision Floating-Point Values TMS6_mpysp2dp, // Multiply Two Single-Precision Floating-Point Values for Double-Precision Result TMS6_mpyspdp, // Multiply Single-Precision Floating-Point Value x Double-Precision Floating-Point Value TMS6_mpysu4, // Multiply Signed x Unsigned, Four 8-Bit Pairs for Four 8-Bit Results TMS6_mpyu4, // Multiply Unsigned x Unsigned, Four 8-Bit Pairs for Four 8-Bit Results TMS6_mpyus4, // Multiply Unsigned x Signed, Four 8-Bit Pairs for Four 8-Bit Results TMS6_mvd, // Move From Register to Register, Delayed TMS6_mvkl, // Move Signed Constant Into Register and Sign Extend TMS6_pack2, // Pack Two 16 LSBs Into Upper and Lower Register Halves TMS6_packh2, // Pack Two 16 MSBs Into Upper and Lower Register Halves TMS6_packh4, // Pack Four High Bytes Into Four 8-Bit Halfwords TMS6_packhl2, // Pack 16 MSB Into Upper and 16 LSB Into Lower Register Halves TMS6_packl4, // Pack Four Low Bytes Into Four 8-Bit Halfwords TMS6_packlh2, // Pack 16 LSB Into Upper and 16 MSB Into Lower Register Halves TMS6_rcpdp, // Double-Precision Floating-Point Reciprocal Approximation TMS6_rcpsp, // Single-Precision Floating-Point Reciprocal Approximation TMS6_rint, // Restore Previous Enable State TMS6_rotl, // Rotate Left TMS6_rpack2, // Shift With Saturation and Pack Two 16 MSBs Into Upper and Lower Register Halves TMS6_rsqrdp, // Double-Precision Floating-Point Square-Root Reciprocal Approximation TMS6_rsqrsp, // Single-Precision Floating-Point Square-Root Reciprocal Approximation TMS6_sadd2, // Add Two Signed 16-Bit Integers on Upper and Lower Register Halves With Saturation TMS6_saddsu2, // Add Two Signed and Unsigned 16-Bit Integers on Register Halves With Saturation TMS6_saddsub, // Parallel SADD and SSUB Operations On Common Inputs TMS6_saddsub2, // Parallel SADD2 and SSUB2 Operations On Common Inputs TMS6_saddu4, // Add With Saturation, Four Unsigned 8-Bit Pairs for Four 8-Bit Results TMS6_saddus2, // Add Two Unsigned and Signed 16-Bit Integers on Register Halves With Saturation TMS6_shfl, // Shuffle TMS6_shfl3, // 3-Way Bit Interleave On Three 16-Bit Values Into a 48-Bit Result TMS6_shlmb, // Shift Left and Merge Byte TMS6_shr2, // Arithmetic Shift Right, Signed, Packed 16-Bit TMS6_shrmb, // Shift Right and Merge Byte TMS6_shru2, // Arithmetic Shift Right, Unsigned, Packed 16-Bit TMS6_smpy2, // Multiply Signed by Signed, 16 LSB x 16 LSB and 16 MSB x 16 MSB With Left Shift and Saturation TMS6_smpy32, // Multiply Signed 32-Bit x Signed 32-Bit Into 64-Bit Result With Left Shift and Saturation TMS6_spack2, // Saturate and Pack Two 16 LSBs Into Upper and Lower Register Halves TMS6_spacku4, // Saturate and Pack Four Signed 16-Bit Integers Into Four Unsigned 8-Bit Halfwords TMS6_spdp, // Convert Single-Precision Floating-Point Value to Double-Precision Floating-Point Value TMS6_spint, // Convert Single-Precision Floating-Point Value to Integer TMS6_spkernel, // Software Pipelined Loop (SPLOOP) Buffer Operation Code Boundary TMS6_spkernelr, // Software Pipelined Loop (SPLOOP) Buffer Operation Code Boundary TMS6_sploop, // Software Pipelined Loop (SPLOOP) Buffer Operation TMS6_sploopd, // Software Pipelined Loop (SPLOOP) Buffer Operation With Delayed Testing TMS6_sploopw, // Software Pipelined Loop (SPLOOP) Buffer Operation With Delayed Testing and No Epilog TMS6_spmask, // Software Pipelined Loop (SPLOOP) Buffer Operation Load/Execution Control TMS6_spmaskr, // Software Pipelined Loop (SPLOOP) Buffer Operation Load/Execution Control TMS6_sptrunc, // Convert Single-Precision Floating-Point Value to Integer With Truncation TMS6_sshvl, // Variable Shift Left TMS6_sshvr, // Variable Shift Right TMS6_ssub2, // Subtract Two Signed 16-Bit Integers on Upper and Lower Register Halves With Saturation TMS6_stdw, // Store Doubleword to Memory With a 5-Bit Unsigned Constant Offset or Register Offset TMS6_stndw, // Store Nonaligned Doubleword to Memory With a 5-Bit Unsigned Constant Offset or Register Offset TMS6_stnw, // Store Nonaligned Word to Memory With a 5-Bit Unsigned Constant Offset or Register Offset TMS6_sub4, // Subtract Without Saturation, Four 8-Bit Pairs for Four 8-Bit Results TMS6_subabs4, // Subtract With Absolute Value, Four 8-Bit Pairs for Four 8-Bit Results TMS6_subdp, // Subtract Two Double-Precision Floating-Point Values TMS6_subsp, // Subtract Two Single-Precision Floating-Point Values TMS6_swap2, // Swap Bytes in Upper and Lower Register Halves TMS6_swap4, // Swap Byte Pairs in Upper and Lower Register Halves TMS6_swe, // Software Exception TMS6_swenr, // Software Exception, no Return TMS6_unpkhu4, // Unpack 16 MSB Into Two Lower 8-Bit Halfwords of Upper and Lower Register Halves TMS6_unpklu4, // Unpack 16 LSB Into Two Lower 8-Bit Halfwords of Upper and Lower Register Halves TMS6_xormpy, // Galois Field Multiply With Zero Polynomial TMS6_xpnd2, // Expand Bits to Packed 16-Bit Masks TMS6_xpnd4, // Expand Bits to Packed 8-Bit Masks TMS6_last, }; /* * Interactive disassembler (IDA). * Intel 80196 module * */ enum { I196_null = 0, // Unknown Operation I196_add2, // Add words (2 operands) I196_add3, // Add words (3 operands) I196_addb2, // Add bytes (2 operands) I196_addb3, // Add bytes (3 operands) I196_addc, // Add words with carry I196_addcb, // Add bytes with carry I196_and2, // Logical AND words (2 operands) I196_and3, // Logical AND words (3 operands) I196_andb2, // Logical AND bytes (2 operands) I196_andb3, // Logical AND bytes (3 operands) I196_bmov, // Block move I196_bmovi, // Interruptable block move I196_br, // Branch indirect I196_clr, // Clear word I196_clrb, // Clear byte I196_clrc, // Clear carry flag I196_clrvt, // Clear overflow-trap flag I196_cmp, // Compare words I196_cmpb, // Compare bytes I196_cmpl, // Compare long I196_dec, // Decrement word I196_decb, // Decrement byte I196_di, // Disable interrupts I196_div, // Divide integers I196_divb, // Divide short-integers I196_divu, // Divide words, unsigned I196_divub, // Divide bytes, unsigned I196_djnz, // Decrement and jump if not zero I196_djnzw, // Decrement and jump if not zero word I196_dpts, // Disable peripheral transaction server I196_ei, // Enable interrupts I196_epts, // Enable peripheral transaction server I196_ext, // Sign-extend integer into long-integer I196_extb, // Sign-extend short-integer into integer I196_idlpd, // Idle/powerdown I196_inc, // Increment word I196_incb, // Increment byte I196_jbc, // Jump if bit is clear I196_jbs, // Jump if bit is set I196_jc, // Jump if carry flag is set I196_je, // Jump if equal I196_jge, // Jump if signed greater than or equal I196_jgt, // Jump if signed greater than I196_jh, // Jump if higher (unsigned) I196_jle, // Jump if signed less than or equal I196_jlt, // Jump if signed less than I196_jnc, // Jump if carry flag is clear I196_jne, // Jump if not equal I196_jnh, // Jump if not higher (unsigned) I196_jnst, // Jump if sticky bit flag is clear I196_jnv, // Jump if overflow flag is clear I196_jnvt, // Jump if overflow-trap flag is clear I196_jst, // Jump if sticky bit flag is set I196_jv, // Jump if overflow flag is set I196_jvt, // Jump if overflow-trap flag is set I196_lcall, // Long call I196_ld, // Load word I196_ldb, // Load byte I196_ldbse, // Load byte sign-extended I196_ldbze, // Load byte zero-extended I196_ljmp, // Long jump I196_mul2, // Multiply integers (2 operands) I196_mul3, // Multiply integers (3 operands) I196_mulb2, // Multiply short-integers (2 operands) I196_mulb3, // Multiply short-integers (3 operands) I196_mulu2, // Multiply words, unsigned (2 operands) I196_mulu3, // Multiply words, unsigned (3 operands) I196_mulub2, // Multiply bytes, unsigned (2 operands) I196_mulub3, // Multiply bytes, unsigned (3 operands) I196_neg, // Negate integer I196_negb, // Negate short-integer I196_nop, // No operation I196_norml, // Normalize long-integer I196_not, // Complement word I196_notb, // Complement byte I196_or, // Logical OR words I196_orb, // Logical OR bytes I196_pop, // Pop word I196_popa, // Pop all I196_popf, // Pop flags I196_push, // Push word I196_pusha, // Push all I196_pushf, // Push flags I196_ret, // Return from subroutine I196_rst, // Reset system I196_scall, // Short call I196_setc, // Set carry flag I196_shl, // Shift word left I196_shlb, // Shift byte left I196_shll, // Shift double-word left I196_shr, // Logical right shift word I196_shra, // Arithmetic right shift word I196_shrab, // Arithmetic right shift byte I196_shral, // Arithmetic right shift double-word I196_shrb, // Logical right shift byte I196_shrl, // Logical right shift double-word I196_sjmp, // Short jump I196_skip, // Two byte no-operation I196_st, // Store word I196_stb, // Store byte I196_sub2, // Subtract words (2 operands) I196_sub3, // Subtract words (3 operands) I196_subb2, // Subtract bytes (2 operands) I196_subb3, // subtract bytes (3 operands) I196_subc, // Subtract words with borrow I196_subcb, // Subtract bytes with borrow I196_tijmp, // Table indirect jump I196_trap, // Software trap I196_xch, // Exchange word I196_xchb, // Exchange byte I196_xor, // Logical exclusive-or words I196_xorb, // Logical exclusive-or bytes // 8x196NU, NP instructions I196_ebmovi, // Extended interruptable block move I196_ebr, // Extended branch indirect I196_ecall, // Extended call I196_ejmp, // Extended jump I196_eld, // Extended load word I196_eldb, // Extended load byte I196_est, // Extended store word I196_estb, // Extended store byte I196_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * Renesas SuperH - RISC with 16bit instructions * */ enum { SH3_null = 0, // Unknown Operation SH3_add, // Add binary SH3_addc, // Add with Carry SH3_addv, // Add with V Flag Overflow Check SH3_and, // AND Logical SH3_and_b, // AND Byte Logical SH3_bf, // Branch if False SH3_bf_s, // Branch of False with Delay Slot SH3_bra, // Branch SH3_braf, // Branch Far SH3_bsr, // Branch to Subroutine SH3_bsrf, // Branch to Subroutine Far SH3_bt, // Branch if True SH3_bt_s, // Branch if True with Delay Slot SH3_clrmac, // Clear MAC register SH3_clrs, // Clear S Bit SH3_clrt, // Clear T Bit SH3_cmp_eq, // Compare: Equal SH3_cmp_ge, // Compare: Signed Greater or Equal SH3_cmp_gt, // Compare: Signed Greater SH3_cmp_hi, // Compare: Unsigned Greater SH3_cmp_hs, // Compare: Unsigned Greater or Equal SH3_cmp_pl, // Compare: Positive SH3_cmp_pz, // Compare: Positive or Zero SH3_cmp_str, // Compare: Equal Bytes SH3_div0s, // Divide Step 0 as Signed SH3_div0u, // Divide Step 0 as Unsigned SH3_div1, // Divide Step 1 SH3_dmuls_l, // Double-Length Multiply as Signed SH3_dmulu_l, // Double-Length Multiply as Unsigned SH3_dt, // Decrement and Test SH3_exts_b, // Extend as Signed (Byte) SH3_exts_w, // Extend as Signed (Word) SH3_extu_b, // Extend as Unsigned (Byte) SH3_extu_w, // Extend as Unsigned (Word) SH3_jmp, // Jump SH3_jsr, // Jump to Subroutine SH3_ldc, // Load to Control Register SH3_ldc_l, // Load to Control Register Long SH3_lds, // Load to System Register SH3_lds_l, // Load to System Register Long SH3_ldtlb, // Load PTEH/PTEL/PTEA to TLB SH3_mac_w, // Multiply and Accumulate Word SH3_mac_l, // Multiply and Accumulate Long SH3_mov, // Move Data SH3_mov_b, // Move Byte Data SH3_mov_w, // Move Word Data SH3_mov_l, // Move Long Data SH3_movi, // Move Immediate Byte Data SH3_movi_w, // Move Immediate Word Data SH3_movi_l, // Move Immediate Long Data SH3_movp_b, // Move Peripherial Byte Data SH3_movp_w, // Move Peripherial Word Data SH3_movp_l, // Move Peripherial Long Data SH3_movs_b, // Move Structure Byte Data SH3_movs_w, // Move Structure Word Data SH3_movs_l, // Move Structure Long Data SH3_mova, // Move Effective Address SH3_movt, // Move T Bit SH3_mul, // Multiply Long SH3_muls, // Multiply as Signed Word SH3_mulu, // Multiply as Unsigned Word SH3_neg, // Negate SH3_negc, // Negate with Carry SH3_nop, // No Operation SH3_not, // NOT - Logical Complement SH3_or, // OR Logical SH3_or_b, // OR Byte Logical SH3_pref, // Prefetch Data to the Cache SH3_rotcl, // Rotate with Carry Left SH3_rotcr, // Rotate with Carry Right SH3_rotl, // Rotate Left SH3_rotr, // Rotate Right SH3_rte, // Return from Exception SH3_rts, // Return from Subroutine SH3_sets, // Set S Bit SH3_sett, // Set T Bit SH3_shad, // Shift Arithmetic Dynamically SH3_shal, // Shift Arithmetic Left SH3_shar, // Shift Arithmetic Right SH3_shld, // Shift Logical Dynamically SH3_shll, // Shift Logical Left SH3_shll2, // Shift Logical Left 2 SH3_shll8, // Shift Logical Left 8 SH3_shll16, // Shift Logical Left 16 SH3_shlr, // Shift Logical Right SH3_shlr2, // Shift Logical Right 2 SH3_shlr8, // Shift Logical Right 8 SH3_shlr16, // Shift Logical Right 16 SH3_sleep, // Sleep SH3_stc, // Store Control Register SH3_stc_l, // Store Control Register Long SH3_sts, // Store System Register SH3_sts_l, // Store System Register Long SH3_sub, // Subtract Binary SH3_subc, // Subtract with Carry SH3_subv, // Subtract with V Flag Underflow Check SH3_swap_b, // Swap Register Halves (Byte) SH3_swap_w, // Swap Register Halves (Word) SH3_tas_b, // Test and Set SH3_trapa, // Trap Always SH3_tst, // Test Logical SH3_tst_b, // Test Byte Logical SH3_xor, // Exclusive OR Logical SH3_xor_b, // Exclusive OR Byte Logical SH3_xtrct, // Extract SH4_fabs, // Floating-point absolute value SH4_fadd, // Floating-point add SH4_fcmp_eq, // Floating-point compare eqaul SH4_fcmp_gt, // Floating-point compare greater than SH4_fcnvds, // Floating-point convert double to single precision SH4_fcnvsd, // Floating-point convert single to double precision SH4_fdiv, // Floating-point divide SH4_fipr, // Floating-point inner product SH4_fldi0, // Floating-point Load Immediate 0.0 SH4_fldi1, // Floating-point Load Immediate 1.0 SH4_flds, // Floating-point Load to system register SH4_float, // Floating-point convert from integer SH4_fmac, // Floating-point multiply and accumulate SH4_fmov, // Floating-point move SH4_fmov_s, // Floating-point move single precision SH4_fmovex, // Floating-point move extension SH4_fmul, // Floating-point multiply SH4_fneg, // Floating-Point sign inversion SH4_frchg, // FR-bit change SH4_fschg, // SZ-bit change SH4_fsqrt, // Floating-point square root SH4_fsts, // Floating-point store system register SH4_fsub, // Floating-point subtract SH4_ftrc, // Floating-point truncate and convert to integer SH4_ftrv, // Floating-point transform vector SH4_ftstn, // Floating point square root reciprocal approximate SH4_movca_l, // Move with cache block allocation SH4_ocbi, // Operand Cache Block Invalidate SH4_ocbp, // Operand Cache Block Purge SH4_ocbwb, // Operand Cache Block Write Back SH4_fsca, // Floating point sine and cosine approximate // SH-2a new instructions SH2a_band_b, // Bit And Byte Data SH2a_bandnot_b, // Bit And Not Byte Data SH2a_bclr, // Bit Clear SH2a_bclr_b, // Bit Clear Byte Data SH2a_bld, // Bit Load SH2a_bld_b, // Bit Load Byte Data SH2a_bldnot_b, // Bit Load Not Byte Data SH2a_bor_b, // Bit Or Byte Data SH2a_bornot_b, // Bit Or Not Byte Data SH2a_bset, // Bit Set SH2a_bset_b, // Bit Set Byte Data SH2a_bst, // Bit Store SH2a_bst_b, // Bit Store Byte Data SH2a_bxor_b, // Bit Exclusive Or Byte Data SH2a_clips_b, // Clip as Signed Byte SH2a_clips_w, // Clip as Signed Word SH2a_clipu_b, // Clip as Unsigned Byte SH2a_clipu_w, // Clip as Unsigned Word SH2a_divs, // Divide as Signed SH2a_divu, // Divide as Unsigned SH2a_jsr_n, // Jump to Subroutine with No delay slot SH2a_ldbank, // Load Register Bank SH2a_movi20, // 20-bit immediate data transfer SH2a_movi20s, // 20-bit immediate data transfer, 8-bit left-shift SH2a_movml_l, // Move Multi-register Lower part SH2a_movmu_l, // Move Multi-register Upper part SH2a_movrt, // Move Reverse T bit SH2a_movu_b, // Move Structure Byte Data as Unsigned SH2a_movu_w, // Move Structure Word Data as Unsigned SH2a_mulr, // Multiply to Register SH2a_nott, // Not T bit SH2a_resbank, // Restore From Register Bank SH2a_rts_n, // Return from Subroutine with No delay slot SH2a_rtv_n, // Return to Value and from Subroutine with No delay slot SH2a_stbank, // Store Register Bank // SH-4a new instructions SH4a_movco_l, // Move Conditional SH4a_movli_l, // Move Linked SH4a_movua_l, // Move Unaligned SH4a_icbi, // Instruction Cache Block Invalidate SH4a_prefi, // Prefetch Instruction Cache Block SH4a_synco, // Synchronize Data Operation SH4a_fsrra, // Floating Point Square Reciprocal Approximate SH4a_fpchg, // PR-bit Change SH4_last, }; /* * Interactive disassembler (IDA). * Zilog Z8 module * */ enum { Z8_null = 0, // Unknown Operation Z8_adc, // Add with carry Z8_add, // Add Z8_and, // Logical AND Z8_call, // Call procedure Z8_ccf, // Complement carry flag Z8_clr, // Clear Z8_com, // Complement Z8_cp, // Compare Z8_da, // Decimal adjust Z8_dec, // Decrement Z8_decw, // Decrement word Z8_di, // Disable interrupts Z8_djnz, // Decrement and jump if non-zero Z8_ei, // Enable interrupts Z8_halt, // Enter HALT mode Z8_inc, // Increment Z8_incw, // Increment word Z8_iret, // Return from interrupt Z8_jp, // Unconditional jump Z8_jpcond, // Conditional jump Z8_jr, // Relative jump Z8_jrcond, // Conditional relative jump Z8_ld, // Load data Z8_ldc, // Load constant Z8_ldci, // Load constant with auto-increment Z8_lde, // Load external data Z8_ldei, // Load external data with auto-increment Z8_nop, // NOP Z8_or, // Logical OR Z8_pop, // Pop Z8_push, // Push Z8_rcf, // Reset carry flag Z8_ret, // Return Z8_rl, // Rotate left Z8_rlc, // Rotate left through carry Z8_rr, // Rotate right Z8_rrc, // Rotate right through carry Z8_sbc, // Subtract with carry Z8_scf, // Set carry flag Z8_sra, // Shift right arithmetic Z8_srp, // Set register pointer Z8_stop, // Enter STOP mode Z8_sub, // Subtract Z8_swap, // Swap nibbles Z8_tm, // Test under mask Z8_tcm, // Test complement under mask Z8_xor, // Logical EXCLUSIVE OR Z8_wdh, // Enable WATCH-DOG in HALT mode Z8_wdt, // Clear WATCH-DOG timer Z8_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * Atmel AVR - 8-bit RISC processor * */ enum { AVR_null = 0, // Unknown Operation // ARITHMETIC AND LOGIC INSTRUCTIONS AVR_add, // Add without Carry AVR_adc, // Add with Carry AVR_adiw, // Add Immediate to Word AVR_sub, // Subtract without Carry AVR_subi, // Subtract Immediate AVR_sbc, // Subtract with Carry AVR_sbci, // Subtract Immediate with Carry AVR_sbiw, // Subtract Immediate from Word AVR_and, // Logical AND AVR_andi, // Logical AND with Immediate AVR_or, // Logical OR AVR_ori, // Logical OR with Immediate AVR_eor, // Exclusive OR AVR_com, // One's Complement AVR_neg, // Two's Complement AVR_sbr, // Set Bit(s) in Register AVR_cbr, // Clear Bit(s) in Register AVR_inc, // Increment AVR_dec, // Decrement AVR_tst, // Test for Zero or Minus AVR_clr, // Clear Register AVR_ser, // Set Register AVR_cp, // Compare AVR_cpc, // Compare with Carry AVR_cpi, // Compare with Immediate AVR_mul, // Multiply // BRANCH INSTRUCTIONS AVR_rjmp, // Relative Jump AVR_ijmp, // Indirect Jump to (Z) AVR_jmp, // Jump AVR_rcall, // Relative Call Subroutine AVR_icall, // Indirect Call to (Z) AVR_call, // Call Subroutine AVR_ret, // Subroutine Return AVR_reti, // Interrupt Return AVR_cpse, // Compare, Skip if Equal AVR_sbrc, // Skip if Bit in Register Cleared AVR_sbrs, // Skip if Bit in Register Set AVR_sbic, // Skip if Bit in I/O Register Cleared AVR_sbis, // Skip if Bit in I/O Register Set AVR_brbs, // Branch if Status Flag Set AVR_brbc, // Branch if Status Flag Cleared AVR_breq, // Branch if Equal AVR_brne, // Branch if Not Equal AVR_brcs, // Branch if Carry Set AVR_brcc, // Branch if Carry Cleared AVR_brsh, // Branch if Same or Higher AVR_brlo, // Branch if Lower AVR_brmi, // Branch if Minus AVR_brpl, // Branch if Plus AVR_brge, // Branch if Greater or Equal AVR_brlt, // Branch if Less Than AVR_brhs, // Branch if Half Carry Flag Set AVR_brhc, // Branch if Half Carry Flag Cleared AVR_brts, // Branch if T Flag Set AVR_brtc, // Branch if T Flag Cleared AVR_brvs, // Branch if Overflow Flag is Set AVR_brvc, // Branch if Overflow Flag is Cleared AVR_brie, // Branch if Interrupt Enabled AVR_brid, // Branch if Interrupt Disabled // DATA TRANSFER INSTRUCTIONS AVR_mov, // Copy Register AVR_ldi, // Load Immediate AVR_lds, // Load Direct AVR_ld, // Load Indirect AVR_ldd, // Load Indirect with Displacement AVR_sts, // Store Direct to SRAM AVR_st, // Store Indirect AVR_std, // Store Indirect with Displacement AVR_lpm, // Load Program Memory AVR_in, // In Port AVR_out, // Out Port AVR_push, // Push Register on Stack AVR_pop, // Pop Register from Stack // BIT AND BIT-TEST INSTRUCTIONS AVR_lsl, // Logical Shift Left AVR_lsr, // Logical Shift Right AVR_rol, // Rotate Left Through Carry AVR_ror, // Rotate Right Through Carry AVR_asr, // Arithmetic Shift Right AVR_swap, // Swap Nibbles AVR_bset, // Flag Set AVR_bclr, // Flag Clear AVR_sbi, // Set Bit in I/O Register AVR_cbi, // Clear Bit in I/O Register AVR_bst, // Bit Store from Register to T AVR_bld, // Bit load from T to Register AVR_sec, // Set Carry AVR_clc, // Clear Carry AVR_sen, // Set Negative Flag AVR_cln, // Clear Negative Flag AVR_sez, // Set Zero Flag AVR_clz, // Clear Zero Flag AVR_sei, // Global Interrupt Enable AVR_cli, // Global Interrupt Disable AVR_ses, // Set Signed Test Flag AVR_cls, // Clear Signed Test Flag AVR_sev, // Set Two's Complement Overflow AVR_clv, // Clear Two's Complement Overflow AVR_set, // Set T in SREG AVR_clt, // Clear T in SREG AVR_seh, // Set Half Carry Flag in SREG AVR_clh, // Clear Half Carry Flag in SREG AVR_nop, // No Operation AVR_sleep, // Sleep AVR_wdr, // Watchdog Reset // New MegaAVR instructions AVR_elpm, // Extended Load Program Memory AVR_espm, // Extended Store Program Memory AVR_fmul, // Fractional Multiply Unsigned AVR_fmuls, // Fractional Multiply Signed AVR_fmulsu, // Fractional Multiply Signed with Unsigned AVR_movw, // Copy Register Word AVR_muls, // Multiply Signed AVR_mulsu, // Multiply Signed with Unsigned AVR_spm, // Store Program Memory AVR_eicall, // Extended Indirect Call to Subroutine AVR_eijmp, // Extended Indirect Jump // New XMega instructions AVR_des, // Data Encryption Standard AVR_lac, // Load And Clear AVR_las, // Load And Set AVR_lat, // Load And Toggle AVR_xch, // Exchange AVR_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { MIPS_null = 0, // Unknown Operation // The core processor instructions MIPS_add, // Add MIPS_addu, // Add Unsigned MIPS_and, // AND MIPS_dadd, // Doubleword Add MIPS_daddu, // Doubleword Add Unsigned MIPS_dsub, // Doubleword Subtract MIPS_dsubu, // Doubleword Subtract Unsigned MIPS_nor, // NOR MIPS_or, // OR MIPS_slt, // Set on Less Than MIPS_sltu, // Set on Less Than Unsigned MIPS_sub, // Subtract MIPS_subu, // Subtract Unsigned MIPS_xor, // Exclusive OR MIPS_dsll, // Doubleword Shift Left Logical MIPS_dsll32, // Doubleword Shift Left Logical + 32 MIPS_dsra, // Doubleword Shift Right Arithmetic MIPS_dsra32, // Doubleword Shift Right Arithmetic + 32 MIPS_dsrl, // Doubleword Shift Right Logical MIPS_dsrl32, // Doubleword Shift Right Logical + 32 MIPS_sll, // Shift Left Logical MIPS_sra, // Shift Right Arithmetic MIPS_srl, // Shift Right Logical MIPS_dsllv, // Doubleword Shift Left Logical Variable MIPS_dsrav, // Doubleword Shift Right Arithmetic Variable MIPS_dsrlv, // Doubleword Shift Right Logical Variable MIPS_sllv, // Shift Left Logical Variable MIPS_srav, // Shift Right Arithmetic Variable MIPS_srlv, // Shift Right Logical Variable MIPS_addi, // Add Immediate MIPS_addiu, // Add Immediate Unsigned MIPS_daddi, // Doubleword Add Immediate MIPS_daddiu, // Doubleword Add Immediate Unsigned MIPS_slti, // Set on Less Than Immediate MIPS_sltiu, // Set on Less Than Immediate Unsigned MIPS_andi, // AND Immediate MIPS_ori, // OR Immediate MIPS_xori, // Exclusive OR Immediate MIPS_teq, // Trap if Equal MIPS_tge, // Trap if Greater Than or Equal MIPS_tgeu, // Trap if Greater Than or Equal Unsigned MIPS_tlt, // Trap if Less Than MIPS_tltu, // Trap if Less Than Unsigned MIPS_tne, // Trap if Not Equal MIPS_cfc1, // Move Control From FPU MIPS_cfc2, // Move Control From Coprocessor 2 MIPS_ctc1, // Move Control to FPU MIPS_ctc2, // Move Control to Coprocessor 2 MIPS_dmfc0, // Doubleword Move From CP0 MIPS_qmfc2, // Quadword Move From CP2 MIPS_dmtc0, // Doubleword Move To CP0 MIPS_qmtc2, // Quadword Move To CP2 MIPS_mfc0, // Move from CP0 MIPS_mfc1, // Move from FPU MIPS_mfc2, // Move from CP2 MIPS_mtc0, // Move to CP0 MIPS_mtc1, // Move to FPU MIPS_mtc2, // Move to CP2 MIPS_teqi, // Trap if Equal Immediate MIPS_tgei, // Trap if Greater Than or Equal Immediate MIPS_tgeiu, // Trap if Greater Than or Equal Immediate Unsigned MIPS_tlti, // Trap if Less Than Immediate MIPS_tltiu, // Trap if Less Than Immediate Unsigned MIPS_tnei, // Trap if Not Equal Immediate MIPS_ddiv, // Doubleword Divide MIPS_ddivu, // Doubleword Divide Unsigned MIPS_div, // Divide MIPS_divu, // Divide Unsigned MIPS_dmult, // Doubleword Multiply MIPS_dmultu, // Doubleword Multiply Unsigned MIPS_mult, // Multiply MIPS_multu, // Multiply Unsigned MIPS_mthi, // Move To HI MIPS_mtlo, // Move To LO MIPS_mfhi, // Move From HI MIPS_mflo, // Move From LO MIPS_cop0, // Coprocessor 0 Operation MIPS_cop1, // FPU Operation MIPS_cop2, // Coprocessor 2 Operation MIPS_break, // Break MIPS_syscall, // System Call MIPS_bc0f, // Branch on Coprocessor 0 False MIPS_bc1f, // Branch on FPU False MIPS_bc2f, // Branch on Coprocessor 2 False MIPS_bc3f, // Branch on Coprocessor 3 False MIPS_bc0fl, // Branch on Coprocessor 0 False Likely MIPS_bc1fl, // Branch on FPU False Likely MIPS_bc2fl, // Branch on Coprocessor 2 False Likely MIPS_bc3fl, // Branch on Coprocessor 3 False Likely MIPS_bc0t, // Branch on Coprocessor 0 True MIPS_bc1t, // Branch on FPU True MIPS_bc2t, // Branch on Coprocessor 2 True MIPS_bc3t, // Branch on Coprocessor 3 True MIPS_bc0tl, // Branch on Coprocessor 0 True Likely MIPS_bc1tl, // Branch on FPU True Likely MIPS_bc2tl, // Branch on Coprocessor 2 True Likely MIPS_bc3tl, // Branch on Coprocessor 3 True Likely MIPS_bgez, // Branch on Greater Than or Equal to Zero MIPS_bgezal, // Branch on Greater Than or Equal to Zero And Link MIPS_bgezall, // Branch on Greater Than or Equal to Zero And Link Likely MIPS_bgezl, // Branch on Greater Than or Equal to Zero Likely MIPS_bgtz, // Branch on Greater Than Zero MIPS_bgtzl, // Branch on Greater Than Zero Likely MIPS_blez, // Branch on Less Than or Equal to Zero MIPS_blezl, // Branch on Less Than or Equal to Zero Likely MIPS_bltz, // Branch on Less Than Zero MIPS_bltzal, // Branch on Less Than Zero And Link MIPS_bltzall, // Branch on Less Than Zero And Link Likely MIPS_bltzl, // Branch on Less Than Zero Likely MIPS_beq, // Branch on Equal MIPS_beql, // Branch on Equal Likely MIPS_bne, // Branch on Not Equal MIPS_bnel, // Branch on Not Equal Likely MIPS_jalr, // Jump And Link Register MIPS_j, // Jump MIPS_jr, // Jump Register MIPS_jal, // Jump And Link MIPS_jalx, // Jump And Link And Exchange MIPS_cache, // Cache Operation MIPS_lb, // Load Byte MIPS_lbu, // Load Byte Unsigned MIPS_ldl, // Load Doubleword Left MIPS_ldr, // Load Doubleword Right MIPS_lwl, // Load Word Left MIPS_lwr, // Load Word Right MIPS_ld, // Load Doubleword MIPS_lld, // Load Linked Doubleword MIPS_ldc1, // Load Double FPU MIPS_ldc2, // Load Double Coprocessor 2 MIPS_ll, // Load Linked MIPS_lw, // Load Word MIPS_lwu, // Load Word Unsigned MIPS_lh, // Load Halfword MIPS_lhu, // Load Halfword Unsigned MIPS_lui, // Load Upper Immediate MIPS_lwc1, // Load Word to FPU MIPS_lwc2, // Load Word to Coprocessor 2 MIPS_sb, // Store Byte MIPS_sdl, // Store Doubleword Left MIPS_sdr, // Store Doubleword Right MIPS_swl, // Store Word Left MIPS_swr, // Store Word Right MIPS_scd, // Store Conditional Doubleword MIPS_sd, // Store Doubleword MIPS_sdc1, // Store Double FPU MIPS_sdc2, // Store Double Coprocessor 2 MIPS_sc, // Store Conditional MIPS_sw, // Store Word MIPS_sh, // Store Halfword MIPS_swc1, // Store Word from FPU MIPS_swc2, // Store Word from Coprocessor 2 MIPS_sync, // Sync // Coprocessor 0 instructions MIPS_eret, // Exception Return MIPS_tlbp, // Probe TLB for Matching Entry MIPS_tlbr, // Read Indexed TLB Entry MIPS_tlbwi, // Write Indexed TLB Entry MIPS_tlbwr, // Write Random TLB Entry // Coprocessor 1 (FPU) instructions MIPS_fadd, // Floating-point Add MIPS_fsub, // Floating-point Subtract MIPS_fmul, // Floating-point Multiply MIPS_fdiv, // Floating-point Divide MIPS_fabs, // Floating-point Absolute Value MIPS_fcvt_s, // Floating-point Convert to Single Fixed-Point Format MIPS_fcvt_d, // Floating-point Convert to Double Floating-Point Format MIPS_fcvt_w, // Floating-point Convert to Fixed-Point Format MIPS_fcvt_l, // Floating-point Convert to Long Fixed-Point Format MIPS_fround_l, // Floating-point Round to Long Fixed-Point Format MIPS_ftrunc_l, // Floating-point Truncate to Long Fixed-Point Format MIPS_fceil_l, // Floating-point Ceiling to Long Fixed-Point Format MIPS_ffloor_l, // Floating-point Floor to Long Fixed-Point Format MIPS_fround_w, // Floating-point Round to Single Fixed-Point Format MIPS_ftrunc_w, // Floating-point Truncate to Single Fixed-Point Format MIPS_fceil_w, // Floating-point Ceiling to Single Fixed-Point Format MIPS_ffloor_w, // Floating-point Floor to Single Fixed-Point Format MIPS_fmov, // Floating-point Move MIPS_fneg, // Floating-point Negate MIPS_fsqrt, // Floating-point Square Root MIPS_fc_f, // Floating-point Compare MIPS_fc_un, // Floating-point Compare MIPS_fc_eq, // Floating-point Compare MIPS_fc_ueq, // Floating-point Compare MIPS_fc_olt, // Floating-point Compare MIPS_fc_ult, // Floating-point Compare MIPS_fc_ole, // Floating-point Compare MIPS_fc_ule, // Floating-point Compare MIPS_fc_sf, // Floating-point Compare MIPS_fc_ngle, // Floating-point Compare MIPS_fc_seq, // Floating-point Compare MIPS_fc_ngl, // Floating-point Compare MIPS_fc_lt, // Floating-point Compare MIPS_fc_nge, // Floating-point Compare MIPS_fc_le, // Floating-point Compare MIPS_fc_ngt, // Floating-point Compare // Pseudo instructions MIPS_nop, // No operation MIPS_mov, // Move register MIPS_neg, // Negate MIPS_negu, // Negate Unsigned MIPS_bnez, // Branch on Not Zero MIPS_bnezl, // Branch on Not Zero Likely MIPS_beqz, // Branch on Zero MIPS_beqzl, // Branch on Zero Likely MIPS_b, // Branch Always MIPS_bal, // Branch Always and Link MIPS_li, // Load Immediate MIPS_la, // Load Address // MIPS IV instructions MIPS_pref, // Prefetch MIPS_ldxc1, // Load Doubleword Indexed to Floating Point MIPS_lwxc1, // Load Word Indexed to Floating Point MIPS_sdxc1, // Store Doubleword Indexed from Floating Point MIPS_swxc1, // Store Word Indexed from Floating Point MIPS_madd_s, // Floating-Point Multiply Add MIPS_madd_d, // Floating-Point Multiply Add MIPS_msub_s, // Floating-Point Multiply Subtract MIPS_msub_d, // Floating-Point Multiply Subtract MIPS_movf, // Move Conditional on FP False MIPS_movt, // Move Conditional on FP True MIPS_movn, // Move Conditional on Not Zero MIPS_movz, // Move Conditional on Zero MIPS_fmovf, // Floating-Point Move Conditional on FP False MIPS_fmovt, // Floating-Point Move Conditional on FP True MIPS_fmovn, // Floating-Point Move Conditional on Not Zero MIPS_fmovz, // Floating-Point Move Conditional on Zero MIPS_nmadd_s, // Floating-Pont Negative Multiply Add MIPS_nmadd_d, // Floating-Pont Negative Multiply Add MIPS_nmsub_s, // Floating-Pont Negative Multiply Subtract MIPS_nmsub_d, // Floating-Pont Negative Multiply Subtract MIPS_prefx, // Prefetch Indexed MIPS_frecip, // Reciprocal Approximation MIPS_frsqrt, // Reciprocal Suare Root Approximation // RSP instructions MIPS_lbv, // Load Byte into Vector MIPS_lsv, // Load Short into Vector MIPS_llv, // Load Word into Vector MIPS_ldv, // Load Doubleword into Vector MIPS_lqv, // Load Quadword into Vector MIPS_lrv, // Load Rest Vector MIPS_lpv, // Load Packed Vector MIPS_luv, // Load Unpack Vector MIPS_lhv, // Load Half Vector MIPS_lfv, // Load Fourth Vector MIPS_lwv, // Load Wrap Vector MIPS_ltv, // Load Transpose Vector MIPS_sbv, // Store Byte from Vector MIPS_ssv, // Store Short from Vector MIPS_slv, // Store Word from Vector MIPS_sdv, // Store Doubleword from Vector MIPS_sqv, // Store Quadword from Vector MIPS_srv, // Store Rest Vector MIPS_spv, // Store Packed Vector MIPS_suv, // Store Unpack Vector MIPS_shv, // Store Half Vector MIPS_sfv, // Store Fourth Vector MIPS_swv, // Store Wrap Vector MIPS_stv, // Store Transpose Vector MIPS_vmulf, // Vector (Frac) Multiply MIPS_vmacf, // Vector (Frac) Multiply Accumulate MIPS_vmulu, // Vector (Unsigned Frac) Multiply MIPS_vmacu, // Vector (Unsigned Frac) Multiply Accumulate MIPS_vrndp, // Vector DCT Round (+) MIPS_vrndn, // Vector DCT Round (-) MIPS_vmulq, // Vector (Integer) Multiply MIPS_vmacq, // Vector (Integer) Multiply Accumulate MIPS_vmudh, // Vector (High) Multiply MIPS_vmadh, // Vector (High) Multiply Accumulate MIPS_vmudm, // Vector (Mid-M) Multiply MIPS_vmadm, // Vector (Mid-M) Multiply Accumulate MIPS_vmudn, // Vector (Mid-N) Multiply MIPS_vmadn, // Vector (Mid-N) Multiply Accumulate MIPS_vmudl, // Vector (Low) Multiply MIPS_vmadl, // Vector (Low) Multiply Accumulate MIPS_vadd, // Vector Add MIPS_vsub, // Vector Subtract MIPS_vsut, // Vector SUT (vt - vs) MIPS_vabs, // Vector Absolute Value MIPS_vaddc, // Vector ADDC MIPS_vsubc, // Vector SUBC MIPS_vaddb, // Vector Add Byte MIPS_vsubb, // Vector Subtract Byte MIPS_vaccb, // Vector Add Byte/Add Accumulator MIPS_vsucb, // Vector Subtract Byte/Add Accumulator MIPS_vsad, // Vector SAD MIPS_vsac, // Vector SAC MIPS_vsum, // Vector SUM MIPS_vsaw, // Vector SAW MIPS_vlt, // Vector Less Than MIPS_veq, // Vector Equal To MIPS_vne, // Vector Not Equal To MIPS_vge, // Vector Greater Than or Equal To MIPS_vcl, // Vector Clip Low MIPS_vch, // Vector Clip High MIPS_vcr, // Vector 1's Complement Clip MIPS_vmrg, // Vector Merge MIPS_vand, // Vector Logical AND MIPS_vnand, // Vector Logical NAND MIPS_vor, // Vector Logical OR MIPS_vnor, // Vector Logical NOR MIPS_vxor, // Vector Logical Exclusive OR MIPS_vnxor, // Vector Logical NOT Exclusive OR MIPS_vnoop, // Vector No-Operation MIPS_vmov, // Vector Scalar-Element Move MIPS_vrcp, // Single Precision, Lookup Source, Write Result MIPS_vrsq, // Single Precision, Lookup Source, Write Result MIPS_vrcph, // Set Source, Write Previous Result MIPS_vrsqh, // Set Source, Write Previous Result MIPS_vrcpl, // Lookup Source and Previous, Write Result MIPS_vrsql, // Lookup Source and Previous, Write Result MIPS_vinst, // Vector Insert Triple (5/5/5/1) MIPS_vextt, // Vector Extract Triple (5/5/5/1) MIPS_vinsq, // Vector Insert Quad (4/4/4/4) MIPS_vextq, // Vector Extract Quad (4/4/4/4) MIPS_vinsn, // Vector Insert Nibble (4/4/4/4) Sign-Extended MIPS_vextn, // Vector Insert Nibble (4/4/4/4) Sign-Extended MIPS_cfc0, // Move Control From Coprocessor 0 MIPS_ctc0, // Move Control to Coprocessor 0 // R5900 (PSX2 or PlayStation2) processor additional commands MIPS_mtsa, // Move To Shift Amount Register MIPS_R5900_first = MIPS_mtsa, MIPS_mfsa, // Move From Shift Amount Register MIPS_mtsab, // Move Byte Count To Shift Amount Register MIPS_mtsah, // Move Halfword Count To Shift Amount Register MIPS_fadda, // Floating-point add to accumulator MIPS_fsuba, // Floating-point subtract to accumulator MIPS_fmula, // Floating-point multiply to accumulator MIPS_fmadda, // Floating-point multiply and add to accumulator MIPS_fmsuba, // Floating-point multiply and subtract from accumulator MIPS_fmadd, // Floating-point multiply and add MIPS_fmsub, // Floating-point multiply and subtract MIPS_fmax, // Floating-point maximum MIPS_fmin, // Floating-point minimum MIPS_plzcw, // Parallel Leading Zero or One Count Word MIPS_mthi1, // Move To HI1 Register MIPS_mtlo1, // Move To LO1 Register MIPS_pmthl_lw, // Parallel Move From HI/LO Register MIPS_pmthi, // Parallel Move To HI Register MIPS_pmtlo, // Parallel Move To LO Register MIPS_div1, // Divide Pipeline 1 MIPS_divu1, // Divide Unsigned Pipeline 1 MIPS_pdivw, // Parallel Divide Word MIPS_pdivuw, // Parallel Divide Unsigned Word MIPS_pdivbw, // Parallel Divide Broadcast Word MIPS_paddw, // Parallel Add Word MIPS_pmaddw, // Parallel Multiply-Add Word MIPS_mult1, // Multiply Pipeline 1 MIPS_multu1, // Multiply Unsigned Pipeline 1 MIPS_madd1, // Multiply-Add Pipeline 1 MIPS_maddu1, // Multiply-Add Unsigned Pipeline 1 MIPS_pmadduw, // Parallel Multiply-Add Unsigned Word MIPS_psubw, // Parallel Subtract HalfWord MIPS_pcgtw, // Parallel Compare for Greater Than Word MIPS_psllvw, // Parallel Shift Left Logical Variable Word MIPS_pceqw, // Parallel Compare for Equal Word MIPS_pmaxw, // Parallel Maximize Word MIPS_psrlvw, // Parallel Shift Right Logical Variable Word MIPS_pminw, // Parallel Minimize Word MIPS_psravw, // Parallel Shift Right Arithmetic Variable Word MIPS_paddh, // Parallel Add Halfword MIPS_pmsubw, // Parallel Multiply-Subtract Word MIPS_padsbh, // Parallel Add/Subtract Halfword MIPS_psubh, // Parallel Subtract Halfword MIPS_pcgth, // Parallel Compare for Greater Than Halfword MIPS_pceqh, // Parallel Compare for Equal Halfword MIPS_pmaxh, // Parallel Maximize Halfword MIPS_pminh, // Parallel Minimize Halfword MIPS_paddb, // Parallel Add Byte MIPS_psubb, // Parallel Subtract Byte MIPS_pcgtb, // Parallel Compare for Greater Than Byte MIPS_pinth, // Parallel Interleave Halfword MIPS_pceqb, // Parallel Compare for Equal Byte MIPS_pintoh, // Parallel Interleave Odd Halfword MIPS_pmultw, // Parallel Multiply Word MIPS_pmultuw, // Parallel Multiply Unsigned Word MIPS_pcpyld, // Parallel Copy Lower Doubleword MIPS_pcpyud, // Parallel Copy Upper Doubleword MIPS_paddsw, // Parallel Add with Signed Saturation Word MIPS_pmaddh, // Parallel Multiply-Add Halfword MIPS_padduw, // Parallel Add with Unsigned Saturation Word MIPS_psubsw, // Parallel Subtract with Signed Saturation Word MIPS_phmadh, // Parallel Horizontal Multiply-Add Halfword MIPS_psubuw, // Parallel Subtract with Unsigned Saturation Word MIPS_pextlw, // Parallel Extend Lower from Word MIPS_pand, // Parallel AND MIPS_pextuw, // Parallel Extend Upper from Word MIPS_por, // Parallel OR MIPS_ppacw, // Paralle Pack to Word MIPS_pxor, // Parallel XOR MIPS_pnor, // Parallel NOR MIPS_paddsh, // Parallel Add with Signed Saturation Halfword MIPS_pmsubh, // Parallel Multiply-Subtract Halfword MIPS_padduh, // Parallel Add with Unsigned Saturation Halfword MIPS_psubsh, // Parallel Subtract with Signed Saturation Halfword MIPS_phmsbh, // Parallel Horizontal Multiply-Subtract Halfword MIPS_psubuh, // Parallel Subtract with Unsigned Saturation Halfword MIPS_pextlh, // Parallel Extend Lower from Halfword MIPS_pextuh, // Parallel Extend Upper from Halfword MIPS_ppach, // Paralle Pack to Halfword MIPS_paddsb, // Parallel Add with Signed Saturation Byte MIPS_paddub, // Parallel Add with Unsigned Saturation Byte MIPS_psubsb, // Parallel Subtract with Signed Saturation Byte MIPS_psubub, // Parallel Subtract with Unsigned Saturation Byte MIPS_pextlb, // Parallel Extend Lower from Byte MIPS_pextub, // Parallel Extend Upper from Byte MIPS_ppacb, // Paralle Pack to Byte MIPS_qfsrv, // Quadword Funnel Shift Right Variable MIPS_pmulth, // Parallel Multiply Halfword MIPS_pabsw, // Parallel Absolute Word MIPS_pabsh, // Parallel Absolute Halfword MIPS_pexoh, // Parallel Exchange Odd Halfword MIPS_pexch, // Parallel Exchange Center Halfword MIPS_prevh, // Parallel Reverse Halfword MIPS_pcpyh, // Parallel Copy Halfword MIPS_pext5, // Parallel Extend Upper from 5 bits MIPS_pexow, // Parallel Exchange Odd Word MIPS_pexcw, // Parallel Exchange Center Word MIPS_ppac5, // Parallel Pack to 5 bits MIPS_prot3w, // Parallel Rotate 3 Words MIPS_psllh, // Parallel Shift Left Logical Halfword MIPS_psrlh, // Parallel Shift Right Logical Halfword MIPS_psrah, // Parallel Shift Right Arithmetic Halfword MIPS_psllw, // Parallel Shift Left Logical Word MIPS_psrlw, // Parallel Shift Right Logical Word MIPS_psraw, // Parallel Shift Right Arithmetic Word MIPS_mfhi1, // Move From HI1 Register MIPS_mflo1, // Move From LO1 Register MIPS_pmfhi, // Parallel Move From HI Register MIPS_pmflo, // Parallel Move From LO Register MIPS_pmfhl, // Parallel Move From HI/LO Register MIPS_lq, // Load Quadword MIPS_sq, // Store Quadword MIPS_lqc2, // Load Quadword Coprocessor 2 MIPS_sqc2, // Store Quadword Coprocessor 2 MIPS_madd_r5900, // Multiply/Add MIPS_maddu_r5900, // Multiply/Add Unsigned MIPS_R5900_last = MIPS_maddu_r5900, MIPS_mult3, // Multiply (3-operand) MIPS_multu3, // Multiply Unsigned (3-operand) // 16-bit instructions // NOTE: in previous version of IDA, all mips16 instructions // had separate numbers, even for the instructions with the // same mnemonics. Now same mnemonics have the same numbers, // regardless of the encoding. MIPS_bteqz=439, // Branch on T Equal to Zero MIPS_btnez, // Branch on T Not Equal to Zero MIPS_cmp, // Compare MIPS_cmpi, // Compare Immediate MIPS_extend=458, // Extend MIPS_move=473, // Move MIPS_not=477, // Not MIPS_dla=495, // Load 64-bit address // Instructions which belong to MIPS32 but which were not decoded by IDA MIPS_clo=498, // Count Leading Ones in Word MIPS_clz, // Count Leading Zeros in Word MIPS_madd, // Multiply/Add MIPS_maddu, // Multiply/Add Unsigned MIPS_msub, // Multiply and Subtract Word to Hi,Lo MIPS_msubu, // Multiply and Subtract Word to Hi,Lo MIPS_mul, // Multiply Word to GPR MIPS_sdbbp, // Software Debug Breakpoint MIPS_wait, // Enter Standby Mode // New instructions for MIPS32 Release 2.0 MIPS_alnv_ps, // Floating Point Align Variable MIPS_deret, // Debug Exception Return MIPS_di, // Disable interrupts MIPS_ehb, // Execution Hazard Barrier MIPS_ei, // Enable interrupts MIPS_ext, // Extract Bit Field MIPS_fcvt_ps, // Floating Point Convert Pair to Paired Single MIPS_fcvt_s_pl, // Floating Point Convert Pair Lower to Single Floating Point MIPS_fcvt_s_pu, // Floating Point Convert Pair Upper to Single Floating Point MIPS_ins, // Insert Bit Field MIPS_jalr_hb, // Jump and Link Register with Hazard Barrier MIPS_jr_hb, // Jump Register with Hazard Barrier MIPS_luxc1, // Load Doubleword Indexed Unaligned to Floating Point MIPS_madd_ps, // Floating Point Multiply Add MIPS_mfhc1, // Move Word from High Half of Floating Point Register MIPS_mfhc2, // Move Word from High Half of Coprocessor 2 Register MIPS_msub_ps, // Floating Point Multiply Subtract MIPS_mthc1, // Move Word to High Half of Floating Point Register MIPS_mthc2, // Move Word to High Half of Coprocessor 2 Register MIPS_nmadd_ps, // Floating Point Negative Multiply Add MIPS_nmsub_ps, // Floating Point Negative Multiply Subtract MIPS_pll, // Pair Lower Lower MIPS_plu, // Pair Lower Upper MIPS_pul, // Pair Upper Lower MIPS_puu, // Pair Upper Upper MIPS_rdhwr, // Read Hardware Register MIPS_rdpgpr, // Read GPR from Previous Shadow Set MIPS_rotr, // Rotate Word Right MIPS_rotrv, // Rotate Word Right Variable MIPS_seb, // Sign-Extend Byte MIPS_seh, // Sign-Extend Halfword MIPS_suxc1, // Store Doubleword Indexed Unaligned from Floating Point MIPS_synci, // Synchronize Caches to Make Instruction Writes Effective MIPS_wrpgpr, // Write GPR to Previous Shadow Set MIPS_wsbh, // Word Swap Bytes Within Halfwords // Missing instructions - for some reason they were not supported before MIPS_dmfc1, // Doubleword Move From CP1 MIPS_dmtc1, // Doubleword Move To CP1 // additional MIPS16e instructions MIPS_save, // Save Registers and Set Up Stack Frame MIPS_restore, // Restore Registers and Deallocate Stack Frame MIPS_jalrc, // Jump and Link Register, Compact MIPS_jrc, // Jump Register, Compact MIPS_sew, // Sign-Extend Word MIPS_zeb, // Zero-Extend Byte MIPS_zeh, // Zero-Extend Halfword MIPS_zew, // Zero-Extend Word // extra pseudoinstructions MIPS_ssnop, // Superscalar No operation MIPS_li_s, // Load floating-point immediate MIPS_li_d, // Load floating-point immediate MIPS_dneg, // Negate MIPS_dnegu, // Negate Unsigned MIPS_pause, // Wait for the LLBit to clear // Missing instructions from MIPS64 Release 2 MIPS_dclo, // Count Leading Ones in Doubleword MIPS_dclz, // Count Leading Zeros in Doubleword MIPS_dext, // Doubleword Extract Bit Field MIPS_dextm, // Doubleword Extract Bit Field Middle MIPS_dextu, // Doubleword Extract Bit Field Upper MIPS_dins, // Doubleword Insert Bit Field MIPS_dinsm, // Doubleword Insert Bit Field Middle MIPS_dinsu, // Doubleword Insert Bit Field Upper MIPS_dmfc2, // Doubleword Move From CP2 MIPS_dmtc2, // Doubleword Move To CP2 MIPS_drotr, // Doubleword Rotate Right MIPS_drotr32, // Doubleword Rotate Right Plus 32 MIPS_drotrv, // Doubleword Rotate Right Variable MIPS_dsbh, // Doubleword Swap Bytes Within Halfwords MIPS_dshd, // Doubleword Swap Halfwords Within Doublewords // cnMIPS (Cavium Networks Octeon) instructions MIPS_baddu, // Unsigned Byte Add MIPS_bbit0, // Branch on Bit Clear MIPS_bbit032, // Branch on Bit Clear Plus 32 MIPS_bbit1, // Branch on Bit Set MIPS_bbit132, // Branch on Bit Set Plus 32 MIPS_cins, // Clear and Insert a Bit Field MIPS_cins32, // Clear and Insert a Bit Field Plus 32 MIPS_dmul, // Multiply Doubleword to GPR MIPS_dpop, // Count Ones in a Doubleword MIPS_exts, // Extract a Signed Bit Field MIPS_exts32, // Extract a Signed Bit Field Plus 32 MIPS_mtm0, // Load Multiplier Register MPL0 MIPS_mtm1, // Load Multiplier Register MPL1 MIPS_mtm2, // Load Multiplier Register MPL2 MIPS_mtp0, // Load Multiplier Register P0 MIPS_mtp1, // Load Multiplier Register P1 MIPS_mtp2, // Load Multiplier Register P2 MIPS_pop, // Count Ones in a Word MIPS_saa, // Store Atomic Add Word MIPS_saad, // Store Atomic Add Double Word MIPS_seq, // Set on Equal MIPS_seqi, // Set on Equal Immediate MIPS_sne, // Set on Not Equal MIPS_snei, // Set on Not Equal Immediate MIPS_synciobdma, // Synchronize IOBDMAs MIPS_syncs, // Synchronize Special MIPS_syncw, // Synchronize Stores MIPS_syncws, // Synchronize Stores Special MIPS_uld, // Unaligned Load Doubleword MIPS_ulw, // Unaligned Load Word MIPS_usd, // Unaligned Store Doubleword MIPS_usw, // Unaligned Store Word MIPS_v3mulu, // 192-bit x 64-bit Unsigned Multiply and Add MIPS_vmm0, // 64-bit Unsigned Multiply and Add Move MIPS_vmulu_cn, // 64-bit Unsigned Multiply and Add // NEC VR5432 and PSP instructions MIPS_dbreak, // Debug Break MIPS_dret, // Debug Return MIPS_mfdr, // Move from Debug Register MIPS_mtdr, // Move to Debug Register // Allegrex (Sony PSP) instructions PSP_bitrev, // Bit reverse PSP_max, // Maximum PSP_min, // Minimum PSP_mfic, // Move from interrupt controller PSP_mtic, // Move to interrupt controller PSP_wsbw, // Word Swap Bytes Within Word PSP_sleep, // Sleep // Allegrex VFPU instructions PSP_lv, // Load Vector PSP_lvl, // Load Vector Left PSP_lvr, // Load Vector Right PSP_sv, // Store Vector PSP_svl, // Store Vector Left PSP_svr, // Store Vector Right PSP_mfv, // Move from VFPU PSP_mtv, // Move to VFPU PSP_mfvc, // Move Control from VFPU PSP_mtvc, // Move Control to VFPU PSP_bvf, // Branch on VFPU False PSP_bvt, // Branch on VFPU True PSP_bvfl, // Branch on VFPU False Likely PSP_bvtl, // Branch on VFPU True Likely PSP_vnop, // VFPU no-op PSP_vflush, // VFPU flush PSP_vsync, // VFPU sync PSP_vabs, // Vector absolute value PSP_vadd, // Vector add PSP_vasin, // Vector arcsine PSP_vavg, // Vector average PSP_vbfy1, // IDCT butterfly 1 PSP_vbfy2, // IDCT butterfly 2 PSP_vc2i, // Vector convert signed char to integer PSP_vcmovf, // Vector move if condition field is true PSP_vcmovt, // Vector move if condition field is false PSP_vcmp, // Vector compare and set condition fields PSP_vcos, // Vector cosine PSP_vcrs, // Vector cross multiplication: vd = [y1*z2, z1*x2, x1*y2] PSP_vcrsp, // Vector cross product PSP_vcst, // Set constant PSP_vdet, // Determinant PSP_vdiv, // Vector divide PSP_vdot, // Vector dot product PSP_vexp2, // Vector exponent of 2 (2^x) PSP_vf2h, // Vector convert float single to half precision PSP_vf2id, // Vector convert float to integer, round down PSP_vf2in, // Vector convert float to integer, round to nearest PSP_vf2iu, // Vector convert float to integer, round up PSP_vf2iz, // Vector convert float to integer, round toward zero PSP_vfad, // Vector funnel add (sum components) PSP_vfim, // Set floating-point immediate PSP_vh2f, // Vector convert float half to single precision PSP_vhdp, // Vector homogenous dot product PSP_vhtfm2, // Homogenous transform vector by matrix PSP_vhtfm3, // Homogenous transform vector by matrix PSP_vhtfm4, // Homogenous transform vector by matrix PSP_vi2c, // Vector convert integer to signed char PSP_vi2f, // Vector convert integer to float PSP_vi2s, // Vector convert integer to signed short PSP_vi2uc, // Vector convert integer to unsigned char PSP_vi2us, // Vector convert integer to unsigned short PSP_vidt, // Set vector to identity PSP_viim, // Set integer immediate PSP_vlgb, // PSP_vlog2, // Vector logarithm base 2 PSP_vmax, // Vector maximum values PSP_vmfvc, // Vector move from control register PSP_vmidt, // Set matrix to identity PSP_vmin, // Vector minimum values PSP_vmmov, // Move matrix PSP_vmmul, // Matrix multiply PSP_vmone, // Set matrix to ones PSP_vmov, // Move vector PSP_vmscl, // Scale matrix by PSP_vmtvc, // Vector move to control register PSP_vmul, // Vector multiply PSP_vmzero, // Set matrix to zeroes PSP_vneg, // Vector negate PSP_vnrcp, // Vector negative reciprocal (-1/x) PSP_vnsin, // Vector negative sine PSP_vocp, // Vector one complement (1-x) PSP_vone, // Set vector to ones PSP_vpfxd, // Set prefix operation for vd PSP_vpfxs, // Set prefix operation for vs PSP_vpfxt, // Set prefix operation for vt PSP_vqmul, // Quaternion multiply PSP_vrcp, // Vector reciprocal (1/x) PSP_vrexp2, // Vector reciprocal exponent of 2 (1/(2^x)) PSP_vrndf1, // Vector generate pseudorandom float (1.0 ~ 2.0) PSP_vrndf2, // Vector generate pseudorandom float (2.0 ~ 4.0) PSP_vrndi, // Vector generate pseudorandom integer PSP_vrnds, // Vector set pseudorandom seed PSP_vrot, // Rotate vector PSP_vrsq, // Vector reciprocal square root (1/sqrt(x)) PSP_vs2i, // Vector convert signed short to integer PSP_vsat0, // Vector saturate to range 0..1 PSP_vsat1, // Vector saturate to range -1..1 PSP_vsbn, // Vector scale by 2^x, round to nearest PSP_vsbz, // Vector scale by 2^x, round towards zero PSP_vscl, // Vector scale by PSP_vscmp, // Vector set signed compare PSP_vsge, // Vector set results for greater than or equal PSP_vsgn, // Vector get sign PSP_vsin, // Vector sine PSP_vslt, // Vector set results for less PSP_vsocp, // Vector split and one complement PSP_vsqrt, // Vector square root PSP_vsrt1, // Vector sort 1: vd = min(x,y), max(x,y), min(z,w), max(z,w) PSP_vsrt2, // Vector sort 2: vd = min(x,w), max(y,z), min(y,z), max(x,w) PSP_vsrt3, // Vector sort 3: vd = max(x,y), min(x,y), max(z,w), min(z,w) PSP_vsrt4, // Vector sort 4: vd = max(x,w), max(y,z), min(y,z), max(x,w) PSP_vsub, // Vector subtract PSP_vt4444, // Transform color RGBA8888 to RGBA4444 PSP_vt5551, // Transform color RGBA8888 to RGBA5551 PSP_vt5650, // Transform color RGB888 to RGB565 PSP_vtfm2, // Transform vector by matrix PSP_vtfm3, // Transform vector by matrix PSP_vtfm4, // Transform vector by matrix PSP_vuc2i, // Vector convert unsigned char to integer PSP_vus2i, // Vector convert unsigned short to integer PSP_vwbn, // PSP_vzero, // VFPU set vector to zeroes // PSP Media Engine instructions PSP_mfvme, // move from VME PSP_mtvme, // move to VME // Toshiba TX19a instructions MIPS_ac0iu, // Add Coprocessor 0 Immediate Unsigned MIPS_bs1f, // Bit Search One Forward MIPS_bfins, // Bit field insert MIPS_addmiu, // Add Immediate to Memory Word MIPS_sadd, // Saturated Add MIPS_ssub, // Saturated Subtract MIPS_btst, // Bit Test MIPS_bclr, // Bit Clear MIPS_bset, // Bit Set MIPS_bins, // Bit Insert MIPS_bext, // Bit Extract MIPS_dive, // Divide, with Overflow Exception MIPS_diveu, // Divide unsigned, with Overflow Exception MIPS_min, // Minimum signed MIPS_max, // Maximum signed MIPS_madd3, // Multiply/Add (3-operand) MIPS_maddu3, // Multiply/Add Unsigned (3-operand) MIPS_msub3, // Multiply and Subtract Word to Hi,Lo (3-operand) MIPS_msubu3, // Multiply and Subtract Word to Hi,Lo (3-operand) // MIPS-MT MIPS_dvpe, // Disable Virtual Processor Execution MIPS_evpe, // Enable Virtual Processor Execution MIPS_dmt, // Disable Multi-Threaded Execution MIPS_emt, // Enable Multi-Threaded Execution MIPS_fork, // Allocate and Schedule a New Thread MIPS_yield, // Conditionally Deschedule or Deallocate the Current Thread MIPS_mftr, // Move From Thread Context MIPS_mftc0, MIPS_mftlo, MIPS_mfthi, MIPS_mftacx, MIPS_mftdsp, MIPS_mfthc1, MIPS_mftc1, MIPS_cftc1, MIPS_mfthc2, MIPS_mftc2, MIPS_cftc2, MIPS_mftgpr, MIPS_mttr, // Move To Thread Context MIPS_mttc0, MIPS_mttlo, MIPS_mtthi, MIPS_mttacx, MIPS_mttdsp, MIPS_mtthc1, MIPS_mttc1, MIPS_cttc1, MIPS_mtthc2, MIPS_mttc2, MIPS_cttc2, MIPS_mttgpr, // MIPS-3D MIPS_faddr, // Floating-point Reduction Addition MIPS_bc1any2f, // Branch on Any of Two Floating Point Condition Codes False MIPS_bc1any2t, // Branch on Any of Two Floating Point Condition Codes True MIPS_bc1any4f, // Branch on Any of Four Floating Point Condition Codes False MIPS_bc1any4t, // Branch on Any of Four Floating Point Condition Codes True MIPS_fcabs_f, // Floating-point Absolute Compare MIPS_fcabs_un, // Floating-point Absolute Compare MIPS_fcabs_eq, // Floating-point Absolute Compare MIPS_fcabs_ueq, // Floating-point Absolute Compare MIPS_fcabs_olt, // Floating-point Absolute Compare MIPS_fcabs_ult, // Floating-point Absolute Compare MIPS_fcabs_ole, // Floating-point Absolute Compare MIPS_fcabs_ule, // Floating-point Absolute Compare MIPS_fcabs_sf, // Floating-point Absolute Compare MIPS_fcabs_ngle, // Floating-point Absolute Compare MIPS_fcabs_seq, // Floating-point Absolute Compare MIPS_fcabs_ngl, // Floating-point Absolute Compare MIPS_fcabs_lt, // Floating-point Absolute Compare MIPS_fcabs_nge, // Floating-point Absolute Compare MIPS_fcabs_le, // Floating-point Absolute Compare MIPS_fcabs_ngt, // Floating-point Absolute Compare MIPS_fcvt_pw_ps, // Floating-point Convert Paired Single to Paired Word MIPS_fcvt_ps_pw, // Floating-point Convert Paired Word to Paired Single MIPS_fmulr, // Floating-point Reduction Multiply MIPS_frecip1, // Floating-point Reduced Precision Reciprocal (Step 1) MIPS_frecip2, // Floating-point Reduced Precision Reciprocal (Step 2) MIPS_frsqrt1, // Floating-point Reduced Precision Reciprocal Square Root (Step 1) MIPS_frsqrt2, // Floating-point Reduced Precision Reciprocal Square Root (Step 2) // smartMIPS MIPS_lwxs, MIPS_maddp, MIPS_mflhxu, MIPS_mtlhx, MIPS_multp, MIPS_pperm, // microMIPS MIPS_jals, // Jump and Link, Short Delay Slot MIPS_lwp, // Load Word Pair MIPS_ldp, // Load Doubleword Pair MIPS_lwm, // Load Word Multiple MIPS_ldm, // Load Doubleword Multiple MIPS_swp, // Store Word Pair MIPS_sdp, // Store Doubleword Pair MIPS_swm, // Store Word Multiple MIPS_sdm, // Store Doubleword Multiple MIPS_bnezc, // Branch on Not Equal to Zero, Compact MIPS_bltzals, // Branch on Less Than Zero and Link, Short Delay-Slot MIPS_beqzc, // Branch on Equal to Zero, Compact MIPS_bgezals, // Branch on Greater Than or Equal to Zero and Link, Short Delay-Slot MIPS_jraddiusp, // Jump Register, Adjust Stack Pointer MIPS_jalrs, // Jump and Link Register, Short Delay Slot MIPS_jalrs_hb, // Jump and Link Register with Hazard Barrier, Short Delay-Slot MIPS_movep, // Move a Pair of Registers // had been missed; 64-bit MIPS pseudoinstruction MIPS_dli, // Doubleword Load Immediate // DSP ASE instructions MIPS_insv, // Insert Bit Field Variable MIPS_dinsv, // Doubleword Insert Variable Bit Field MIPS_bposge32, // Branch on Greater Than or Equal To Value 32 in DSPControl Pos Field MIPS_bposge64, // Branch on Greater Than or Equal To Value 64 in DSPControl Pos Field MIPS_addu_qb, // Unsigned Add Quad Byte Vectors MIPS_addu_ph, // Unsigned Add Integer Halfwords MIPS_addsc, // Add Signed Word and Set Carry Bit MIPS_subu_qb, // Subtract Unsigned Quad Byte Vector MIPS_subu_ph, // Subtract Unsigned Integer Halfwords MIPS_addwc, // Add Word with Carry Bit MIPS_addq_ph, // Add Fractional Halfword Vectors MIPS_modsub, // Modular Subtraction on an Index Value MIPS_subq_ph, // Subtract Fractional Halfword Vector MIPS_addu_s_qb, // Unsigned Add Quad Byte Vectors MIPS_addu_s_ph, // Unsigned Add Integer Halfwords MIPS_raddu_w_qb, // Unsigned Reduction Add Vector Quad Bytes MIPS_muleq_s_w_phl, // Multiply Vector Fractional Left Halfwords to Expanded Width Products MIPS_subu_s_qb, // Subtract Unsigned Quad Byte Vector MIPS_subu_s_ph, // Subtract Unsigned Integer Halfwords MIPS_muleq_s_w_phr, // Multiply Vector Fractional Right Halfwords to Expanded Width Products MIPS_muleu_s_ph_qbl, // Multiply Unsigned Vector Left Bytes by Halfwords to Halfword Products MIPS_addq_s_ph, // Add Fractional Halfword Vectors MIPS_addq_s_w, // Add Fractional Words MIPS_mulq_s_ph, // Multiply Vector Fractional Half-Words to Same Size Products MIPS_muleu_s_ph_qbr, // Multiply Unsigned Vector Right Bytes with halfwords to Half Word Products MIPS_subq_s_ph, // Subtract Fractional Halfword Vector MIPS_subq_s_w, // Subtract Fractional Word MIPS_mulq_rs_ph, // Multiply Vector Fractional Halfwords to Fractional Halfword Products MIPS_addu_ob, // Unsigned Add Octal Byte Vectors MIPS_subu_ob, // Subtract Unsigned Octal Byte Vector MIPS_addq_qh, // Add Fractional Halfword Vectors MIPS_addq_pw, // Add Fractional Word Vectors MIPS_subq_qh, // Subtract Fractional Halfword Vector MIPS_subq_pw, // Subtract Fractional Word Vector MIPS_addu_s_ob, // Unsigned Add Octal Byte Vectors MIPS_raddu_l_ob, // Unsigned Reduction Add Vector Octal Bytes MIPS_muleq_s_pw_qhl, // Multiply Vector Fractional Left Halfwords to Expanded Width Products MIPS_subu_s_ob, // Subtract Unsigned Octal Byte Vector MIPS_muleq_s_pw_qhr, // Multiply Vector Fractional Right Halfwords to Expanded Width Products MIPS_muleu_s_qh_obl, // Multiply Unsigned Vector Left Bytes by Halfwords to Halfword Products MIPS_addq_s_qh, // Add Fractional Halfword Vectors MIPS_addq_s_pw, // Add Fractional Word Vectors MIPS_muleu_s_qh_obr, // Multiply Unsigned Vector Right Bytes by Halfwords to Halfword Products MIPS_subq_s_qh, // Subtract Fractional Halfword Vector MIPS_subq_s_pw, // Subtract Fractional Word Vector MIPS_mulq_rs_qh, // Multiply Vector Fractional Halfwords to Fractional Halfword Products MIPS_cmpu_eq_qb, // Compare Vectors of Unsigned Byte Values MIPS_cmp_eq_ph, // Compare Vectors of Signed Integer Halfword Values MIPS_cmpgdu_eq_qb, // Compare Unsigned Vector of Four Bytes and Write Result to GPR and DSPControl MIPS_cmpu_lt_qb, // Compare Vectors of Unsigned Byte Values MIPS_cmp_lt_ph, // Compare Vectors of Signed Integer Halfword Values MIPS_cmpgdu_lt_qb, // Compare Unsigned Vector of Four Bytes and Write Result to GPR and DSPControl MIPS_cmpu_le_qb, // Compare Vectors of Unsigned Byte Values MIPS_cmp_le_ph, // Compare Vectors of Signed Integer Halfword Values MIPS_cmpgdu_le_qb, // Compare Unsigned Vector of Four Bytes and Write Result to GPR and DSPControl MIPS_pick_qb, // Pick a Vector of Byte Values Based on Condition Code Bits MIPS_pick_ph, // Pick a Vector of Halfword Values Based on Condition Code Bits MIPS_cmpgu_eq_qb, // Compare Vectors of Unsigned Byte Values and Write Results to a GPR MIPS_precrq_qb_ph, // Precision Reduce Four Fractional Halfwords to Four Bytes MIPS_precrq_ph_w, // Precision Reduce Fractional Words to Fractional Halfwords MIPS_cmpgu_lt_qb, // Compare Vectors of Unsigned Byte Values and Write Results to a GPR MIPS_precr_qb_ph, // Precision Reduce Four Integer Halfwords to Four Bytes MIPS_precrq_rs_ph_w, // Precision Reduce Fractional Words to Halfwords With Rounding and Saturation MIPS_cmpgu_le_qb, // Compare Vectors of Unsigned Byte Values and Write Results to a GPR MIPS_packrl_ph, // Pack a Vector of Halfwords from Vector Halfword Sources MIPS_precr_sra_ph_w, // Precision Reduce Two Integer Words to Halfwords after a Right Shift MIPS_precrqu_s_qb_ph, // Precision Reduce Fractional Halfwords to Unsigned Bytes With Saturation MIPS_precr_sra_r_ph_w, // Precision Reduce Two Integer Words to Halfwords after a Right Shift MIPS_cmpu_eq_ob, // Compare Vectors of Unsigned Byte Values MIPS_cmp_eq_qh, // Compare Vectors of Signed Integer Halfword Values MIPS_cmp_eq_pw, // Compare Vectors of Signed Integer Word Values MIPS_cmpu_lt_ob, // Compare Vectors of Unsigned Byte Values MIPS_cmp_lt_qh, // Compare Vectors of Signed Integer Halfword Values MIPS_cmp_lt_pw, // Compare Vectors of Signed Integer Word Values MIPS_cmpu_le_ob, // Compare Vectors of Unsigned Byte Values MIPS_cmp_le_qh, // Compare Vectors of Signed Integer Halfword Values MIPS_cmp_le_pw, // Compare Vectors of Signed Integer Word Values MIPS_pick_ob, // Pick a Vector of Byte Values Based on Condition Code Bits MIPS_pick_qh, // Pick a Vector of Halfword Values Based on Condition Code Bits MIPS_pick_pw, // Pick a Vector of Word Values Based on Condition Code Bits MIPS_cmpgu_eq_ob, // Compare Vectors of Unsigned Byte Values and Write Results to a GPR MIPS_precrq_ob_qh, // Precision Reduce Fractional Halfwords to Fractional Bytes MIPS_precrq_qh_pw, // Precision Reduce Fractional Words to Fractional Halfwords MIPS_precrq_pw_l, // Precision Reduce Fractional Doublewords to Fractional Words MIPS_cmpgu_lt_ob, // Compare Vectors of Unsigned Byte Values and Write Results to a GPR MIPS_precrq_rs_qh_pw, // Precision Reduce Fractional Words to Halfwords With Rounding and Saturation MIPS_cmpgu_le_ob, // Compare Vectors of Unsigned Byte Values and Write Results to a GPR MIPS_packrl_pw, // Pack a Vector of Words from Vector Word Sources MIPS_precrqu_s_ob_qh, // Precision Reduce Fractional Halfwords to Unsigned Bytes With Saturation MIPS_absq_s_qb, // Find Absolute Value of Four Fractional Byte Values MIPS_absq_s_ph, // Find Absolute Value of Two Fractional Halfwords MIPS_absq_s_w, // Find Absolute Value of Fractional Word MIPS_repl_qb, // Replicate Immediate Integer into all Vector Element Positions MIPS_repl_ph, // Replicate Immediate Integer into all Vector Element Positions MIPS_replv_qb, // Replicate Byte into all Vector Element Positions MIPS_replv_ph, // Replicate a Halfword into all Vector Element Positions MIPS_bitrev, // Bit-Reverse Halfword MIPS_precequ_ph_qbl, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceq_w_phl, // Precision Expand Fractional Halfword to Fractional Word Value MIPS_preceu_ph_qbl, // Precision Expand Two Unsigned Bytes to Unsigned Halfword Values MIPS_precequ_ph_qbr, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceq_w_phr, // Precision Expand Fractional Halfword to Fractional Word Value MIPS_preceu_ph_qbr, // Precision Expand two Unsigned Bytes to Unsigned Halfword Values MIPS_precequ_ph_qbla, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceu_ph_qbla, // Precision Expand Two Unsigned Bytes to Unsigned Halfword Values MIPS_precequ_ph_qbra, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceu_ph_qbra, // Precision Expand Two Unsigned Bytes to Unsigned Halfword Values MIPS_absq_s_qh, // Find Absolute Value of Four Fractional Halfwords MIPS_absq_s_pw, // Find Absolute Value of Two Fractional Words MIPS_repl_ob, // Replicate Immediate Integer into all Vector Element Positions MIPS_repl_qh, // Replicate Immediate Integer into all Vector Element Positions MIPS_repl_pw, // Replicate Immediate Integer into all Vector Element Positions MIPS_replv_ob, // Replicate Byte into all Vector Element Positions MIPS_replv_qh, // Replicate a Halfword into all Vector Element Positions MIPS_replv_pw, // Replicate Word into all Vector Element Positions MIPS_precequ_pw_qhl, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceq_pw_qhl, // Precision Expand Two Fractional Halfwords to Fractional Word Values MIPS_preceq_s_l_pwl, // Precision Expand Fractional Word to Fractional Doubleword Value MIPS_preceu_qh_obl, // Precision Expand Four Unsigned Bytes to Unsigned Halfword Values MIPS_precequ_pw_qhr, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceq_pw_qhr, // Precision Expand Two Fractional Halfwords to Fractional Word Values MIPS_preceq_s_l_pwr, // Precision Expand Fractional Word to Fractional Doubleword Value MIPS_preceu_qh_obr, // Precision Expand Four Unsigned Bytes to Unsigned Halfword Values MIPS_precequ_pw_qhla, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceq_pw_qhla, // Precision Expand Two Fractional Halfwords to Fractional Word Values MIPS_preceu_qh_obla, // Precision Expand Four Unsigned Bytes to Unsigned Halfword Values MIPS_precequ_pw_qhra, // Precision Expand two Unsigned Bytes to Fractional Halfword Values MIPS_preceq_pw_qhra, // Precision Expand Two Fractional Halfwords to Fractional Word Values MIPS_preceu_qh_obra, // Precision Expand Four Unsigned Bytes to Unsigned Halfword Values MIPS_shll_qb, // Shift Left Logical Vector Quad Bytes MIPS_shll_ph, // Shift Left Logical Vector Pair Halfwords MIPS_shrl_qb, // Shift Right Logical Vector Quad Bytes MIPS_shra_ph, // Shift Right Arithmetic Vector Pair Halfwords MIPS_shrl_ph, // Shift Right Logical Two Halfwords MIPS_shllv_qb, // Shift Left Logical Variable Vector Quad Bytes MIPS_shllv_ph, // Shift Left Logical Variable Vector Pair Halfwords MIPS_shrlv_qb, // Shift Right Logical Variable Vector Quad Bytes MIPS_shrav_ph, // Shift Right Arithmetic Variable Vector Pair Halfwords MIPS_shrlv_ph, // Shift Variable Right Logical Pair of Halfwords MIPS_shra_qb, // Shift Right Arithmetic Vector of Four Bytes MIPS_shll_s_ph, // Shift Left Logical Vector Pair Halfwords MIPS_shll_s_w, // Shift Left Logical Word with Saturation MIPS_shra_r_qb, // Shift Right Arithmetic Vector of Four Bytes MIPS_shra_r_ph, // Shift Right Arithmetic Vector Pair Halfwords MIPS_shra_r_w, // Shift Right Arithmetic Word with Rounding MIPS_shrav_qb, // Shift Right Arithmetic Variable Vector of Four Bytes MIPS_shllv_s_ph, // Shift Left Logical Variable Vector Pair Halfwords MIPS_shllv_s_w, // Shift Left Logical Variable Vector Word MIPS_shrav_r_qb, // Shift Right Arithmetic Variable Vector of Four Bytes MIPS_shrav_r_ph, // Shift Right Arithmetic Variable Vector Pair Halfwords MIPS_shrav_r_w, // Shift Right Arithmetic Variable Word with Rounding MIPS_shll_ob, // Shift Left Logical Vector Octal Bytes MIPS_shll_qh, // Shift Left Logical Vector Quad Halfwords MIPS_shll_pw, // Shift Left Logical Vector Pair Words MIPS_shrl_ob, // Shift Right Logical Vector Octal Bytes MIPS_shra_qh, // Shift Right Arithmetic Vector Quad Halfwords MIPS_shra_pw, // Shift Right Arithmetic Vector Pair Words MIPS_shllv_ob, // Shift Left Logical Variable Vector Octal Bytes MIPS_shllv_qh, // Shift Left Logical Variable Vector Quad Halfwords MIPS_shllv_pw, // Shift Left Logical Variable Vector Pair Words MIPS_shrlv_ob, // Shift Right Logical Variable Vector Octal Bytes MIPS_shrav_qh, // Shift Right Arithmetic Variable Vector Quad Halfwords MIPS_shrav_pw, // Shift Right Arithmetic Variable Vector Pair Words MIPS_shll_s_qh, // Shift Left Logical Vector Quad Halfwords MIPS_shll_s_pw, // Shift Left Logical Vector Pair Words MIPS_shra_r_qh, // Shift Right Arithmetic Vector Quad Halfwords MIPS_shra_r_pw, // Shift Right Arithmetic Vector Pair Words MIPS_shllv_s_qh, // Shift Left Logical Variable Vector Quad Halfwords MIPS_shllv_s_pw, // Shift Left Logical Variable Vector Pair Words MIPS_shrav_r_qh, // Shift Right Arithmetic Variable Vector Quad Halfwords MIPS_shrav_r_pw, // Shift Right Arithmetic Variable Vector Pair Words MIPS_lwx, // Load Word Indexed MIPS_ldx, // Load Doubleword Indexed MIPS_lhx, // Load Halfword Indexed MIPS_lbux, // Load Unsigned Byte Indexed MIPS_dpa_w_ph, // Dot Product with Accumulate on Vector Integer Halfword Elements MIPS_dpax_w_ph, // Cross Dot Product with Accumulate on Vector Integer Halfword Elements MIPS_maq_sa_w_phl, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dpaqx_s_w_ph, // Cross Dot Product with Accumulation on Fractional Halfword Elements MIPS_dps_w_ph, // Dot Product with Subtract on Vector Integer Half-Word Elements MIPS_dpsx_w_ph, // Cross Dot Product with Subtract on Vector Integer Halfword Elements MIPS_dpsqx_s_w_ph, // Cross Dot Product with Subtraction on Fractional Halfword Elements MIPS_mulsa_w_ph, // Multiply and Subtract Vector Integer Halfword Elements and Accumulate MIPS_maq_sa_w_phr, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dpaqx_sa_w_ph, // Cross Dot Product with Accumulation on Fractional Halfword Elements MIPS_dpau_h_qbl, // Dot Product with Accumulate on Vector Unsigned Byte Elements MIPS_dpsu_h_qbl, // Dot Product with Subtraction on Vector Unsigned Byte Elements MIPS_dpsqx_sa_w_ph, // Cross Dot Product with Subtraction on Fractional Halfword Elements MIPS_dpaq_s_w_ph, // Dot Product with Accumulation on Fractional Halfword Elements MIPS_dpaq_sa_l_w, // Dot Product with Accumulate on Fractional Word Element MIPS_maq_s_w_phl, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dpsq_s_w_ph, // Dot Product with Subtraction on Fractional Halfword Elements MIPS_dpsq_sa_l_w, // Dot Product with Subtraction on Fractional Word Element MIPS_mulsaq_s_w_ph, // Multiply And Subtract Vector Fractional Halfwords And Accumulate MIPS_maq_s_w_phr, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dpau_h_qbr, // Dot Product with Accumulate on Vector Unsigned Byte Elements MIPS_dpsu_h_qbr, // Dot Product with Subtraction on Vector Unsigned Byte Elements MIPS_maq_sa_w_qhll, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_maq_sa_w_qhlr, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dmadd, // Multiply Vector Words And Accumulate MIPS_dmsub, // Multiply Vector Words And Subtract From Accumulator MIPS_maq_sa_w_qhrl, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dpau_h_obl, // Dot Product with Accumulate on Vector Unsigned Byte Elements MIPS_dpsu_h_obl, // Dot Product with Subtract on Vector Unsigned Byte Elements MIPS_maq_sa_w_qhrr, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dpaq_s_w_qh, // Dot Product with Accumulation on Fractional Halfword Elements MIPS_dpaq_sa_l_pw, // Dot Product with Accumulate on Fractional Word Elements MIPS_maq_s_w_qhll, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_maq_s_l_pwl, // Multiply with Accumulate Single Vector Fractional Word Element MIPS_dpsq_s_w_qh, // Dot Product with Subtraction on Fractional Halfword Elements MIPS_dpsq_sa_l_pw, // Dot Product with Subtraction on Fractional Word Elements MIPS_maq_s_w_qhlr, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dmaddu, // Multiply Vector Unsigned Words And Accumulate MIPS_mulsaq_s_w_qh, // Multiply And Subtract Vector Fractional Halfwords And Accumulate MIPS_mulsaq_s_l_pw, // Multiply And Subtract Vector Fractional Words And Accumulate MIPS_maq_s_w_qhrl, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_maq_s_l_pwr, // Multiply with Accumulate Single Vector Fractional Word Element MIPS_dpau_h_obr, // Dot Product with Accumulate on Vector Unsigned Byte Elements MIPS_dpsu_h_obr, // Dot Product with Subtract on Vector Unsigned Byte Elements MIPS_maq_s_w_qhrr, // Multiply with Accumulate Single Vector Fractional Halfword Element MIPS_dmsubu, // Multiply Vector Unsigned Words And Subtract From Accumulator MIPS_extr_w, // Extract Word Value With Right Shift From Accumulator to GPR MIPS_extrv_w, // Extract Word Value With Variable Right Shift From Accumulator to GPR MIPS_extp, // Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR MIPS_extpdp, // Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos MIPS_rddsp, // Read DSPControl Register Fields to a GPR MIPS_shilo, // Shift an Accumulator Value Leaving the Result in the Same Accumulator MIPS_extpv, // Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR MIPS_extpdpv, // Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos MIPS_wrdsp, // Write Fields to DSPControl Register from a GPR MIPS_shilov, // Variable Shift of Accumulator Value Leaving the Result in the Same Accumulator MIPS_extr_r_w, // Extract Word Value With Right Shift And Rounding From Accumulator to GPR MIPS_extrv_r_w, // Extract Word Value With Variable Right Shift And Rounding From Accumulator to GPR MIPS_extr_rs_w, // Extract Word Value With Right Shift From Accumulator to GPR MIPS_extr_s_h, // Extract Halfword Value From Accumulator to GPR With Right Shift and Saturate MIPS_extrv_rs_w, // Extract Word Value With Variable Right Shift From Accumulator to GPR MIPS_extrv_s_h, // Extract Halfword Value Variable From Accumulator to GPR With Right Shift and Saturate MIPS_mthlip, // Copy LO to HI and a GPR to LO and Increment Pos by 32 MIPS_dextr_w, // Extract Word Value With Right Shift From Accumulator to GPR MIPS_dextr_l, // Extract Doubleword Value With Right Shift From Accumulator to GPR MIPS_dextrv_w, // Extract Word Value With Variable Right Shift From Accumulator to GPR MIPS_dextrv_l, // Extract Doubleword Value With Variable Right Shift From Accumulator to GPR MIPS_dextp, // Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR MIPS_dextpdp, // Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos MIPS_dshilo, // Shift an Accumulator Value Leaving the Result in the Same Accumulator MIPS_dextpv, // Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR MIPS_dextpdpv, // Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos MIPS_dshilov, // Variable Shift of Accumulator Value Leaving the Result in the Same Accumulator MIPS_dextr_r_w, // Extract Word Value With Right Shift And Rounding From Accumulator to GPR MIPS_dextr_r_l, // Extract Doubleword Value With Right Shift And Rounding From Accumulator to GPR MIPS_dextrv_r_w, // Extract Word Value With Variable Right Shift And Rounding From Accumulator to GPR MIPS_dextrv_r_l, // Extract Doubleword Value With Variable Right Shift And Rounding From Accumulator to GPR MIPS_dextr_rs_w, // Extract Word Value With Right Shift From Accumulator to GPR MIPS_dextr_s_h, // Extract Halfword Value From Accumulator to GPR With Right Shift and Saturate MIPS_dextr_rs_l, // Extract Doubleword Value With Right Shift From Accumulator to GPR MIPS_dextrv_rs_w, // Extract Word Value With Variable Right Shift From Accumulator to GPR MIPS_dextrv_s_h, // Extract Halfword Value Variable From Accumulator to GPR With Right Shift and Saturate MIPS_dextrv_rs_l, // Extract Doubleword Value With Variable Right Shift From Accumulator to GPR MIPS_dmthlip, // Copy LO to HI and a GPR to LO and Increment Pos by 64 MIPS_adduh_qb, // Unsigned Add Vector Quad-Bytes And Right Shift to Halve Results MIPS_addqh_ph, // Add Fractional Halfword Vectors And Shift Right to Halve Results MIPS_addqh_w, // Add Fractional Words And Shift Right to Halve Results MIPS_subuh_qb, // Subtract Unsigned Bytes And Right Shift to Halve Results MIPS_subqh_ph, // Subtract Fractional Halfword Vectors And Shift Right to Halve Results MIPS_subqh_w, // Subtract Fractional Words And Shift Right to Halve Results MIPS_adduh_r_qb, // Unsigned Add Vector Quad-Bytes And Right Shift to Halve Results MIPS_addqh_r_ph, // Add Fractional Halfword Vectors And Shift Right to Halve Results MIPS_addqh_r_w, // Add Fractional Words And Shift Right to Halve Results MIPS_subuh_r_qb, // Subtract Unsigned Bytes And Right Shift to Halve Results MIPS_subqh_r_ph, // Subtract Fractional Halfword Vectors And Shift Right to Halve Results MIPS_subqh_r_w, // Subtract Fractional Words And Shift Right to Halve Results MIPS_mul_ph, // Multiply Vector Integer HalfWords to Same Size Products MIPS_mul_s_ph, // Multiply Vector Integer HalfWords to Same Size Products MIPS_mulq_s_w, // Multiply Fractional Words to Same Size Product with Saturation MIPS_mulq_rs_w, // Multiply Fractional Words to Same Size Product with Saturation and Rounding MIPS_append, // Left Shift and Append Bits to the LSB MIPS_balign, // Byte Align Contents from Two Registers MIPS_prepend, // Right Shift and Prepend Bits to the MSB // Cavium Octeon II instructions MIPS_laa, // Load Atomic Add Word MIPS_laad, // Load Atomic Add Doubleword MIPS_lac, // Load Atomic Clear Word MIPS_lacd, // Load Atomic Clear Doubleword MIPS_lad, // Load Atomic Decrement Word MIPS_ladd, // Load Atomic Decrement Doubleword MIPS_lai, // Load Atomic Increment Word MIPS_laid, // Load Atomic Increment Doubleword MIPS_las, // Load Atomic Set Word MIPS_lasd, // Load Atomic Set Doubleword MIPS_law, // Load Atomic Swap Word MIPS_lawd, // Load Atomic Swap Doubleword // we don't know the following mnemonics for sure MIPS_lbx, // Load Byte Indexed MIPS_lhux, // Load Halfword Unsigned Indexed MIPS_lwux, // Load Word Unsigned Indexed MIPS_qmac_00, // Q15 Multiply Accumulate MIPS_qmac_01, // Q15 Multiply Accumulate MIPS_qmac_02, // Q15 Multiply Accumulate MIPS_qmac_03, // Q15 Multiply Accumulate MIPS_qmacs_00, // Q15 Multiply Accumulate MIPS_qmacs_01, // Q15 Multiply Accumulate MIPS_qmacs_02, // Q15 Multiply Accumulate MIPS_qmacs_03, // Q15 Multiply Accumulate MIPS_zcb, // Zero Cache Block MIPS_zcbt, // Zero Cache Block // MSA ASE // some of these have the same name as existing mnemonics; to avoid ambiguity // we use an msa_ prefix on all of them MIPS_msa_sll_b, // Vector Shift Left MIPS_msa_sll_h, // Vector Shift Left MIPS_msa_sll_w, // Vector Shift Left MIPS_msa_sll_d, // Vector Shift Left MIPS_msa_slli_b, // Immediate Shift Left MIPS_msa_slli_h, // Immediate Shift Left MIPS_msa_slli_w, // Immediate Shift Left MIPS_msa_slli_d, // Immediate Shift Left MIPS_msa_sra_b, // Vector Shift Right Arithmetic MIPS_msa_sra_h, // Vector Shift Right Arithmetic MIPS_msa_sra_w, // Vector Shift Right Arithmetic MIPS_msa_sra_d, // Vector Shift Right Arithmetic MIPS_msa_srai_b, // Immediate Shift Right Arithmetic MIPS_msa_srai_h, // Immediate Shift Right Arithmetic MIPS_msa_srai_w, // Immediate Shift Right Arithmetic MIPS_msa_srai_d, // Immediate Shift Right Arithmetic MIPS_msa_srl_b, // Vector Shift Right Logical MIPS_msa_srl_h, // Vector Shift Right Logical MIPS_msa_srl_w, // Vector Shift Right Logical MIPS_msa_srl_d, // Vector Shift Right Logical MIPS_msa_srli_b, // Immediate Shift Right Logical MIPS_msa_srli_h, // Immediate Shift Right Logical MIPS_msa_srli_w, // Immediate Shift Right Logical MIPS_msa_srli_d, // Immediate Shift Right Logical MIPS_msa_bclr_b, // Vector Bit Clear MIPS_msa_bclr_h, // Vector Bit Clear MIPS_msa_bclr_w, // Vector Bit Clear MIPS_msa_bclr_d, // Vector Bit Clear MIPS_msa_bclri_b, // Immediate Bit Clear MIPS_msa_bclri_h, // Immediate Bit Clear MIPS_msa_bclri_w, // Immediate Bit Clear MIPS_msa_bclri_d, // Immediate Bit Clear MIPS_msa_bset_b, // Vector Bit Set MIPS_msa_bset_h, // Vector Bit Set MIPS_msa_bset_w, // Vector Bit Set MIPS_msa_bset_d, // Vector Bit Set MIPS_msa_bseti_b, // Immediate Bit Set MIPS_msa_bseti_h, // Immediate Bit Set MIPS_msa_bseti_w, // Immediate Bit Set MIPS_msa_bseti_d, // Immediate Bit Set MIPS_msa_bneg_b, // Vector Bit Negate MIPS_msa_bneg_h, // Vector Bit Negate MIPS_msa_bneg_w, // Vector Bit Negate MIPS_msa_bneg_d, // Vector Bit Negate MIPS_msa_bnegi_b, // Immediate Bit Negate MIPS_msa_bnegi_h, // Immediate Bit Negate MIPS_msa_bnegi_w, // Immediate Bit Negate MIPS_msa_bnegi_d, // Immediate Bit Negate MIPS_msa_binsl_b, // Vector Bit Insert Left MIPS_msa_binsl_h, // Vector Bit Insert Left MIPS_msa_binsl_w, // Vector Bit Insert Left MIPS_msa_binsl_d, // Vector Bit Insert Left MIPS_msa_binsli_b, // Immediate Bit Insert Left MIPS_msa_binsli_h, // Immediate Bit Insert Left MIPS_msa_binsli_w, // Immediate Bit Insert Left MIPS_msa_binsli_d, // Immediate Bit Insert Left MIPS_msa_binsr_b, // Vector Bit Insert Right MIPS_msa_binsr_h, // Vector Bit Insert Right MIPS_msa_binsr_w, // Vector Bit Insert Right MIPS_msa_binsr_d, // Vector Bit Insert Right MIPS_msa_binsri_b, // Immediate Bit Insert Right MIPS_msa_binsri_h, // Immediate Bit Insert Right MIPS_msa_binsri_w, // Immediate Bit Insert Right MIPS_msa_binsri_d, // Immediate Bit Insert Right MIPS_msa_addv_b, // Vector Add MIPS_msa_addv_h, // Vector Add MIPS_msa_addv_w, // Vector Add MIPS_msa_addv_d, // Vector Add MIPS_msa_addvi_b, // Immediate Add MIPS_msa_addvi_h, // Immediate Add MIPS_msa_addvi_w, // Immediate Add MIPS_msa_addvi_d, // Immediate Add MIPS_msa_subv_b, // Vector Subtract MIPS_msa_subv_h, // Vector Subtract MIPS_msa_subv_w, // Vector Subtract MIPS_msa_subv_d, // Vector Subtract MIPS_msa_subvi_b, // Immediate Subtract MIPS_msa_subvi_h, // Immediate Subtract MIPS_msa_subvi_w, // Immediate Subtract MIPS_msa_subvi_d, // Immediate Subtract MIPS_msa_max_s_b, // Vector Signed Maximum MIPS_msa_max_s_h, // Vector Signed Maximum MIPS_msa_max_s_w, // Vector Signed Maximum MIPS_msa_max_s_d, // Vector Signed Maximum MIPS_msa_maxi_s_b, // Immediate Signed Maximum MIPS_msa_maxi_s_h, // Immediate Signed Maximum MIPS_msa_maxi_s_w, // Immediate Signed Maximum MIPS_msa_maxi_s_d, // Immediate Signed Maximum MIPS_msa_max_u_b, // Vector Unsigned Maximum MIPS_msa_max_u_h, // Vector Unsigned Maximum MIPS_msa_max_u_w, // Vector Unsigned Maximum MIPS_msa_max_u_d, // Vector Unsigned Maximum MIPS_msa_maxi_u_b, // Immediate Unsigned Maximum MIPS_msa_maxi_u_h, // Immediate Unsigned Maximum MIPS_msa_maxi_u_w, // Immediate Unsigned Maximum MIPS_msa_maxi_u_d, // Immediate Unsigned Maximum MIPS_msa_min_s_b, // Vector Signed Minimum MIPS_msa_min_s_h, // Vector Signed Minimum MIPS_msa_min_s_w, // Vector Signed Minimum MIPS_msa_min_s_d, // Vector Signed Minimum MIPS_msa_mini_s_b, // Immediate Signed Minimum MIPS_msa_mini_s_h, // Immediate Signed Minimum MIPS_msa_mini_s_w, // Immediate Signed Minimum MIPS_msa_mini_s_d, // Immediate Signed Minimum MIPS_msa_min_u_b, // Vector Unsigned Minimum MIPS_msa_min_u_h, // Vector Unsigned Minimum MIPS_msa_min_u_w, // Vector Unsigned Minimum MIPS_msa_min_u_d, // Vector Unsigned Minimum MIPS_msa_mini_u_b, // Immediate Unsigned Minimum MIPS_msa_mini_u_h, // Immediate Unsigned Minimum MIPS_msa_mini_u_w, // Immediate Unsigned Minimum MIPS_msa_mini_u_d, // Immediate Unsigned Minimum MIPS_msa_max_a_b, // Vector Maximum Based on Absolute Values MIPS_msa_max_a_h, // Vector Maximum Based on Absolute Values MIPS_msa_max_a_w, // Vector Maximum Based on Absolute Values MIPS_msa_max_a_d, // Vector Maximum Based on Absolute Values MIPS_msa_min_a_b, // Vector Minimum Based on Absolute Value MIPS_msa_min_a_h, // Vector Minimum Based on Absolute Value MIPS_msa_min_a_w, // Vector Minimum Based on Absolute Value MIPS_msa_min_a_d, // Vector Minimum Based on Absolute Value MIPS_msa_ceq_b, // Vector Compare Equal MIPS_msa_ceq_h, // Vector Compare Equal MIPS_msa_ceq_w, // Vector Compare Equal MIPS_msa_ceq_d, // Vector Compare Equal MIPS_msa_ceqi_b, // Immediate Compare Equal MIPS_msa_ceqi_h, // Immediate Compare Equal MIPS_msa_ceqi_w, // Immediate Compare Equal MIPS_msa_ceqi_d, // Immediate Compare Equal MIPS_msa_clt_s_b, // Vector Compare Signed Less Than MIPS_msa_clt_s_h, // Vector Compare Signed Less Than MIPS_msa_clt_s_w, // Vector Compare Signed Less Than MIPS_msa_clt_s_d, // Vector Compare Signed Less Than MIPS_msa_clti_s_b, // Immediate Compare Signed Less Than MIPS_msa_clti_s_h, // Immediate Compare Signed Less Than MIPS_msa_clti_s_w, // Immediate Compare Signed Less Than MIPS_msa_clti_s_d, // Immediate Compare Signed Less Than MIPS_msa_clt_u_b, // Vector Compare Unsigned Less Than MIPS_msa_clt_u_h, // Vector Compare Unsigned Less Than MIPS_msa_clt_u_w, // Vector Compare Unsigned Less Than MIPS_msa_clt_u_d, // Vector Compare Unsigned Less Than MIPS_msa_clti_u_b, // Immediate Compare Unsigned Less Than MIPS_msa_clti_u_h, // Immediate Compare Unsigned Less Than MIPS_msa_clti_u_w, // Immediate Compare Unsigned Less Than MIPS_msa_clti_u_d, // Immediate Compare Unsigned Less Than MIPS_msa_cle_s_b, // Vector Compare Signed Less Than or Equal MIPS_msa_cle_s_h, // Vector Compare Signed Less Than or Equal MIPS_msa_cle_s_w, // Vector Compare Signed Less Than or Equal MIPS_msa_cle_s_d, // Vector Compare Signed Less Than or Equal MIPS_msa_clei_s_b, // Immediate Compare Signed Less Than or Equal MIPS_msa_clei_s_h, // Immediate Compare Signed Less Than or Equal MIPS_msa_clei_s_w, // Immediate Compare Signed Less Than or Equal MIPS_msa_clei_s_d, // Immediate Compare Signed Less Than or Equal MIPS_msa_cle_u_b, // Vector Compare Unsigned Less Than or Equal MIPS_msa_cle_u_h, // Vector Compare Unsigned Less Than or Equal MIPS_msa_cle_u_w, // Vector Compare Unsigned Less Than or Equal MIPS_msa_cle_u_d, // Vector Compare Unsigned Less Than or Equal MIPS_msa_clei_u_b, // Immediate Compare Unsigned Less Than or Equal MIPS_msa_clei_u_h, // Immediate Compare Unsigned Less Than or Equal MIPS_msa_clei_u_w, // Immediate Compare Unsigned Less Than or Equal MIPS_msa_clei_u_d, // Immediate Compare Unsigned Less Than or Equal MIPS_msa_ld_b, // Vector Load MIPS_msa_ld_h, // Vector Load MIPS_msa_ld_w, // Vector Load MIPS_msa_ld_d, // Vector Load MIPS_msa_st_b, // Vector Store MIPS_msa_st_h, // Vector Store MIPS_msa_st_w, // Vector Store MIPS_msa_st_d, // Vector Store MIPS_msa_sat_s_b, // Immediate Signed Saturate MIPS_msa_sat_s_h, // Immediate Signed Saturate MIPS_msa_sat_s_w, // Immediate Signed Saturate MIPS_msa_sat_s_d, // Immediate Signed Saturate MIPS_msa_sat_u_b, // Immediate Unsigned Saturate MIPS_msa_sat_u_h, // Immediate Unsigned Saturate MIPS_msa_sat_u_w, // Immediate Unsigned Saturate MIPS_msa_sat_u_d, // Immediate Unsigned Saturate MIPS_msa_add_a_b, // Vector Add Absolute Values MIPS_msa_add_a_h, // Vector Add Absolute Values MIPS_msa_add_a_w, // Vector Add Absolute Values MIPS_msa_add_a_d, // Vector Add Absolute Values MIPS_msa_adds_a_b, // Vector Saturated Add of Absolute Values MIPS_msa_adds_a_h, // Vector Saturated Add of Absolute Values MIPS_msa_adds_a_w, // Vector Saturated Add of Absolute Values MIPS_msa_adds_a_d, // Vector Saturated Add of Absolute Values MIPS_msa_adds_s_b, // Vector Signed Saturated Add of Signed Values MIPS_msa_adds_s_h, // Vector Signed Saturated Add of Signed Values MIPS_msa_adds_s_w, // Vector Signed Saturated Add of Signed Values MIPS_msa_adds_s_d, // Vector Signed Saturated Add of Signed Values MIPS_msa_adds_u_b, // Vector Unsigned Saturated Add of Unsigned Values MIPS_msa_adds_u_h, // Vector Unsigned Saturated Add of Unsigned Values MIPS_msa_adds_u_w, // Vector Unsigned Saturated Add of Unsigned Values MIPS_msa_adds_u_d, // Vector Unsigned Saturated Add of Unsigned Values MIPS_msa_ave_s_b, // Vector Signed Average MIPS_msa_ave_s_h, // Vector Signed Average MIPS_msa_ave_s_w, // Vector Signed Average MIPS_msa_ave_s_d, // Vector Signed Average MIPS_msa_ave_u_b, // Vector Unsigned Average MIPS_msa_ave_u_h, // Vector Unsigned Average MIPS_msa_ave_u_w, // Vector Unsigned Average MIPS_msa_ave_u_d, // Vector Unsigned Average MIPS_msa_aver_s_b, // Vector Signed Average Rounded MIPS_msa_aver_s_h, // Vector Signed Average Rounded MIPS_msa_aver_s_w, // Vector Signed Average Rounded MIPS_msa_aver_s_d, // Vector Signed Average Rounded MIPS_msa_aver_u_b, // Vector Unsigned Average Rounded MIPS_msa_aver_u_h, // Vector Unsigned Average Rounded MIPS_msa_aver_u_w, // Vector Unsigned Average Rounded MIPS_msa_aver_u_d, // Vector Unsigned Average Rounded MIPS_msa_subs_s_b, // Vector Signed Saturated Subtract of Signed Values MIPS_msa_subs_s_h, // Vector Signed Saturated Subtract of Signed Values MIPS_msa_subs_s_w, // Vector Signed Saturated Subtract of Signed Values MIPS_msa_subs_s_d, // Vector Signed Saturated Subtract of Signed Values MIPS_msa_subs_u_b, // Vector Unsigned Saturated Subtract of Unsigned Values MIPS_msa_subs_u_h, // Vector Unsigned Saturated Subtract of Unsigned Values MIPS_msa_subs_u_w, // Vector Unsigned Saturated Subtract of Unsigned Values MIPS_msa_subs_u_d, // Vector Unsigned Saturated Subtract of Unsigned Values MIPS_msa_subsus_u_b, // Vector Unsigned Saturated Subtract of Signed from Unsigned MIPS_msa_subsus_u_h, // Vector Unsigned Saturated Subtract of Signed from Unsigned MIPS_msa_subsus_u_w, // Vector Unsigned Saturated Subtract of Signed from Unsigned MIPS_msa_subsus_u_d, // Vector Unsigned Saturated Subtract of Signed from Unsigned MIPS_msa_subsuu_s_b, // Vector Signed Saturated Subtract of Unsigned Values MIPS_msa_subsuu_s_h, // Vector Signed Saturated Subtract of Unsigned Values MIPS_msa_subsuu_s_w, // Vector Signed Saturated Subtract of Unsigned Values MIPS_msa_subsuu_s_d, // Vector Signed Saturated Subtract of Unsigned Values MIPS_msa_asub_s_b, // Vector Absolute Values of Signed Subtract MIPS_msa_asub_s_h, // Vector Absolute Values of Signed Subtract MIPS_msa_asub_s_w, // Vector Absolute Values of Signed Subtract MIPS_msa_asub_s_d, // Vector Absolute Values of Signed Subtract MIPS_msa_asub_u_b, // Vector Absolute Values of Unsigned Subtract MIPS_msa_asub_u_h, // Vector Absolute Values of Unsigned Subtract MIPS_msa_asub_u_w, // Vector Absolute Values of Unsigned Subtract MIPS_msa_asub_u_d, // Vector Absolute Values of Unsigned Subtract MIPS_msa_mulv_b, // Vector Multiply MIPS_msa_mulv_h, // Vector Multiply MIPS_msa_mulv_w, // Vector Multiply MIPS_msa_mulv_d, // Vector Multiply MIPS_msa_maddv_b, // Vector Multiply and Add MIPS_msa_maddv_h, // Vector Multiply and Add MIPS_msa_maddv_w, // Vector Multiply and Add MIPS_msa_maddv_d, // Vector Multiply and Add MIPS_msa_msubv_b, // Vector Multiply and Subtract MIPS_msa_msubv_h, // Vector Multiply and Subtract MIPS_msa_msubv_w, // Vector Multiply and Subtract MIPS_msa_msubv_d, // Vector Multiply and Subtract MIPS_msa_div_s_b, // Vector Signed Divide MIPS_msa_div_s_h, // Vector Signed Divide MIPS_msa_div_s_w, // Vector Signed Divide MIPS_msa_div_s_d, // Vector Signed Divide MIPS_msa_div_u_b, // Vector Unsigned Divide MIPS_msa_div_u_h, // Vector Unsigned Divide MIPS_msa_div_u_w, // Vector Unsigned Divide MIPS_msa_div_u_d, // Vector Unsigned Divide MIPS_msa_mod_s_b, // Vector Signed Modulo MIPS_msa_mod_s_h, // Vector Signed Modulo MIPS_msa_mod_s_w, // Vector Signed Modulo MIPS_msa_mod_s_d, // Vector Signed Modulo MIPS_msa_mod_u_b, // Vector Unsigned Modulo MIPS_msa_mod_u_h, // Vector Unsigned Modulo MIPS_msa_mod_u_w, // Vector Unsigned Modulo MIPS_msa_mod_u_d, // Vector Unsigned Modulo MIPS_msa_dotp_s_h, // Vector Signed Dot Product MIPS_msa_dotp_s_w, // Vector Signed Dot Product MIPS_msa_dotp_s_d, // Vector Signed Dot Product MIPS_msa_dotp_u_h, // Vector Unsigned Dot Product MIPS_msa_dotp_u_w, // Vector Unsigned Dot Product MIPS_msa_dotp_u_d, // Vector Unsigned Dot Product MIPS_msa_dpadd_s_h, // Vector Signed Dot Product and Add MIPS_msa_dpadd_s_w, // Vector Signed Dot Product and Add MIPS_msa_dpadd_s_d, // Vector Signed Dot Product and Add MIPS_msa_dpadd_u_h, // Vector Unsigned Dot Product and Add MIPS_msa_dpadd_u_w, // Vector Unsigned Dot Product and Add MIPS_msa_dpadd_u_d, // Vector Unsigned Dot Product and Add MIPS_msa_dpsub_s_h, // Vector Signed Dot Product and Subtract MIPS_msa_dpsub_s_w, // Vector Signed Dot Product and Subtract MIPS_msa_dpsub_s_d, // Vector Signed Dot Product and Subtract MIPS_msa_dpsub_u_h, // Vector Unsigned Dot Product and Subtract MIPS_msa_dpsub_u_w, // Vector Unsigned Dot Product and Subtract MIPS_msa_dpsub_u_d, // Vector Unsigned Dot Product and Subtract MIPS_msa_sld_b, // GPR Columns Slide MIPS_msa_sld_h, // GPR Columns Slide MIPS_msa_sld_w, // GPR Columns Slide MIPS_msa_sld_d, // GPR Columns Slide MIPS_msa_sldi_b, // Immediate Columns Slide MIPS_msa_sldi_h, // Immediate Columns Slide MIPS_msa_sldi_w, // Immediate Columns Slide MIPS_msa_sldi_d, // Immediate Columns Slide MIPS_msa_splat_b, // GPR Element Splat MIPS_msa_splat_h, // GPR Element Splat MIPS_msa_splat_w, // GPR Element Splat MIPS_msa_splat_d, // GPR Element Splat MIPS_msa_splati_b, // Immediate Element Splat MIPS_msa_splati_h, // Immediate Element Splat MIPS_msa_splati_w, // Immediate Element Splat MIPS_msa_splati_d, // Immediate Element Splat MIPS_msa_pckev_b, // Vector Pack Even MIPS_msa_pckev_h, // Vector Pack Even MIPS_msa_pckev_w, // Vector Pack Even MIPS_msa_pckev_d, // Vector Pack Even MIPS_msa_pckod_b, // Vector Pack Odd MIPS_msa_pckod_h, // Vector Pack Odd MIPS_msa_pckod_w, // Vector Pack Odd MIPS_msa_pckod_d, // Vector Pack Odd MIPS_msa_ilvl_b, // Vector Interleave Left MIPS_msa_ilvl_h, // Vector Interleave Left MIPS_msa_ilvl_w, // Vector Interleave Left MIPS_msa_ilvl_d, // Vector Interleave Left MIPS_msa_ilvr_b, // Vector Interleave Right MIPS_msa_ilvr_h, // Vector Interleave Right MIPS_msa_ilvr_w, // Vector Interleave Right MIPS_msa_ilvr_d, // Vector Interleave Right MIPS_msa_ilvev_b, // Vector Interleave Even MIPS_msa_ilvev_h, // Vector Interleave Even MIPS_msa_ilvev_w, // Vector Interleave Even MIPS_msa_ilvev_d, // Vector Interleave Even MIPS_msa_ilvod_b, // Vector Interleave Odd MIPS_msa_ilvod_h, // Vector Interleave Odd MIPS_msa_ilvod_w, // Vector Interleave Odd MIPS_msa_ilvod_d, // Vector Interleave Odd MIPS_msa_vshf_b, // Vector Data Preserving Shuffle MIPS_msa_vshf_h, // Vector Data Preserving Shuffle MIPS_msa_vshf_w, // Vector Data Preserving Shuffle MIPS_msa_vshf_d, // Vector Data Preserving Shuffle MIPS_msa_srar_b, // Vector Shift Right Arithmetic Rounded MIPS_msa_srar_h, // Vector Shift Right Arithmetic Rounded MIPS_msa_srar_w, // Vector Shift Right Arithmetic Rounded MIPS_msa_srar_d, // Vector Shift Right Arithmetic Rounded MIPS_msa_srari_b, // Immediate Shift Right Arithmetic Rounded MIPS_msa_srari_h, // Immediate Shift Right Arithmetic Rounded MIPS_msa_srari_w, // Immediate Shift Right Arithmetic Rounded MIPS_msa_srari_d, // Immediate Shift Right Arithmetic Rounded MIPS_msa_srlr_b, // Vector Shift Right Logical Rounded MIPS_msa_srlr_h, // Vector Shift Right Logical Rounded MIPS_msa_srlr_w, // Vector Shift Right Logical Rounded MIPS_msa_srlr_d, // Vector Shift Right Logical Rounded MIPS_msa_srlri_b, // Immediate Shift Right Logical Rounded MIPS_msa_srlri_h, // Immediate Shift Right Logical Rounded MIPS_msa_srlri_w, // Immediate Shift Right Logical Rounded MIPS_msa_srlri_d, // Immediate Shift Right Logical Rounded MIPS_msa_hadd_s_h, // Vector Signed Horizontal Add MIPS_msa_hadd_s_w, // Vector Signed Horizontal Add MIPS_msa_hadd_s_d, // Vector Signed Horizontal Add MIPS_msa_hadd_u_h, // Vector Unsigned Horizontal Add MIPS_msa_hadd_u_w, // Vector Unsigned Horizontal Add MIPS_msa_hadd_u_d, // Vector Unsigned Horizontal Add MIPS_msa_hsub_s_h, // Vector Signed Horizontal Subtract MIPS_msa_hsub_s_w, // Vector Signed Horizontal Subtract MIPS_msa_hsub_s_d, // Vector Signed Horizontal Subtract MIPS_msa_hsub_u_h, // Vector Unsigned Horizontal Subtract MIPS_msa_hsub_u_w, // Vector Unsigned Horizontal Subtract MIPS_msa_hsub_u_d, // Vector Unsigned Horizontal Subtract MIPS_msa_and_v, // Vector Logical And MIPS_msa_andi_b, // Immediate Logical And MIPS_msa_or_v, // Vector Logical Or MIPS_msa_ori_b, // Immediate Logical Or MIPS_msa_nor_v, // Vector Logical Negated Or MIPS_msa_nori_b, // Immediate Logical Negated Or MIPS_msa_xor_v, // Vector Logical Exclusive Or MIPS_msa_xori_b, // Immediate Logical Exclusive Or MIPS_msa_bmnz_v, // Vector Bit Move If Not Zero MIPS_msa_bmnzi_b, // Immediate Bit Move If Not Zero MIPS_msa_bmz_v, // Vector Bit Move If Zero MIPS_msa_bmzi_b, // Immediate Bit Move If Zero MIPS_msa_bsel_v, // Vector Bit Select MIPS_msa_bseli_b, // Immediate Bit Select MIPS_msa_shf_b, // Immediate Set Shuffle Elements MIPS_msa_shf_h, // Immediate Set Shuffle Elements MIPS_msa_shf_w, // Immediate Set Shuffle Elements MIPS_msa_bnz_v, // Immediate Branch If Not Zero (At Least One Element of Any Format Is Not Zero) MIPS_msa_bz_v, // Immediate Branch If Zero (All Elements of Any Format Are Zero) MIPS_msa_fill_b, // Vector Fill from GPR MIPS_msa_fill_h, // Vector Fill from GPR MIPS_msa_fill_w, // Vector Fill from GPR MIPS_msa_fill_d, // Vector Fill from GPR MIPS_msa_pcnt_b, // Vector Population Count MIPS_msa_pcnt_h, // Vector Population Count MIPS_msa_pcnt_w, // Vector Population Count MIPS_msa_pcnt_d, // Vector Population Count MIPS_msa_nloc_b, // Vector Leading Ones Count MIPS_msa_nloc_h, // Vector Leading Ones Count MIPS_msa_nloc_w, // Vector Leading Ones Count MIPS_msa_nloc_d, // Vector Leading Ones Count MIPS_msa_nlzc_b, // Vector Leading Zeros Count MIPS_msa_nlzc_h, // Vector Leading Zeros Count MIPS_msa_nlzc_w, // Vector Leading Zeros Count MIPS_msa_nlzc_d, // Vector Leading Zeros Count MIPS_msa_copy_s_b, // Element Copy to GPR Signed MIPS_msa_copy_s_h, // Element Copy to GPR Signed MIPS_msa_copy_s_w, // Element Copy to GPR Signed MIPS_msa_copy_s_d, // Element Copy to GPR Signed MIPS_msa_copy_u_b, // Element Copy to GPR Unsigned MIPS_msa_copy_u_h, // Element Copy to GPR Unsigned MIPS_msa_copy_u_w, // Element Copy to GPR Unsigned MIPS_msa_copy_u_d, // Element Copy to GPR Unsigned MIPS_msa_insert_b, // GPR Insert Element MIPS_msa_insert_h, // GPR Insert Element MIPS_msa_insert_w, // GPR Insert Element MIPS_msa_insert_d, // GPR Insert Element MIPS_msa_insve_b, // Element Insert Element MIPS_msa_insve_h, // Element Insert Element MIPS_msa_insve_w, // Element Insert Element MIPS_msa_insve_d, // Element Insert Element MIPS_msa_bnz_b, // Immediate Branch If All Elements Are Not Zero MIPS_msa_bnz_h, // Immediate Branch If All Elements Are Not Zero MIPS_msa_bnz_w, // Immediate Branch If All Elements Are Not Zero MIPS_msa_bnz_d, // Immediate Branch If All Elements Are Not Zero MIPS_msa_bz_b, // Immediate Branch If At Least One Element Is Zero MIPS_msa_bz_h, // Immediate Branch If At Least One Element Is Zero MIPS_msa_bz_w, // Immediate Branch If At Least One Element Is Zero MIPS_msa_bz_d, // Immediate Branch If At Least One Element Is Zero MIPS_msa_ldi_b, // Immediate Load MIPS_msa_ldi_h, // Immediate Load MIPS_msa_ldi_w, // Immediate Load MIPS_msa_ldi_d, // Immediate Load MIPS_msa_fcaf_w, // Vector Floating-Point Quiet Compare Always False MIPS_msa_fcaf_d, // Vector Floating-Point Quiet Compare Always False MIPS_msa_fcun_w, // Vector Floating-Point Quiet Compare Unordered MIPS_msa_fcun_d, // Vector Floating-Point Quiet Compare Unordered MIPS_msa_fceq_w, // Vector Floating-Point Quiet Compare Equal MIPS_msa_fceq_d, // Vector Floating-Point Quiet Compare Equal MIPS_msa_fcueq_w, // Vector Floating-Point Quiet Compare Unordered or Equal MIPS_msa_fcueq_d, // Vector Floating-Point Quiet Compare Unordered or Equal MIPS_msa_fclt_w, // Vector Floating-Point Quiet Compare Less Than MIPS_msa_fclt_d, // Vector Floating-Point Quiet Compare Less Than MIPS_msa_fcult_w, // Vector Floating-Point Quiet Compare Unordered or Less Than MIPS_msa_fcult_d, // Vector Floating-Point Quiet Compare Unordered or Less Than MIPS_msa_fcle_w, // Vector Floating-Point Quiet Compare Less or Equal MIPS_msa_fcle_d, // Vector Floating-Point Quiet Compare Less or Equal MIPS_msa_fcule_w, // Vector Floating-Point Quiet Compare Unordered or Less or Equal MIPS_msa_fcule_d, // Vector Floating-Point Quiet Compare Unordered or Less or Equal MIPS_msa_fsaf_w, // Vector Floating-Point Signaling Compare Always False MIPS_msa_fsaf_d, // Vector Floating-Point Signaling Compare Always False MIPS_msa_fsun_w, // Vector Floating-Point Signaling Compare Unordered MIPS_msa_fsun_d, // Vector Floating-Point Signaling Compare Unordered MIPS_msa_fseq_w, // Vector Floating-Point Signaling Compare Equal MIPS_msa_fseq_d, // Vector Floating-Point Signaling Compare Equal MIPS_msa_fsueq_w, // Vector Floating-Point Signaling Compare Unordered or Equal MIPS_msa_fsueq_d, // Vector Floating-Point Signaling Compare Unordered or Equal MIPS_msa_fslt_w, // Vector Floating-Point Signaling Compare Less Than MIPS_msa_fslt_d, // Vector Floating-Point Signaling Compare Less Than MIPS_msa_fsult_w, // Vector Floating-Point Signaling Compare Unordered or Less Than MIPS_msa_fsult_d, // Vector Floating-Point Signaling Compare Unordered or Less Than MIPS_msa_fsle_w, // Vector Floating-Point Signaling Compare Less or Equal MIPS_msa_fsle_d, // Vector Floating-Point Signaling Compare Less or Equal MIPS_msa_fsule_w, // Vector Floating-Point Signaling Compare Unordered or Less or Equal MIPS_msa_fsule_d, // Vector Floating-Point Signaling Compare Unordered or Less or Equal MIPS_msa_fadd_w, // Vector Floating-Point Addition MIPS_msa_fadd_d, // Vector Floating-Point Addition MIPS_msa_fsub_w, // Vector Floating-Point Subtraction MIPS_msa_fsub_d, // Vector Floating-Point Subtraction MIPS_msa_fmul_w, // Vector Floating-Point Multiplication MIPS_msa_fmul_d, // Vector Floating-Point Multiplication MIPS_msa_fdiv_w, // Vector Floating-Point Division MIPS_msa_fdiv_d, // Vector Floating-Point Division MIPS_msa_fmadd_w, // Vector Floating-Point Multiply-Add MIPS_msa_fmadd_d, // Vector Floating-Point Multiply-Add MIPS_msa_fmsub_w, // Vector Floating-Point Multiply-Sub MIPS_msa_fmsub_d, // Vector Floating-Point Multiply-Sub MIPS_msa_fexp2_w, // Vector Floating-Point Base 2 Exponentiation MIPS_msa_fexp2_d, // Vector Floating-Point Base 2 Exponentiation MIPS_msa_fexdo_h, // Vector Floating-Point Down-Convert Interchange Format MIPS_msa_fexdo_w, // Vector Floating-Point Down-Convert Interchange Format MIPS_msa_ftq_h, // Vector Floating-Point Convert to Fixed-Point MIPS_msa_ftq_w, // Vector Floating-Point Convert to Fixed-Point MIPS_msa_fmin_w, // Vector Floating-Point Minimum MIPS_msa_fmin_d, // Vector Floating-Point Minimum MIPS_msa_fmin_a_w, // Vector Floating-Point Minimum Based on Absolute Values MIPS_msa_fmin_a_d, // Vector Floating-Point Minimum Based on Absolute Values MIPS_msa_fmax_w, // Vector Floating-Point Maximum MIPS_msa_fmax_d, // Vector Floating-Point Maximum MIPS_msa_fmax_a_w, // Vector Floating-Point Maximum Based on Absolute Values MIPS_msa_fmax_a_d, // Vector Floating-Point Maximum Based on Absolute Values MIPS_msa_fcor_w, // Vector Floating-Point Quiet Compare Ordered MIPS_msa_fcor_d, // Vector Floating-Point Quiet Compare Ordered MIPS_msa_fcune_w, // Vector Floating-Point Quiet Compare Unordered or Not Equal MIPS_msa_fcune_d, // Vector Floating-Point Quiet Compare Unordered or Not Equal MIPS_msa_fcne_w, // Vector Floating-Point Quiet Compare Not Equal MIPS_msa_fcne_d, // Vector Floating-Point Quiet Compare Not Equal MIPS_msa_mul_q_h, // Vector Fixed-Point Multiply MIPS_msa_mul_q_w, // Vector Fixed-Point Multiply MIPS_msa_madd_q_h, // Vector Fixed-Point Multiply and Add MIPS_msa_madd_q_w, // Vector Fixed-Point Multiply and Add MIPS_msa_msub_q_h, // Vector Fixed-Point Multiply and Subtract MIPS_msa_msub_q_w, // Vector Fixed-Point Multiply and Subtract MIPS_msa_fsor_w, // Vector Floating-Point Signaling Compare Ordered MIPS_msa_fsor_d, // Vector Floating-Point Signaling Compare Ordered MIPS_msa_fsune_w, // Vector Floating-Point Signaling Compare Unordered or Not Equal MIPS_msa_fsune_d, // Vector Floating-Point Signaling Compare Unordered or Not Equal MIPS_msa_fsne_w, // Vector Floating-Point Signaling Compare Not Equal MIPS_msa_fsne_d, // Vector Floating-Point Signaling Compare Not Equal MIPS_msa_mulr_q_h, // Vector Fixed-Point Multiply Rounded MIPS_msa_mulr_q_w, // Vector Fixed-Point Multiply Rounded MIPS_msa_maddr_q_h, // Vector Fixed-Point Multiply and Add Rounded MIPS_msa_maddr_q_w, // Vector Fixed-Point Multiply and Add Rounded MIPS_msa_msubr_q_h, // Vector Fixed-Point Multiply and Subtract Rounded MIPS_msa_msubr_q_w, // Vector Fixed-Point Multiply and Subtract Rounded MIPS_msa_fclass_w, // Vector Floating-Point Class Mask MIPS_msa_fclass_d, // Vector Floating-Point Class Mask MIPS_msa_ftrunc_s_w, // Vector Floating-Point Truncate and Convert to Signed Integer MIPS_msa_ftrunc_s_d, // Vector Floating-Point Truncate and Convert to Signed Integer MIPS_msa_ftrunc_u_w, // Vector Floating-Point Truncate and Convert to Unsigned Integer MIPS_msa_ftrunc_u_d, // Vector Floating-Point Truncate and Convert to Unsigned Integer MIPS_msa_fsqrt_w, // Vector Floating-Point Square Root MIPS_msa_fsqrt_d, // Vector Floating-Point Square Root MIPS_msa_frsqrt_w, // Vector Approximate Floating-Point Reciprocal of Square Root MIPS_msa_frsqrt_d, // Vector Approximate Floating-Point Reciprocal of Square Root MIPS_msa_frcp_w, // Vector Approximate Floating-Point Reciprocal MIPS_msa_frcp_d, // Vector Approximate Floating-Point Reciprocal MIPS_msa_frint_w, // Vector Floating-Point Round to Integer MIPS_msa_frint_d, // Vector Floating-Point Round to Integer MIPS_msa_flog2_w, // Vector Floating-Point Base 2 Logarithm MIPS_msa_flog2_d, // Vector Floating-Point Base 2 Logarithm MIPS_msa_fexupl_w, // Vector Floating-Point Up-Convert Interchange Format Left MIPS_msa_fexupl_d, // Vector Floating-Point Up-Convert Interchange Format Left MIPS_msa_fexupr_w, // Vector Floating-Point Up-Convert Interchange Format Right MIPS_msa_fexupr_d, // Vector Floating-Point Up-Convert Interchange Format Right MIPS_msa_ffql_w, // Vector Floating-Point Convert from Fixed-Point Left MIPS_msa_ffql_d, // Vector Floating-Point Convert from Fixed-Point Left MIPS_msa_ffqr_w, // Vector Floating-Point Convert from Fixed-Point Right MIPS_msa_ffqr_d, // Vector Floating-Point Convert from Fixed-Point Right MIPS_msa_ftint_s_w, // Vector Floating-Point Convert to Signed Integer MIPS_msa_ftint_s_d, // Vector Floating-Point Convert to Signed Integer MIPS_msa_ftint_u_w, // Vector Floating-Point Round and Convert to Unsigned Integer MIPS_msa_ftint_u_d, // Vector Floating-Point Round and Convert to Unsigned Integer MIPS_msa_ffint_s_w, // Vector Floating-Point Round and Convert from Signed Integer MIPS_msa_ffint_s_d, // Vector Floating-Point Round and Convert from Signed Integer MIPS_msa_ffint_u_w, // Vector Floating-Point Convert from Unsigned Integer MIPS_msa_ffint_u_d, // Vector Floating-Point Convert from Unsigned Integer MIPS_msa_ctcmsa, // GPR Copy to MSA Control Register MIPS_msa_cfcmsa, // GPR Copy from MSA Control Register MIPS_msa_move_v, // Vector Move // MIPS R6 (LSA is also part of MSA) MIPS_lsa, // Left Shift Add MIPS_dlsa, // Doubleword Left Shift Add // MIPS R3 EVA MIPS_lbe, // Load Byte EVA MIPS_lbue, // Load Byte Unsigned EVA MIPS_lhe, // Load Halfword EVA MIPS_lhue, // Load Halfword Unsigned EVA MIPS_lwe, // Load Word EVA MIPS_sbe, // Store Byte EVA MIPS_she, // Store Halfword EVA MIPS_swe, // Store Word EVA MIPS_lle, // Load Linked Word EVA MIPS_sce, // Store Conditional Word EVA MIPS_cachee, // Perform Cache Operation EVA MIPS_prefe, // Prefetch EVA MIPS_lwle, // Load Word Left EVA MIPS_lwre, // Load Word Right EVA MIPS_swle, // Store Word Left EVA MIPS_swre, // Store Word Right EVA // new MIPS16e2 instructions MIPS_movtz, // Move Conditional on T Equal to Zero MIPS_movtn, // Move Zero Conditional on T Not Equal to Zero // interAptiv core custom instructions MIPS_copyw, // Copy Data to Aligned Memory Location MIPS_ucopyw, // Copy Data to Unaligned Memory Location MIPS_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { H8_null = 0, // Unknown Operation H8_add, // Add binary H8_adds, // Add with sign extension H8_addx, // Add with extend carry H8_and, // Logical AND H8_andc, // Logical AND with control register H8_band, // Bit AND H8_bra, // Branch always H8_brn, // Branch never H8_bhi, // Branch if higher H8_bls, // Branch if lower or same H8_bcc, // Branch if carry clear (higher or same) H8_bcs, // Branch if carry set (lower) H8_bne, // Branch if not equal H8_beq, // Branch if equal H8_bvc, // Branch if overflow clear H8_bvs, // Branch if overflow set H8_bpl, // Branch if plus H8_bmi, // Branch if minus H8_bge, // Branch if greates or equal H8_blt, // Branch if less H8_bgt, // Branch if greater H8_ble, // Branch if less or equal H8_bclr, // Bit clear H8_biand, // Bit invert AND H8_bild, // Bit invert load H8_bior, // Bit invert OR H8_bist, // Bit invert store H8_bixor, // Bit invert XOR H8_bld, // Bit load H8_bnot, // Bit NOT H8_bor, // Bit OR H8_bset, // Bit set H8_bsr, // Branch to subroutine H8_bst, // Bit store H8_btst, // Bit test H8_bxor, // Bit XOR H8_clrmac, // Clear MAC register H8_cmp, // Compare H8_daa, // Decimal adjust add H8_das, // Decimal adjust subtract H8_dec, // Decrement H8_divxs, // Divide extended as signed H8_divxu, // Divide extended as unsigned H8_eepmov, // Move data to EEPROM H8_exts, // Extend as signed H8_extu, // Extend as unsigned H8_inc, // Increment H8_jmp, // Jump H8_jsr, // Jump to subroutine H8_ldc, // Load to control register H8_ldm, // Load to multiple registers H8_ldmac, // Load to MAC register H8_mac, // Multiply and accumulate H8_mov, // Move data H8_movfpe, // Move from peripheral with E clock H8_movtpe, // Move to peripheral with E clock H8_mulxs, // Multiply extend as signed H8_mulxu, // Multiply extend as unsigned H8_neg, // Negate H8_nop, // No operation H8_not, // Logical complement H8_or, // Logical OR H8_orc, // Logical OR with control register H8_pop, // Pop data from stack H8_push, // Push data on stack H8_rotl, // Rotate left H8_rotr, // Rotate right H8_rotxl, // Rotate with extend carry left H8_rotxr, // Rotate with extend carry right H8_rte, // Return from exception H8_rts, // Return from subroutine H8_shal, // Shift arithmetic left H8_shar, // Shift arithmetic right H8_shll, // Shift logical left H8_shlr, // Shift logical right H8_sleep, // Power down mode H8_stc, // Store from control register H8_stm, // Store from multiple registers H8_stmac, // Store from MAC register H8_sub, // Subtract binary H8_subs, // Subtract with sign extension H8_subx, // Subtract with extend carry H8_tas, // Test and set H8_trapa, // Trap always H8_xor, // Logical XOR H8_xorc, // Logical XOR with control register // H8SX H8_rtel, // Returns from an exception, restoring data to multiple general registers H8_rtsl, // Returns from a subroutine, restoring data to multiple general registers H8_movmd, // Transfers a data block H8_movsd, // Transfers a data block with zero detection H8_bras, // Branch always after the next instruction (delay slot) H8_movab, // MOVe effective Address/B H8_movaw, // MOVe effective Address/W H8_moval, // MOVe effective Address/L H8_bsetne, // Bit SET if Not Equal H8_bseteq, // Bit SET if EQual H8_bclrne, // Bit CLeaR if Not Equal H8_bclreq, // Bit CLeaR if Equal H8_bstz, // Bit STore Zero flag H8_bistz, // Bit Invert STore Zero flag H8_bfld, // Bit Field LoaD H8_bfst, // Bit Field STore H8_muls, // MULtiply as Signed H8_divs, // DIVide as Signed H8_mulu, // MULtiply as Unsigned H8_divu, // DIVide as Unsigned H8_mulsu, // MULtiply as Signed H8_muluu, // MULtiply as Unsigned H8_brabc, // BRAnch if Bit Cleared H8_brabs, // BRAnch if Bit Set H8_bsrbc, // Branch to SubRoutine if Bit Cleared H8_bsrbs, // Branch to SubRoutine if Bit Set H8_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { PIC_null = 0, // Unknown Operation // BYTE-ORIENTED FILE REGISTER OPERATIONS PIC_addwf, // Add W and f PIC_andwf, // AND W with f PIC_clrf, // Clear f PIC_clrw, // Clear W PIC_comf, // Complement f PIC_decf, // Decrement f PIC_decfsz, // Decrement f, Skip if 0 PIC_incf, // Increment f PIC_incfsz, // Increment f, Skip if 0 PIC_iorwf, // Inclusive OR W with f PIC_movf, // Move f PIC_movwf, // Move W to f PIC_nop, // No Operation PIC_rlf, // Rotate Left f through Carry PIC_rrf, // Rotate Right f through Carry PIC_subwf, // Subtract W from f PIC_swapf, // Swap nibbles in f PIC_xorwf, // Exclusive OR W with f // BIT-ORIENTED FILE REGISTER OPERATIONS PIC_bcf, // Bit Clear f PIC_bsf, // Bit Set f PIC_btfsc, // Bit Test f, Skip if Clear PIC_btfss, // Bit Test f, Skip if Set // LITERAL AND CONTROL OPERATIONS PIC_addlw, // Add literal and W PIC_andlw, // AND literal with W PIC_call, // Call subroutine PIC_clrwdt, // Clear Watchdog Timer PIC_goto, // Go to address PIC_iorlw, // Inclusive OR literal with W PIC_movlw, // Move literal to W PIC_retfie, // Return from interrupt PIC_retlw, // Return with literal in W PIC_return, // Return from Subroutine PIC_sleep, // Go into standby mode PIC_sublw, // Subtract W from literal PIC_xorlw, // Exclusive OR literal with W // ADDITIONAL INSTRUCTIONS TO MAINTAIN COMPITIBILITY WITH 12C5xx,16C5x PIC_option, // Load OPTION register PIC_tris, // Load TRIS Register // MACROS PIC_movfw, // Move Contents of File Reg to W PIC_tstf, // Test Contents of File Register PIC_negf, // Negate File Register Contents PIC_b, // Branch to Address PIC_clrc, // Clear Carry PIC_clrdc, // Clear Digit Carry PIC_clrz, // Clear Zero PIC_setc, // Set Carry PIC_setdc, // Set Digit Carry PIC_setz, // Set Zero PIC_skpc, // Skip on Carry PIC_skpdc, // Skip on Digit Carry PIC_skpnc, // Skip on No Carry PIC_skpndc, // Skip on No Digit Carry PIC_skpnz, // Skip on No Zero PIC_skpz, // Skip on Zero PIC_bc, // Branch on Carry to Address k PIC_bdc, // Branch on Digit Carry to k PIC_bnc, // Branch on No Carry to k PIC_bndc, // Branch on No Digit Carry to k PIC_bnz, // Branch on No Zero to Address PIC_bz, // Branch on Zero to Address k PIC_addcf, // Add Carry to File Register PIC_adddcf, // Add Digit to File Register PIC_subcf, // Subtract Carry from File Reg // ADDITIONAL INSTRUCTIONS FOR 18Cxx // BYTE-ORIENTED FILE REGISTER OPERATIONS PIC_addwf3, // Add W and f PIC_addwfc3, // Add W and Carry to f PIC_andwf3, // AND W with f PIC_clrf2, // Clear f PIC_comf3, // Complement f PIC_cpfseq2, // Compare f with W, Skip if == PIC_cpfsgt2, // Compare f with W, Skip if > PIC_cpfslt2, // Compare f with W, Skip if < PIC_decf3, // Decrement f PIC_decfsz3, // Decrement f, Skip if 0 PIC_dcfsnz3, // Decrement f, Skip if not 0 PIC_incf3, // Increment f PIC_incfsz3, // Increment f, Skip if 0 PIC_infsnz3, // Increment f, Skip if not 0 PIC_iorwf3, // Inclusive OR W with f PIC_movf3, // Move f PIC_movff2, // Move fs to fd PIC_movwf2, // Move W to f PIC_mulwf2, // Multiply W with f PIC_negf2, // Negate f PIC_rlcf3, // Rotate Left f through Carry PIC_rlncf3, // Rotate Left f PIC_rrcf3, // Rotate Right f through Carry PIC_rrncf3, // Rotate Right f PIC_setf2, // Set f PIC_subfwb3, // Substract f from W with borrow PIC_subwf3, // Substract W from f PIC_subwfb3, // Substract W from f with borrow PIC_swapf3, // Swap nibbles in f PIC_tstfsz2, // Test f, Skip if 0 PIC_xorwf3, // Exclusive OR W with f // BIT-ORIENTED FILE REGISTER OPERATIONS PIC_bcf3, // Bit Clear f PIC_bsf3, // Bit Set f PIC_btfsc3, // Bit Test f, Skip if Clear PIC_btfss3, // Bit Test f, Skip if Set PIC_btg3, // Bit Toggle f // CONTROL OPERATIONS PIC_bc1, // Branch if Carry PIC_bn1, // Branch if Negative PIC_bnc1, // Branch if not Carry PIC_bnn1, // Branch if not Negative PIC_bnov1, // Branch if not Overflow PIC_bnz1, // Branch if not Zero PIC_bov1, // Branch if Overflow PIC_bra1, // Branch unconditionally PIC_bz1, // Branch if Zero PIC_call2, // Call subroutine // PIC_clrwdt PIC_daw0, // Decimal Adjust W // PIC_goto // PIC_nop // PIC_nop PIC_pop0, // Pop top of return stack PIC_push0, // Push top of return stack PIC_rcall1, // Relative Call subroutine PIC_reset0, // Software device Reset PIC_retfie1, // Return from interrupt enable // PIC_retlw PIC_return1, // Return from Subroutine // PIC_sleep // LITERAL OPERATIONS // PIC_addlw // PIC_andlw // PIC_iorlw PIC_lfsr2, // Move literal to FSR PIC_movlb1, // Move literal to BSR // PIC_movlw PIC_mullw1, // Multiply literal with W // PIC_retlw // PIC_sublw // PIC_xorlw // DATA MEMORY <-> PROGRAM MEMORY OPERATIONS PIC_tblrd0, // Table Read PIC_tblrd0p, // Table Read with post-increment PIC_tblrd0m, // Table Read with post-decrement PIC_tblrdp0, // Table Read with pre-increment PIC_tblwt0, // Table Write PIC_tblwt0p, // Table Write with post-increment PIC_tblwt0m, // Table Write with post-decrement PIC_tblwtp0, // Table Write with pre-increment // ADDITIONAL INSTRUCTIONS FOR 16F1x and 12F1x PIC_addwfc, // Add W and Carry to f PIC_movlp, // Move literal to PCLATH PIC_movlb, // Move literal to BSR PIC_addfsr, // Add Literal to FSRn PIC_asrf, // Arithmetic Right Shift PIC_lslf, // Logical Left Shift PIC_lsrf, // Logical Right Shift PIC_subwfb, // Subtract with Borrow W from f PIC_bra, // Relative Branch PIC_brw, // Relative Branch with W PIC_callw, // Call Subroutine with W PIC_reset, // Software device Reset PIC_moviw, // Move INDFn to W PIC_movwi, // Move W to INDFn PIC_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { PIC16_null = 0, // Unknown Operation // Move Instructions PIC16_EXCH, // Exchange Wns and Wnd PIC16_MOV, // Move PIC16_SWAP, // Byte or Nibble Swap Wn PIC16_TBLRDH, // Table Read High PIC16_TBLRDL, // Table Read Low PIC16_TBLWTH, // Table Write High PIC16_TBLWTL, // Table Write Low // Only for PIC24E and dsPIC33E PIC16_MOVPAG, // Move to Page Register // Math Instructions PIC16_ADD, // Add PIC16_ADDC, // Add with carry PIC16_DAWB, // Decimal Adjust Wn PIC16_DEC, // Decrement PIC16_DEC2, // Decrement by 2 PIC16_DIV, // Signed/Unsigned Integer Divide PIC16_INC, // Increment PIC16_INC2, // Increment by 2 PIC16_MUL, // Integer Multiply PIC16_SE, // Sign-Extend Ws PIC16_SUB, // Subtract PIC16_SUBB, // Subtract with Borrow PIC16_SUBBR, // Subtract with Borrow PIC16_SUBR, // Subtract PIC16_ZE, // Zero - Extend Ws // Only for PIC24E and dsPIC33E PIC16_MULW, // Integer Multiply with 16-bit Result // Only for dsPIC PIC16_DIVF, // Fractional Divide // Logic Instructions PIC16_AND, // AND PIC16_CLR, // Clear f or WREG | Clear Wd PIC16_COM, // Complement f | Complement Ws PIC16_IOR, // Inclusive OR PIC16_NEG, // Negate f | Negate Ws PIC16_SETM, // Set f or WREG | Set Ws PIC16_XOR, // Exclusive OR // Rotate/Shift Instructions PIC16_ASR, // Arithmetic Shift Right PIC16_LSR, // Logical Shift Right PIC16_RLC, // Rotate Left through Carry PIC16_RLNC, // Rotate Left without Carry PIC16_RRC, // Rotate Right through Carry PIC16_RRNC, // Rotate Right without Carry PIC16_SL, // Shift Left // Bit Instructions PIC16_BCLR, // Bit Clear f | Bit Clear in Ws PIC16_BSET, // Bit Set f | Bit Set in Ws PIC16_BSW, // Bit Write in Ws PIC16_BTG, // Bit Toggle f | Bit Toggle in Ws PIC16_BTST, // Bit Test f | Bit Test in Ws PIC16_BTSTS, // Bit Test/Set f | Bit Test/Set in Ws PIC16_FBCL, // Find First Bit Change from Left PIC16_FF1L, // Find First One from Left PIC16_FF1R, // Find First One from Right // Compare/Skip and Compare/Branch Instructions PIC16_BTSC, // Bit Test, Skip if Clear PIC16_BTSS, // Bit Test, Skip if Set PIC16_CP, // Compare, Set Status Flags PIC16_CP0, // Compare, Set Status Flags PIC16_CPB, // Compare using Borrow, set Status Flags PIC16_CPSEQ, // Compare Wb with Wn, Skip if Equal (Wb = Wn) PIC16_CPSGT, // Signed Compare Wb with Wn, Skip if Greater Than (Wb > Wn) PIC16_CPSLT, // Signed Compare Wb with Wn, Skip if Less Than (Wb < Wn) PIC16_CPSNE, // Signed Compare Wb with Wn, Skip if Not Equal (Wb != Wn) // Only for PIC24E and dsPIC33E PIC16_CPBEQ, // Compare Wb with Wn, branch if = PIC16_CPBNE, // Compare Wb with Wn, Branch if Not Equal (Wb != Wn) PIC16_CPBGT, // Signed Compare Wb with Wn, Branch if Greater Than (Wb > Wn) PIC16_CPBLT, // Signed Compare Wb with Wn, Branch if Less Than (Wb < Wn) // Program Flow Instructions PIC16_BRA, // Branch unconditionally/conditionally PIC16_CALL, // Call Subroutine | Call Indirect Subroutine PIC16_GOTO, // Unconditional Jump PIC16_RCALL, // Relative Call | Relative Call PIC16_REPEAT, // Repeat next instruction PIC16_RETFIE, // Return from Interrupt PIC16_RETLW, // Return with Literal in Wn PIC16_RETURN, // Return // Only for dsPIC PIC16_DO, // Initialize Hardware Loop // Shadow/Stack Instructions PIC16_LNK, // Allocate Stack Frame PIC16_POP, // Pop TOS | Pop Shadow Registers PIC16_PUSH, // Push to TOS | Push Shadow Registers PIC16_ULNK, // De-allocate Stack Frame // Control Instructions PIC16_CLRWDT, // Clear Watchdog Timer PIC16_DISI, // Disable Interrupts Temporarily PIC16_NOP, // No operation PIC16_NOPR, // No operation PIC16_PWRSAV, // Enter Power Saving Mode PIC16_RESET, // Reset // DSP Instructions [Only for dsPIC30F, dsPIC33F and dsPIC33E] PIC16_LAC, // Load Accumulator PIC16_SAC, // Store Accumulator PIC16_SFTAC, // Arithmetic Shift Accumulator PIC16_CLR1, // Clear Accumulator, Prefetch Operands PIC16_ED, // Euclidean Distance (No Accumulate) PIC16_EDAC, // Euclidean Distance PIC16_MAC, // Multiply and Accumulate PIC16_MOVSAC, // Prefetch Operands and Store Accumulator PIC16_MPY, // Multiply to Accumulator PIC16_MSC, // Multiply and Subtract from Accumulator // ICD instructions PIC16_BREAK, // ICD Break PIC16_URUN, // ICD Run PIC16_SSTEP, // ICD Single Step PIC16_FEX, // ICD Execute PIC16_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { SPARC_null = 0, // Unknown Operation // SPARC V9 instructions SPARC_add, // Add SPARC_addcc, // Add and modify condition codes SPARC_addc, // Add with carry SPARC_addccc, // Add with carry and modify condition codes SPARC_and, // And SPARC_andcc, // And and modify condition codes SPARC_andn, // And not SPARC_andncc, // And not (and modify condition codes) SPARC_b, // Branch on integer condition codes SPARC_bp, // Branch on integer condition codes with prediction SPARC_bpr, // Branch on contents of integer register with prediction SPARC_call, // Call and link SPARC_casa, // Compare and swap word in alternate space SPARC_casxa, // Compare and swap doubleword in alternate space SPARC_done, // Return from trap SPARC_fabs, // Floating-point absolute value SPARC_fadd, // Floating-point add SPARC_fbp, // Branch on floating-point condition codes with prediction SPARC_fb, // Branch on floating-point condition codes SPARC_fcmp, // Floating-point compare SPARC_fcmpe, // Floating-point compare (exception if unordered) SPARC_fdiv, // Floating-point divide SPARC_fdmulq, // Floating-point multiply double to quad SPARC_flush, // Flush instruction memory SPARC_flushw, // Flush register windows SPARC_fmov, // Floating-point move SPARC_fmovcc, // Conditional floating-point move SPARC_fmovr, // Move floating-point register if integer register contents satisfy condition SPARC_fmul, // Floating-point multiply SPARC_fneg, // Floating-point negate SPARC_fsmuld, // Floating-point multiply single to double SPARC_fsqrt, // Floating-point square root SPARC_fsub, // Floating-point subtract SPARC_fstox, // Convert single floating point to 64-bit integer SPARC_fdtox, // Convert doublee floating point to 64-bit integer SPARC_fqtox, // Convert quad floating point to 64-bit integer SPARC_fxtos, // Convert 64-bit integer to single floating point SPARC_fxtod, // Convert 64-bit integer to double floating point SPARC_fxtoq, // Convert 64-bit integer to quad floating point SPARC_fitos, // Convert 32-bit integer to single floating point SPARC_fdtos, // Convert single floating point to single floating point SPARC_fqtos, // Convert quade floating point to single floating point SPARC_fitod, // Convert 32-bit integer to double floating point SPARC_fstod, // Convert single floating point to double floating point SPARC_fqtod, // Convert quade floating point to double floating point SPARC_fitoq, // Convert 32-bit integer to quad floating point SPARC_fstoq, // Convert single floating point to quad floating point SPARC_fdtoq, // Convert quade floating point to quad floating point SPARC_fstoi, // Convert single floating point to 32-bit integer SPARC_fdtoi, // Convert doublee floating point to 32-bit integer SPARC_fqtoi, // Convert quad floating point to 32-bit integer SPARC_illtrap, // Illegal instruction SPARC_impdep1, // Implementation-dependent instruction SPARC_impdep2, // Implementation-dependent instruction SPARC_jmpl, // Jump and link SPARC_ldd, // Load doubleword SPARC_ldda, // Load doubleword from alternate space SPARC_lddf, // Load double floating-point SPARC_lddfa, // Load double floating-point from alternate space SPARC_ldf, // Load floating-point SPARC_ldfa, // Load floating-point from alternate space SPARC_ldfsr, // Load floating-point state register lower SPARC_ldqf, // Load quad floating-point SPARC_ldqfa, // Load quad floating-point from alternate space SPARC_ldsb, // Load signed byte SPARC_ldsba, // Load signed byte from alternate space SPARC_ldsh, // Load signed halfword SPARC_ldsha, // Load signed halfword from alternate space SPARC_ldstub, // Load-store unsigned byte SPARC_ldstuba, // Load-store unsigned byte in alternate space SPARC_ldsw, // Load signed word SPARC_ldswa, // Load signed word from alternate space SPARC_ldub, // Load unsigned byte SPARC_lduba, // Load unsigned byte from alternate space SPARC_lduh, // Load unsigned halfword SPARC_lduha, // Load unsigned halfword from alternate space SPARC_lduw, // Load unsigned word SPARC_lduwa, // Load unsigned word from alternate space SPARC_ldx, // Load extended SPARC_ldxa, // Load extended from alternate space SPARC_ldxfsr, // Load extended floating-point state register SPARC_membar, // Memory barrier SPARC_mov, // Move integer register if condition is satisfied SPARC_movr, // Move integer register on contents of integer register SPARC_mulscc, // Multiply step and modify condition codes SPARC_mulx, // Multiply 64-bit integers SPARC_nop, // No operation SPARC_or, // Inclusive-or SPARC_orcc, // Inclusive-or (and modify condition codes) SPARC_orn, // Inclusive-or not SPARC_orncc, // Inclusive-or not (and modify condition codes) SPARC_popc, // Population count SPARC_prefetch, // Prefetch data SPARC_prefetcha, // Prefetch data from alternate space SPARC_rd, // Read state register SPARC_rdpr, // Read privileged register SPARC_restore, // Restore caller's window SPARC_restored, // Window has been restored SPARC_retry, // Return from trap and retry SPARC_return, // Return SPARC_save, // Save caller's window SPARC_saved, // Window has been saved SPARC_sdiv, // 32-bit signed integer divide SPARC_sdivcc, // 32-bit signed integer divide and modify condition codes SPARC_sdivx, // 64-bit signed integer divide SPARC_sethi, // Set high 22 bits of low word of integer register SPARC_sir, // Software-initiated reset SPARC_sll, // Shift left logical SPARC_sllx, // Shift left logical, extended SPARC_smul, // Signed integer multiply SPARC_smulcc, // Signed integer multiply (and modify condition codes) SPARC_sra, // Shift right arithmetic SPARC_srax, // Shift right arithmetic, extended SPARC_srl, // Shift right logical SPARC_srlx, // Shift right logical, extended SPARC_stb, // Store byte SPARC_stba, // Store byte into alternate space SPARC_stbar, // Store barrier SPARC_std, // Store doubleword SPARC_stda, // Store doubleword into alternate space SPARC_stdf, // Store double floating-point SPARC_stdfa, // Store double floating-point into alternate space SPARC_stf, // Store floating-point SPARC_stfa, // Store floating-point into alternate space SPARC_stfsr, // Store floating-point state register SPARC_sth, // Store halfword SPARC_stha, // Store halfword into alternate space SPARC_stqf, // Store quad floating-point SPARC_stqfa, // Store quad floating-point into alternate space SPARC_stw, // Store word SPARC_stwa, // Store word into alternate space SPARC_stx, // Store extended SPARC_stxa, // Store extended into alternate space SPARC_stxfsr, // Store extended floating-point state register SPARC_sub, // Subtract SPARC_subcc, // Subtract and modify condition codes SPARC_subc, // Subtract with carry SPARC_subccc, // Subtract with carry and modify condition codes SPARC_swap, // Swap integer register with memory SPARC_swapa, // Swap integer register with memory in alternate space SPARC_taddcc, // Tagged add and modify condition codes SPARC_taddcctv, // Tagged add and modify condition codes (trap on overflow) SPARC_tsubcc, // Tagged subtract and modify condition codes SPARC_tsubcctv, // Tagged subtract and modify condition codes (trap on overflow) SPARC_t, // Trap on integer condition codes SPARC_udiv, // Unsigned integer divide SPARC_udivcc, // Unsigned integer divide and modify condition codes SPARC_udivx, // 64-bit unsigned integer divide SPARC_umul, // Unsigned integer multiply SPARC_umulcc, // Unsigned integer multiply and modify condition codes SPARC_wr, // Write Y register SPARC_wrpr, // Write privileged register SPARC_xnor, // Exclusive-nor SPARC_xnorcc, // Exclusive-nor (and modify condition codes) SPARC_xor, // Exclusive-or SPARC_xorcc, // Exclusive-or (and modify condition codes) // Synthetic instructions SPARC_cmp, // Compare SPARC_jmp, // Jump SPARC_iprefetch, // Instruction prefetch SPARC_tst, // Test SPARC_ret, // Return from subroutine SPARC_retl, // Return from leaf subroutine SPARC_setuw, // Load unsigned constant SPARC_setsw, // Load signed constant SPARC_setx, // Load 64-bit constant SPARC_signx, // Sign-extend 32-bit value to 64 bits SPARC_not, // One's complement SPARC_neg, // Two's complement SPARC_cas, // Compare and swap SPARC_casl, // Compare and swap, little endian SPARC_casx, // Compare and swap extended SPARC_casxl, // Compare and swap extended, little endian SPARC_inc, // Increment SPARC_inccc, // Increment and modify condition codes SPARC_dec, // Deccrement SPARC_deccc, // Decrement and modify condition codes SPARC_btst, // Bit test SPARC_bset, // Bit set SPARC_bclr, // Bit clear SPARC_btog, // Bit toggle SPARC_clr, // Clear SPARC_clrb, // Clear byte SPARC_clrh, // Clear halfword SPARC_clrx, // Clear extended word SPARC_clruw, // Clear upper word SPARC_pseudo_mov, // Move register // UtlraSPARC II extensions SPARC_alignaddress, // Calculate address for misaligned data access SPARC_array, // 3-D address to blocked byte address conversion SPARC_edge, // Edge boundary processing {little-endian} SPARC_faligndata, // Perform data alignment for misaligned data SPARC_fandnot1, // Negated src1 AND src2 (single precision) SPARC_fandnot2, // src1 AND negated src2 (single precision) SPARC_fand, // Logical AND (single precision) SPARC_fcmpeq, // Four 16-bit/two 32-bit compare; set integer dest if src1 = src2 SPARC_fcmpgt, // Four 16-bit/two 32-bit compare; set integer dest if src1 > src2 SPARC_fcmple, // Four 16-bit/two 32-bit compare; set integer dest if src1 <= src2 SPARC_fcmpne, // Four 16-bit/two 32-bit compare; set integer dest if src1 != src2 SPARC_fexpand, // Four 8-bit to 16-bit expands SPARC_fmul8sux16, // Signed upper 8/16-bit partitioned product of corresponding components SPARC_fmul8ulx16, // Unsigned lower 8/16-bit partitioned product of corresponding components SPARC_fmul8x16, // 8/16-bit partitioned product of corresponding components SPARC_fmul8x16al, // 8/16-bit lower a partitioned product of 4 components SPARC_fmul8x16au, // 8/16-bit upper a partitioned product of 4 components SPARC_fmuld8sux16, // Signed upper 8/16-bit multiply 32-bit partitioned product of components SPARC_fmuld8ulx16, // Unsigned lower 8/16-bit multiply 32-bit partitioned product of components SPARC_fnand, // Logical NAND (single precision) SPARC_fnor, // Logical NOR (single precision) SPARC_fnot1, // Negate (1's complement) src1 (single precision) SPARC_fnot2, // Negate (1's complement) src2 (single precision) SPARC_fone, // One fill (single precision) SPARC_fornot1, // Negated src1 OR src2 (single precision) SPARC_fornot2, // src1 OR negated src2 (single precision) SPARC_for, // Logical OR (single precision) SPARC_fpackfix, // Two 32-bit to 16-bit fixed pack SPARC_fpack, // Four 16-bit/two 32-bit pixel pack SPARC_fpadd, // Four 16-bit/two 32-bit partitioned add (single precision) SPARC_fpmerge, // Two 32-bit pixel to 64-bit pixel merge SPARC_fpsub, // Four 16-bit/two 32-bit partitioned subtract (single precision) SPARC_fsrc1, // Copy src1 (single precision) SPARC_fsrc2, // Copy src2 (single precision) SPARC_fxnor, // Logical XNOR (single precision) SPARC_fxor, // Logical XOR (single precision) SPARC_fzero, // Zero fill (single precision) SPARC_pdist, // Distance between 8 8-bit components SPARC_shutdown, // Power-down support // SPARC_stdfa, // 8/16-bit store from a double precision FP register // V8 only instructions SPARC_rett, // Return from trap // UA 2005 instructions SPARC_bmask, // Byte Mask SPARC_bshuffle, // Byte Shuffle SPARC_edgen, // Edge boundary processing (no CC) {little-endian} SPARC_rdhpr, // Read Hyperprivileged Register SPARC_wrhpr, // Write Hyperprivileged Register SPARC_siam, // Set Interval Arithmetic Mode SPARC_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { HPPA_null = 0, // Unknown Operation HPPA_add, // Add HPPA_addb, // Add and Branch HPPA_addi, // Add to Immediate HPPA_addib, // Add Immediate and Branch HPPA_addil, // Add to Immediate Left HPPA_and, // AND HPPA_andcm, // AND complement HPPA_b, // Branch HPPA_bb, // Branch on Bit HPPA_be, // Branch External HPPA_blr, // Branch and Link Register HPPA_break, // Break HPPA_bv, // Branch Vectored HPPA_bve, // Branch Vectored External HPPA_cldd, // Coprocessor Load Doubleword HPPA_cldw, // Coprocessor Load Word HPPA_clrbts, // Clear Branch Target Stack HPPA_cmpb, // Compare and Branch HPPA_cmpclr, // Compare and Clear HPPA_cmpib, // Compare Immediate and Branch HPPA_cmpiclr, // Compare Immediate and Clear HPPA_copr, // Coprocessor Operation HPPA_cstd, // Coprocessor Store Doubleword HPPA_cstw, // Coprocessor Store Word HPPA_dcor, // Decimal Correct HPPA_depd, // Deposit Doubleword HPPA_depdi, // Deposit Doubleword Immediate HPPA_depw, // Deposit Word HPPA_depwi, // Deposit Word Immediate HPPA_diag, // Diagnose HPPA_ds, // Divide Step HPPA_extrd, // Extract Doubleword HPPA_extrw, // Extract Word HPPA_fdc, // Flush Data Cache HPPA_fdce, // Flush Data Cache Entry HPPA_fic, // Flush Instruction Cache HPPA_fice, // Flush Instruction Cache Entry HPPA_hadd, // Halfword Parallel Add HPPA_havg, // Halfword Parallel Average HPPA_hshl, // Halfword Parallel Shift Left HPPA_hshladd, // Halfword Parallel Shift Left and Add HPPA_hshr, // Halfword Parallel Shift Right HPPA_hshradd, // Halfword Parallel Shift Right and Add HPPA_hsub, // Halfword Parallel Subtract HPPA_idtlbt, // Insert Data TLB Translation HPPA_iitlbt, // Insert Instruction TLB Translation HPPA_lci, // Load Coherence Index HPPA_ldb, // Load Byte HPPA_ldcd, // Load and Clear Doubleword HPPA_ldcw, // Load and Clear Word HPPA_ldd, // Load Doubleword HPPA_ldda, // Load Doubleword Absolute HPPA_ldh, // Load Halfword HPPA_ldil, // Load Immediate Left HPPA_ldo, // Load Offset HPPA_ldsid, // Load Space Identifier HPPA_ldw, // Load Word HPPA_ldwa, // Load Word Absolute HPPA_lpa, // Load Physical Address HPPA_mfctl, // Move From Control Register HPPA_mfia, // Move From Instruction Address HPPA_mfsp, // Move From Space Register HPPA_mixh, // Mix Halfwords HPPA_mixw, // Mix Words HPPA_movb, // Move and Branch HPPA_movib, // Move Immediate and Branch HPPA_mtctl, // Move To Control Register HPPA_mtsarcm, // Move To Shift Amount Register Complement HPPA_mtsm, // Move To System Mask HPPA_mtsp, // Move To Space Register HPPA_or, // Inclusive OR HPPA_pdc, // Purge Data Cache HPPA_pdtlb, // Purge Data TLB HPPA_pdtlbe, // Purge Data TLB Entry HPPA_permh, // Permute Halfwords HPPA_pitlb, // Purge Instruction TLB HPPA_pitlbe, // Purge Instruction TLB Entry HPPA_popbts, // Pop Branch Target Stack HPPA_probe, // Probe Access HPPA_probei, // Probe Access Immediate HPPA_pushbts, // Push Branch Target Stack HPPA_pushnom, // Push Nominated HPPA_rfi, // Return From Interruption HPPA_rsm, // Reset System Mask HPPA_shladd, // Shift Left and Add HPPA_shrpd, // Sihft Right Pair Doubleword HPPA_shrpw, // Sihft Right Pair Word HPPA_spop0, // Special Operation Zero HPPA_spop1, // Special Operation One HPPA_spop2, // Special Operation Two HPPA_spop3, // Special Operation Three HPPA_ssm, // Set System Mask HPPA_stb, // Store Byte HPPA_stby, // Store Bytes HPPA_std, // Store Doubleword HPPA_stda, // Store Doubleword Absolute HPPA_stdby, // Store Doubleword Bytes HPPA_sth, // Store Halfword HPPA_stw, // Store Word HPPA_stwa, // Store Word Absolute HPPA_sub, // Subtract HPPA_subi, // Subtract from Immediate HPPA_sync, // Synchronize Caches HPPA_syncdma, // Synchronize DMA HPPA_uaddcm, // Unit Add Complement HPPA_uxor, // Unit XOR HPPA_xor, // Exclusive OR // Floating point instructions HPPA_fabs, // Floating-Point Absolute Value HPPA_fadd, // Floating-Point Add HPPA_fcmp, // Floating-Point Compare HPPA_fcnv, // Floating-Point Convert HPPA_fcpy, // Floating-Point Copy HPPA_fdiv, // Floating-Point Divide HPPA_fid, // Floating-Point Identity HPPA_fldd, // Floating-Point Load Doubleword HPPA_fldw, // Floating-Point Load Word HPPA_fmpy, // Floating-Point Multiply HPPA_fmpyadd, // Floating-Point Multiply/Add HPPA_fmpyfadd, // Floating-Point Multiply Fused Add HPPA_fmpynfadd, // Floating-Point Multiply Negate Fused Add HPPA_fmpysub, // Floating-Point Multiply/Subtract HPPA_fneg, // Floating-Point Negate HPPA_fnegabs, // Floating-Point Negate Absolute Value HPPA_frem, // Floating-Point Remainder HPPA_frnd, // Floating-Point Round to Integer HPPA_fsqrt, // Floating-Point Square Root HPPA_fstd, // Floating-Point Store Doubleword HPPA_fstw, // Floating-Point Store Word HPPA_fsub, // Floating-Point Subtract HPPA_ftest, // Floating-Point Test HPPA_xmpyu, // Fixed-Point Multiply Unsigned // Performance Monitor Coprocessor HPPA_pmdis, // Performance Monitor Disable HPPA_pmenb, // Performance Monitor Enable // Macros HPPA_call, // Call Subroutine HPPA_ret, // Return From Subroutine HPPA_shld, // Shift Left Doubleword HPPA_shlw, // Shift Left Word HPPA_shrd, // Shift Right Doubleword HPPA_shrw, // Shift Right Word HPPA_ldi, // Load Immediate HPPA_copy, // Copy Register HPPA_mtsar, // Move To %SAR HPPA_nop, // No Operation HPPA_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { H8500_null = 0, // Unknown Operation // Data transfer H8500_mov_g, // B/W Move data H8500_mov_e, // B Move data H8500_mov_i, // W Move data H8500_mov_f, // B/W Move data H8500_mov_l, // B/W Move data H8500_mov_s, // B/W Move data H8500_ldm, // W Pop data from the stack to one or more registers H8500_stm, // W Push data from one or more registers onto the stack H8500_xch, // W Exchange data between two general registers H8500_swap, // B Exchange the upper and lower bytes in a general register H8500_movtpe, // B Transfer data from a general register to memory H8500_movfpe, // B Transfer data from memory to a general register // Arithmetic operations H8500_add_g, // B/W Addition H8500_add_q, // B/W Addition H8500_sub, // B/W Subtraction H8500_adds, // B/W Addition H8500_subs, // B/W Subtraction H8500_addx, // B/W Addition with carry H8500_subx, // B/W Subtraction with borrow H8500_dadd, // B Decimal addition H8500_dsub, // B Decimal subtraction H8500_mulxu, // B/W Unsigned multiplication H8500_divxu, // B/W Unsigned division H8500_cmp_g, // B/W Compare data H8500_cmp_e, // B Compare data H8500_cmp_i, // W Compare data H8500_exts, // B Convert byte to word by extending the sign bit H8500_extu, // B Convert byte to word data by padding with zero bits H8500_tst, // B/W Compare with 0 H8500_neg, // B/W Negate H8500_clr, // B/W Make zero H8500_tas, // B Test and set // Logic Operations H8500_and, // B/W Logical AND H8500_or, // B/W Logical OR H8500_xor, // B/W Exclusive OR H8500_not, // B/W Bitwise NOT // Shift Operations H8500_shal, // B/W Arithmetic shift left H8500_shar, // B/W Arithmetic shift right H8500_shll, // B/W Logical shift left H8500_shlr, // B/W Logical shift right H8500_rotl, // B/W Rotate left H8500_rotr, // B/W Rotate right H8500_rotxl, // B/W Rotate through carry left H8500_rotxr, // B/W Rotate through carry right // Bit Manipulations H8500_bset, // B/W Test bit and set H8500_bclr, // B/W Test bit and clear H8500_bnot, // B/W Test bit and invert H8500_btst, // B/W Test bit // Branching Instructions H8500_bra, // Branch Always H8500_brn, // Branch Never H8500_bhi, // Branch if High (C|Z = 0) H8500_bls, // Branch if Low or Same (C|Z = 1) H8500_bcc, // Branch if Carry Clear (C = 0) H8500_bcs, // Branch if Carry Set (C = 1) H8500_bne, // Branch if Not Equal (Z = 0) H8500_beq, // Branch if Equal (Z = 1) H8500_bvc, // Branch if Overflow Clear (V = 0) H8500_bvs, // Branch if Overflow Set (V = 1) H8500_bpl, // Branch if Plus (N = 0) H8500_bmi, // Branch if Minus (N = 1) H8500_bge, // Branch if Greater or Equal (N^V = 0) H8500_blt, // Branch if Less Than (N^V = 1) H8500_bgt, // Branch if Greater Than (Z|(N^V) = 0) H8500_ble, // Branch if Less or Equal (Z|(N^V) = 1) H8500_jmp, // Branch unconditionally (same page) H8500_pjmp, // Branch unconditionally (specified page) H8500_bsr, // Branch to subroutine (same page) H8500_jsr, // Branch to subroutine (same page) H8500_pjsr, // Branch to subroutine (specified page) H8500_rts, // Return from subroutine (same page) H8500_prts, // Return from subroutine (different page) H8500_rtd, // Return from subroutine (same page) and adjust SP H8500_prtd, // Return from subroutine (different page) and adjust SP H8500_scb, // Control loop // System Control Instructions H8500_trapa, // Generate trap exception H8500_trap_vs, // Generate trap exception if the V bit is set H8500_rte, // Return from exception-handling routine H8500_link, // Create stack frame H8500_unlk, // Deallocate stack frame H8500_sleep, // Go to power-down state H8500_ldc, // B/W Move to control register H8500_stc, // B/W Move from control register H8500_andc, // B/W Logically AND control register H8500_orc, // B/W Logically OR control register H8500_xorc, // B/W Logically exclusive-OR control register H8500_nop, // No operation H8500_bpt, // H8500_last, }; enum { DSP56_null = 0, // Unknown Operation DSP56_abs, // Absolute Value DSP56_adc, // Add Long with Carry DSP56_add, // Addition DSP56_addl, // Shift Left and Add DSP56_addr, // Shift Right and Add DSP56_and, // Logical AND DSP56_andi, // AND Immediate to Control Register DSP56_asl, // Arithmetic Shift Left DSP56_asl4, // Arithmetic Shift Left 4 DSP56_asr, // Arithmetic Shift Right DSP56_asr4, // Arithmetic Shift Right 4 DSP56_asr16, // Arithmetic Shift Right 16 DSP56_bfchg, // Test Bit Field and Change DSP56_bfclr, // Clear Bit Field DSP56_bfset, // Set Bit Field DSP56_bftsth, // Test Bit Field High DSP56_bftstl, // Test Bit Field Low DSP56_bcc, // Branch Conditionaly DSP56_bchg, // Bit Test and Change DSP56_bclr, // Bit Test and Clear DSP56_bra, // Branch Always DSP56_brclr, // Branch if Bit Clear DSP56_brkcc, // Exit Current DO Loop Conditionally DSP56_brset, // Branch if Bit Set DSP56_bscc, // Branch to Subroutine Conditionaly DSP56_bsclr, // Branch to Subroutine if Bit Clear DSP56_bset, // Bit Test and Set DSP56_bsr, // Branch to Subroutine DSP56_bsset, // Branch to Subroutine if Bit Set DSP56_btst, // Bit Test on Memory and Registers DSP56_chkaau, // Check address ALU result DSP56_clb, // Count Leading Bits DSP56_clr, // Clear an Operand DSP56_clr24, // Clear 24 MS-bits of Accumulator DSP56_cmp, // Compare DSP56_cmpm, // Compare Magnitude DSP56_cmpu, // Compare Unsigned DSP56_debug, // Enter Debug Mode DSP56_debugcc, // Enter Debug Mode Conditionally DSP56_dec, // Decrement by One DSP56_dec24, // Decrement 24 MS-bit of Accumulator DSP56_div, // Divide Iteration DSP56_dmac, // Double-Precision Multiply-Accumulate With Right Shift DSP56_do, // Start Hardware Loop DSP56_do_f, // Start Infinite Loop DSP56_dor, // Start PC-Relative Hardware Loop DSP56_dor_f, // Start PC-Relative Infinite Loop DSP56_enddo, // Exit from Hardware Loop DSP56_eor, // Logical Exclusive OR DSP56_extract, // Extract Bit Field DSP56_extractu, // Extract Unsigned Bit Field DSP56_ext, // Sign Extend Accumulator DSP56_ill, // Illegal Instruction DSP56_imac, // Integer Multiply-Accumulate DSP56_impy, // Integer Multiply DSP56_inc, // Increment by One DSP56_inc24, // Increment 24 MS-bit of Accumulator DSP56_insert, // Insert Bit Field DSP56_jcc, // Jump Conditionally DSP56_jclr, // Jump if Bit Clear DSP56_jmp, // Jump DSP56_jscc, // Jump to Subroutine Conditionally DSP56_jsclr, // Jump to Subroutine if Bit Clear DSP56_jset, // Jump if Bit Set DSP56_jsr, // Jump to Subroutine DSP56_jsset, // Jump to Subroutine if Bit Set DSP56_lra, // Load PC-Reliative Address DSP56_lsl, // Logical Shift Left DSP56_lsr, // Logical Shift Right DSP56_lua, // Load Updated Address DSP56_lea, // Load Updated Address DSP56_mac, // Signed Multiply-Accumulate DSP56_maci, // Signed Multiply-Accumulate With Immediate Operand DSP56_mac_s_u, // Mixed Multiply-Accumulate DSP56_macr, // Signed Multiply-Accumulate and Round DSP56_macri, // Signed Multiply-Accumulate and Round With Immediate Operand DSP56_max, // Transfer by Signed Value DSP56_maxm, // Transfer by Magnitude DSP56_merge, // Merge Two Half Words DSP56_move, // Move Data DSP56_movec, // Move Control Register DSP56_movei, // Move Immediate Short DSP56_movem, // Move Program Memory DSP56_movep, // Move Peripheral Data DSP56_moves, // Move Absolute Short DSP56_mpy, // Signed Multiply DSP56_mpyi, // Signed Multiply With Immediate Operand DSP56_mpy_s_u, // Mixed Multiply DSP56_mpyr, // Signed Multiply and Round DSP56_mpyri, // Signed Multiply and Round With Immediate Operand DSP56_neg, // Negate Accumulator DSP56_negc, // Negate Accumulator DSP56_nop, // No Operation DSP56_norm, // Norm Accumulator Iteration DSP56_normf, // Fast Accumulator Normalization DSP56_not, // Logical Complement DSP56_or, // Logical Inclusive OR DSP56_ori, // OR Immediate to Control Register DSP56_pflush, // Program Cache Flush DSP56_pflushun, // Program Cache Flush Unlocked Sectors DSP56_pfree, // Program Cache Global Unlock DSP56_plock, // Lock Instruction Cache Sector DSP56_plockr, // Lock Instruction Cache Relative Sector DSP56_punlock, // Unlock Instruction Cache Sector DSP56_punlockr, // Unlock Instruction Cache Relative Sector DSP56_rep, // Repeat Next Instruction DSP56_repcc, // Repeat Next Instruction DSP56_reset, // Reset On-Chip Peripheral Devices DSP56_rnd, // Round Accumulator DSP56_rol, // Rotate Left DSP56_ror, // Rotate Right DSP56_rti, // Return from Interrupt DSP56_rts, // Return from Subroutine DSP56_sbc, // Subtract Long with Carry DSP56_stop, // Stop Processing (Low-Power Standby) DSP56_sub, // Subtract DSP56_subl, // Shift Left and Subtract DSP56_subr, // Shift Right and Subtract DSP56_swap, // Swap Accumulator Words DSP56_tcc, // Transfer Conditionally DSP56_tfr, // Transfer Data ALU Register DSP56_tfr2, // Transfer Data ALU Register DSP56_tfr3, // Transfer Data ALU Register DSP56_trap, // Software Interrupt DSP56_trapcc, // Software Interrupt Conditionally DSP56_tst, // Test an Operand DSP56_tst2, // Test an Operand DSP56_vsl, // Viterbi Shift Left DSP56_wait, // Wait for Interrupt or DMA Request (Low-Power Standby) DSP56_zero, // Zero Extend Accumulator DSP56_swi, // Software Interrupt (only for 56000) DSP56_pmov, // Pseudo insn DSP56_last, }; enum { DSP96_null = 0, // Unknown Operation DSP96_abs, // Absolute Value DSP96_add, // Addition DSP96_addc, // Add with Carry DSP96_and, // Logical AND DSP96_andc, // AND Immediate with Complement DSP96_andi, // AND Immediate to Control Register DSP96_asl, // Arithmetic Shift Left DSP96_asr, // Arithmetic Shift Right DSP96_bcc, // Branch Conditionally (indirect) DSP96_bccd, // Branch Conditionally (direct) DSP96_bchg, // Bit Test and Change DSP96_bclr, // Bit Test and Clear DSP96_bfind, // Find Leading One DSP96_bra, // Branch Always DSP96_brclr, // Branch if Bit Clear DSP96_brset, // Branch if Bit Set DSP96_bscc, // Branch to Subroutine Conditionally (indirect) DSP96_bsccd, // Branch to Subroutine Conditionally (direct) DSP96_bsclr, // Branch to Subroutine if Bit Clear DSP96_bset, // Bit Test and Set DSP96_bsr, // Branch to Subroutine (indirect) DSP96_bsrd, // Branch to Subroutine (direct) DSP96_bsset, // Branch to Subroutine if Bit Set DSP96_btst, // Bit Test on Memory and Registers DSP96_clr, // Clear an Operand DSP96_cmp, // Compare DSP96_cmpg, // Graphics Compare with Trivial Accept.Reject Flags DSP96_debugcc, // Enter Debug Mode Conditionally DSP96_dec, // Decrement by One DSP96_do, // Start Hardware Loop DSP96_dor, // Start PC-Relative Hardware Loop DSP96_enddo, // Exit from Hardware Loop DSP96_eor, // Logical Exclusive OR DSP96_ext, // Sign Extend 16-Bit To 32-Bit DSP96_extb, // Sign Extend 8-Bit to 32-Bit DSP96_fabs, // Absolute Value DSP96_fadd, // Add DSP96_faddsub, // Add and Subtract DSP96_fbcc, // Branch Conditionally (Floating-Point Condition) (indirect) DSP96_fbccd, // Branch Conditionally (Floating-Point Condition) (direct) DSP96_fbscc, // Branch to Subroutine Conditionally (Floating-Point Condition) (indirect) DSP96_fbsccd, // Branch to Subroutine Conditionally (Floating-Point Condition) (direct) DSP96_fclr, // Clear a Floating-Point Operand DSP96_fcmp, // Compare DSP96_fcmpg, // Graphics Compare with Trivial Accept.Reject Flags DSP96_fcmpm, // Compare Magnitude DSP96_fcopys, // Copy Sign DSP96_fdebugcc, // Enter Debug Mode Conditionally DSP96_fgetman, // Get Mantissa DSP96_fint, // Convert to Floating-Point Integer DSP96_fjcc, // Jump Conditionally (indirect) DSP96_fjccd, // Jump Conditionally (direct) DSP96_fjscc, // Jump to Subroutine Conditionally (indirect) DSP96_fjsccd, // Jump to Subroutine Conditionally (direct) DSP96_float, // Integer to Floating-Point Conversion DSP96_floatu, // Unsigned Integer to SP Floating-Point Conversion DSP96_floor, // Convert to Floating-Point Integer round to -Infinity DSP96_fmove, // Move FP Data Register(s) DSP96_fmpyfadd, // Multiply and Add // DSP96_fmpyfaddx, // Multiply and Add (Single Extended Precision) (Handled with DSP96_fmpyfadd) DSP96_fmpyfaddsub, // Multiply, Add and Subtract // DSP96_fmpyfaddsubx, // Multiply, Add and Subtract (Single Extended Precision) (Handled with DSP96_fmpyfaddsub) DSP96_fmpyfsub, // Multiply and Subtract // DSP96_fmpyfsubx, // Multiply and Subtract (Single Extended Precision) (Handled with DSP96_fmpyfsub) DSP96_fmpy, // Multiply DSP96_fneg, // Change sign DSP96_fscale, // Scale a Floating-Point Operand DSP96_fseedd, // Reciprocal Approximation DSP96_fseedr, // Square-Root Reciprocal Approximation DSP96_fsub, // Subtract DSP96_ftfr, // Transfer Floating-Point Register DSP96_ftrapcc, // Conditional Software Interrupt DSP96_ftst, // Test a floating-Point Operand DSP96_getexp, // Get Exponent DSP96_illegal, // Illegal Instruction DSP96_inc, // Increment by One DSP96_int, // Floating-Point to Integer Conversion DSP96_intrz, // Floating-Point to Integer Conversion Round to Zero DSP96_intu, // Floating-Point to Unsigned Integer Conversion DSP96_inturz, // Floating-Point to Unsigned Integer Conversion Round to Zero DSP96_jcc, // Jump Conditionally (indirect) DSP96_jccd, // Jump Conditionally (direct) DSP96_jclr, // Jump if Bit Clear // DSP96_jmp, // Jump (The same as jcc with condition code = 11111) DSP96_join, // Join two 16-Bit Integers DSP96_joinb, // Join two 8-Bit Integers DSP96_jscc, // Jump to Subroutine Conditionally DSP96_jsccd, // Jump to Subroutine Conditionally DSP96_jsclr, // Jump to Subroutine if Bit Clear DSP96_jset, // Jump if Bit Set // DSP96_jsr, // Jump to Subroutine ( The same as jscc with condition code = 11111) DSP96_jsset, // Jump to Subroutine if Bit Set DSP96_lea, // Load Effective Address DSP96_lra, // Load PC Relative Address DSP96_lsl, // Logical Shift Left DSP96_lsr, // Logical Shift Right DSP96_move, // Move Data Register(s) DSP96_movec, // Move Control Register DSP96_movei, // Move Immediate DSP96_movem, // Move Program Memory DSP96_movep, // Move Peripheral Data DSP96_moves, // Move Absolute Short DSP96_moveta, // Move Data Register(s) and Test Address DSP96_mpys, // Signed Multiply DSP96_mpyu, // Unsigned Multiply DSP96_neg, // Negate Accumulator DSP96_negc, // Negate with Carry DSP96_nop, // No Operation DSP96_not, // Logical Complement DSP96_or, // Logical Inclusive OR DSP96_orc, // OR With Compliment DSP96_ori, // OR Immediate to Control Register DSP96_rep, // Repeat Next Instruction DSP96_reset, // Reset On-Chip Peripheral Devices DSP96_rol, // Rotate Left DSP96_ror, // Rotate Right DSP96_rti, // Return from Interrupt DSP96_rtr, // Return from Subroutine and Restore Status Register DSP96_rts, // Return from Subroutine DSP96_setw, // Set an Operand DSP96_split, // Extract 16-Bit Integer DSP96_splitb, // Extract 8-Bit Integer DSP96_stop, // Stop Processing (Low Power Stand-by) DSP96_sub, // Subtract DSP96_subc, // Subtract with Carry DSP96_tfr, // Transfer Data ALU Register DSP96_trapcc, // Software Interrupt Conditionally DSP96_tst, // Test an Operand DSP96_wait, // Wait for Interrupt or DMA Request (Low Power Stand-by) DSP96_last, }; enum PMNum // Parallel Move enumeration { PM96_NoMove, PM96_R2R, // Register to register parallel move PM96_Update, // Move update PM96_XYMem, // X or Y memory move PM96_XYmemR, // X or Y memory and Registry move PM96_Long, // Long Memory move PM96_XY, // XY Memory move PM96_IFcc, // Integer if conditional Instruction without CCR update // All the following moves are handled by IFcc // PM96_FFcc, // Floating-Point if conditional Instruction without CCR, ER, IER update // PM96_FFccU, // Floating-Point if conditional Instruction with CCR, ER, IER update // PM96_IFccU, // Integer if conditional Instruction with CCR update }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { C166_null = 0, // Unknown Operation C166_add, // Integer Addition C166_addb, // Integer Addition Byte C166_addc, // Integer Addition with Carry C166_addcb, // Integer Addition with Carry Byte C166_and, // Logical AND C166_andb, // Logical AND Byte C166_ashr, // Arithmetic Shift Right C166_atomic, // Begin ATOMIC Sequence C166_band, // Bit Logical AND C166_bclr, // Bit Clear C166_bcmp, // Bit to Bit Compare C166_bfldh, // Bit Field High Byte C166_bfldl, // Bit Field Low Byte C166_bmov, // Bit to Bit Move C166_bmovn, // Bit to Bit Move and Negate C166_bor, // Bit Logical OR C166_bset, // Bit Set C166_bxor, // Bit Logical XOR C166_calla, // Call Subroutine Absolute C166_calli, // Call Subroutine Indirect C166_callr, // Call Subroutine Relative C166_calls, // Call Inter-Segment Subroutine C166_cmp, // Integer Compare C166_cmpb, // Integer Compare Byte C166_cmpd1, // Integer Compare and Decrement by 1 C166_cmpd2, // Integer Compare and Decrement by 2 C166_cmpi1, // Integer Compare and Increment by 1 C166_cmpi2, // Integer Compare and Increment by 2 C166_cpl, // Integer One's Complement C166_cplb, // Integer One's Complement Byte C166_diswdt, // Disable Watchdog Timer C166_div, // 16-by-16 Signed Division C166_divl, // 32-by-16 Signed Division C166_divlu, // 32-by-16 Unsigned Division C166_divu, // 16-by-16 Unsigned Division C166_einit, // End of Intialization C166_extr, // Begin Extended Register Sequence C166_extp, // Begin Extended Page Sequence C166_extpr, // Begin Extended Page and Register Sequence C166_exts, // Begin Extended Segment Sequence C166_extsr, // Begin Extended Segment and Register Sequence C166_idle, // Enter Idle Mode C166_jb, // Relative Jump if Bit Set C166_jbc, // Relative Jump if Bit Set and Clear Bit C166_jmpa, // Absolute Conditional Jump C166_jmpi, // Indirect Conditional Jump C166_jmpr, // Relative Conditional Jump C166_jmps, // Absolute Inter-Segment Jump C166_jnb, // Relative Jump if Bit Clear C166_jnbs, // Relative Jump if Bit Clear and Set Bit C166_mov, // Move Word C166_movb, // Move Byte C166_movbs, // Move Byte Sign Extend C166_movbz, // Move Byte Zero Extend C166_mul, // Signed Multiplication C166_mulu, // Unsigned Multiplication C166_neg, // Integer Two's Complement C166_negb, // Integer Two's Complement Byte C166_nop, // No Operation C166_or, // Logical OR C166_orb, // Logical OR Byte C166_pcall, // Push Word and Call Subroutine Absolute C166_pop, // Pop Word from System Stack C166_prior, // Prioritize Register C166_push, // Push Word on System Stack C166_pwrdn, // Enter Power Down Mode C166_ret, // Return from Subroutine C166_reti, // Return from Interrupt Routine C166_retp, // Return from Subroutine and Pop Word C166_rets, // Return from Inter-Segment Subroutine C166_rol, // Rotate Left C166_ror, // Rotate Right C166_scxt, // Switch Context C166_shl, // Shift Left C166_shr, // Shift Rightt C166_srst, // Software Reset C166_srvwdt, // Service Watchdog Timer C166_sub, // Integer Subtraction C166_subb, // Integer Subtraction Byte C166_subc, // Integer Subtraction with Carry C166_subcb, // Integer Subtraction with Carry Byte C166_trap, // Software Trap C166_xor, // Logical Exclusive OR C166_xorb, // Logical Exclusive OR Byte // ST10 MAC instructions ST10_CoABS, // Absolute Value ST10_CoADD, // Add ST10_CoASHR, // Accumulator Arithmetic Shift Right with Optional Round ST10_CoCMP, // Compare ST10_CoLOAD, // Load Accumulator ST10_CoMAC, // Multiply-Accumulate & Optional Round ST10_CoMACM, // Multiply-Accumulate Parallel Data Move & Optional Round ST10_CoMAX, // Maximum ST10_CoMIN, // Minimum ST10_CoMOV, // Memory to Memory Move ST10_CoMUL, // Multiply & Optional Round ST10_CoNEG, // Negate Accumulator with Optional Rounding ST10_CoNOP, // No-Operation ST10_CoRND, // Round Accumulator ST10_CoSHL, // Accumulator Logical Shift Left ST10_CoSHR, // Accumulator Logical Shift Right ST10_CoSTORE, // Store a MAC-Unit Register ST10_CoSUB, // Subtract // missing C166v2/ST10 instructions C166_enwdt, // Enable Watchdog Timer C166_sbrk, // Software Break C166_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { ST20_null = 0, // Unknown Operation // C1 instructions ST20_adc, // add constant ST20_add, // add ST20_addc, // add with carry ST20_ajw, // adjust work space ST20_and, // and ST20_arot, // anti-rotate stack ST20_ashr, // arithmetic shift right ST20_biquad, // biquad IIR filter step ST20_bitld, // load bit ST20_bitmask, // create bit mask ST20_bitst, // store bit ST20_breakpoint, // breakpoint ST20_cj, // conditional jump ST20_dequeue, // dequeue a process ST20_divstep, // divide step ST20_dup, // duplicate ST20_ecall, // exception call ST20_enqueue, // enqueue a process ST20_eqc, // equals constant ST20_eret, // exception return ST20_fcall, // function call ST20_gajw, // general adjust workspace ST20_gt, // greater than ST20_gtu, // greater than unsigned ST20_io, // input/output ST20_j, // jump ST20_jab, // jump absolute ST20_lbinc, // load byte and increment ST20_ldc, // load constant ST20_ldl, // load local ST20_ldlp, // load local pointer ST20_ldnl, // load non-local ST20_ldnlp, // load non-local pointer ST20_ldpi, // load pointer to instruction ST20_ldprodid, // load product identity ST20_ldtdesc, // load task descriptor ST20_lsinc, // load sixteen and increment ST20_lsxinc, // load sixteen sign extended and increment ST20_lwinc, // load word and increment ST20_mac, // multiply accumulate ST20_mul, // multiply ST20_nfix, // negative prefix ST20_nop, // no operation ST20_not, // bitwise not ST20_opr, // operate ST20_or, // or ST20_order, // order ST20_orderu, // unsigned order ST20_pfix, // prefix ST20_rev, // reverse ST20_rmw, // read modify write ST20_rot, // rotate stack ST20_run, // run process ST20_saturate, // saturate ST20_sbinc, // store byte and increment ST20_shl, // shift left ST20_shr, // shift right ST20_signal, // signal ST20_smacinit, // initialize short multiply accumulate loop ST20_smacloop, // short multiply accumulate loop ST20_smul, // short multiply ST20_ssinc, // store sixteen and increment ST20_statusclr, // clear bits in status register ST20_statusset, // set bits in status register ST20_statustst, // test status register ST20_stl, // store local ST20_stnl, // store non-local ST20_stop, // stop process ST20_sub, // subtract ST20_subc, // subtract with carry ST20_swap32, // byte swap 32 ST20_swinc, // store word and increment ST20_timeslice, // timeslice ST20_umac, // unsigned multiply accumulate ST20_unsign, // unsign argument ST20_wait, // wait ST20_wsub, // word subscript ST20_xbword, // sign extend byte to word ST20_xor, // exclusive or ST20_xsword, // sign extend sixteen to word // C2-C4 instructions ST20_alt, // alt start ST20_altend, // alt end ST20_altwt, // alt wait ST20_bcnt, // byte count ST20_bitcnt, // count bits set in word ST20_bitrevnbits, // reverse bottom n bits in word ST20_bitrevword, // reverse bits in word ST20_bsub, // byte subscript ST20_call, // call ST20_causeerror, // cause error ST20_cb, // check byte ST20_cbu, // check byte unsigned ST20_ccnt1, // check count from 1 ST20_cflerr, // check floating point error ST20_cir, // check in range ST20_ciru, // check in range unsigned ST20_clockdis, // clock disable ST20_clockenb, // clock enable ST20_clrhalterr, // clear halt-on error flag ST20_crcbyte, // calculate CRC on byte ST20_crcword, // calculate CRC on word ST20_cs, // check sixteen ST20_csngl, // check single ST20_csu, // check sixteen unsigned ST20_csub0, // check subscript from 0 ST20_cword, // check word ST20_devlb, // device load byte ST20_devls, // device load sixteen ST20_devlw, // device load word ST20_devmove, // device move ST20_devsb, // device store byte ST20_devss, // device store sixteen ST20_devsw, // device store word ST20_diff, // difference ST20_disc, // disable channel ST20_diss, // disable skip ST20_dist, // disable timer ST20_div, // divide ST20_enbc, // enable channel ST20_enbs, // enable skip ST20_enbt, // enable timer ST20_endp, // end process ST20_fmul, // fractional multiply ST20_fptesterr, // test for FPU error ST20_gcall, // general call ST20_gintdis, // general interrupt disable ST20_gintenb, // general interrupt enable ST20_in, // input message ST20_insertqueue, // insert at front of scheduler queue ST20_intdis, // (localised) interrupt disable ST20_intenb, // (localised) interrupt enable ST20_iret, // interrupt return ST20_ladd, // long add ST20_lb, // load byte ST20_lbx, // load byte and sign extend ST20_ldclock, // load clock ST20_lddevid, // load device identity ST20_ldiff, // long diff ST20_ldinf, // load infinity ST20_ldiv, // long divide ST20_ldmemstartval, // load value of MemStart address ST20_ldpri, // load current priority ST20_ldshadow, // load shadow registers ST20_ldtimer, // load timer ST20_ldtraph, // load trap handler ST20_ldtrapped, // load trapped process status ST20_lend, // loop end ST20_lmul, // long multiply ST20_ls, // load sixteen ST20_lshl, // long shift left ST20_lshr, // long shift right ST20_lsub, // long subtract ST20_lsum, // long sum ST20_lsx, // load sixteen and sign extend ST20_mint, // minimum integer ST20_move, // move message ST20_move2dall, // 2D block copy ST20_move2dinit, // initialize data for 2D block move ST20_move2dnonzero, // 2D block copy non-zero bytes ST20_move2dzero, // 2D block copy zero bytes ST20_norm, // normalize ST20_out, // output message ST20_outbyte, // output byte ST20_outword, // output word ST20_pop, // pop processor stack ST20_postnormsn, // post-normalize correction of single length fp number ST20_prod, // product ST20_reboot, // reboot ST20_rem, // remainder ST20_resetch, // reset channel ST20_restart, // restart ST20_ret, // return ST20_roundsn, // round single length floating point number ST20_runp, // run process ST20_satadd, // saturating add ST20_satmul, // saturating multiply ST20_satsub, // saturating subtract ST20_saveh, // save high priority queue registers ST20_savel, // save low priority queue registers ST20_sb, // store byte ST20_seterr, // set error flags ST20_sethalterr, // set halt-on error flag ST20_settimeslice, // set timeslicing status ST20_slmul, // signed long multiply ST20_ss, // store sixteen ST20_ssub, // sixteen subscript ST20_startp, // start process ST20_stclock, // store clock register ST20_sthb, // store high priority back pointer ST20_sthf, // store high priority front pointer ST20_stlb, // store low priority back pointer ST20_stlf, // store low priority front pointer ST20_stoperr, // stop on error ST20_stopp, // stop process ST20_stshadow, // store shadow registers ST20_sttimer, // store timer ST20_sttraph, // store trap handler ST20_sttrapped, // store trapped process ST20_sulmul, // signed timer unsigned long multiply ST20_sum, // sum ST20_swapqueue, // swap scheduler queue ST20_swaptimer, // swap timer queue ST20_talt, // timer alt start ST20_taltwt, // timer alt wait ST20_testerr, // test error flag ST20_testhalterr, // test halt-on error flag ST20_testpranal, // test processor analysing ST20_tin, // timer input ST20_trapdis, // trap disable ST20_trapenb, // trap enable ST20_tret, // trap return ST20_unpacksn, // unpack single length fp number ST20_wcnt, // word count ST20_wsubdb, // form double word subscript ST20_xdble, // extend to double ST20_xword, // extend word ST20_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { ST7_null = 0, // Unknown Operation ST7_adc, // Add with Carry ST7_add, // Addition ST7_and, // Logical And ST7_bcp, // Bit compare ST7_bres, // Bit Reset ST7_bset, // Bit Set ST7_btjf, // Jump if bit is false ST7_btjt, // Jump if bit is true ST7_call, // Call subroutine ST7_callr, // Call subroutine relative ST7_clr, // Clear ST7_cp, // Arithmetic Compare ST7_cpl, // One Complement ST7_dec, // Decrement ST7_halt, // Halt ST7_iret, // Interrupt routine return ST7_inc, // Increment ST7_jp, // Absolute Jump ST7_jra, // Jump relative always ST7_jrt, // Jump relative ST7_jrf, // Never jump ST7_jrih, // Jump if Port INT pin = 1 ST7_jril, // Jump if Port INT pin = 0 ST7_jrh, // Jump if H = 1 ST7_jrnh, // Jump if H = 0 ST7_jrm, // Jump if I = 1 ST7_jrnm, // Jump if I = 0 ST7_jrmi, // Jump if N = 1 (minus) ST7_jrpl, // Jump if N = 0 (plus) ST7_jreq, // Jump if Z = 1 (equal) ST7_jrne, // Jump if Z = 0 (not equal) ST7_jrc, // Jump if C = 1 ST7_jrnc, // Jump if C = 0 ST7_jrult, // Jump if C = 1 ST7_jruge, // Jump if C = 0 ST7_jrugt, // Jump if (C + Z = 0) ST7_jrule, // Jump if (C + Z = 1) ST7_ld, // Load ST7_mul, // Multiply ST7_neg, // Negate ST7_nop, // No Operation ST7_or, // OR Operation ST7_pop, // Pop from the Stack ST7_push, // Push onto the Stack ST7_rcf, // Reset carry flag ST7_ret, // Subroutine Return ST7_rim, // Enable Interrupts ST7_rlc, // Rotate left true ST7_rrc, // Rotate right true ST7_rsp, // Reset Stack Pointer ST7_sbc, // Subtract with Carry ST7_scf, // Set carry flag ST7_sim, // Disable Interrupts ST7_sla, // Shift left Arithmetic ST7_sll, // Shift left Logic ST7_srl, // Shift right Logic ST7_sra, // Shift right Arithmetic ST7_sub, // Substraction ST7_swap, // SWAP nibbles ST7_tnz, // Test for Neg & Zero ST7_trap, // S/W trap ST7_wfi, // Wait for Interrupt ST7_xor, // Exclusive OR ST7_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { IA64_null, // 0 IA64_0, // 1 IA64_1, // 2 IA64_a, // 3 IA64_acq, // 4 IA64_add, // 5 Add IA64_addl, // 6 IA64_addp4, // 7 Add pointer IA64_adds, // 8 IA64_alloc, // 9 Allocate stack frame IA64_and, // 10 Logical AND IA64_andcm, // 11 And complement IA64_b, // 12 IA64_bias, // 13 IA64_br, // 14 Branch IA64_break, // 15 Break IA64_brl, // 16 Branch long IA64_brp, // 17 Branch predict IA64_bsw, // 18 Bank switch IA64_c, // 19 IA64_call, // 20 IA64_cexit, // 21 IA64_chk, // 22 Speculation check IA64_cloop, // 23 IA64_clr, // 24 IA64_clrrrb, // 25 Clear RRB IA64_cmp, // 26 Compare IA64_cmp4, // 27 Compare word IA64_cmpxchg1, // 28 Compare and exchange byte IA64_cmpxchg2, // 29 Compare and exchange halfword IA64_cmpxchg4, // 30 Compare and exchange word IA64_cmpxchg8, // 31 Compare and exchange double word IA64_cond, // 32 IA64_cover, // 33 Cover stack frame IA64_ctop, // 34 IA64_czx1, // 35 Compute zero index IA64_czx2, // 36 Compute zero index IA64_d, // 37 IA64_dep, // 38 Deposit IA64_dpnt, // 39 IA64_dptk, // 40 IA64_e, // 41 IA64_epc, // 42 Enter privileged code IA64_eq, // 43 IA64_excl, // 44 IA64_exit, // 45 IA64_exp, // 46 IA64_extr, // 47 Extract IA64_f, // 48 IA64_fabs, // 49 Floating point absolute value IA64_fadd, // 50 Floating point add IA64_famax, // 51 Floating point absolute maximum IA64_famin, // 52 Floating point absolute minimum IA64_fand, // 53 Floating point logical and IA64_fandcm, // 54 Floating point and complement IA64_fault, // 55 IA64_fc, // 56 Flush cache IA64_fchkf, // 57 Floating point check flags IA64_fclass, // 58 Floating point class IA64_fclrf, // 59 Floating point clear flags IA64_fcmp, // 60 Floating point compare IA64_fcvt, // 61 Convert floating point to/from integer IA64_fetchadd4, // 62 Fetch word and add immediate IA64_fetchadd8, // 63 Fetch double word and add immediate IA64_few, // 64 IA64_fill, // 65 IA64_flushrs, // 66 Flush register stack IA64_fma, // 67 Floating point multiply add IA64_fmax, // 68 Floating point maximum IA64_fmerge, // 69 Floating point merge IA64_fmin, // 70 Floating point minimum IA64_fmix, // 71 Floating point mix IA64_fmpy, // 72 Floating point multiply IA64_fms, // 73 Floating point multiply subtract IA64_fneg, // 74 Floating point negate IA64_fnegabs, // 75 Floating point negate absolute value IA64_fnma, // 76 Floating point negative multiply add IA64_fnmpy, // 77 Floating point negative multiply IA64_fnorm, // 78 Floating point normalize IA64_for, // 79 Floating point logical or IA64_fpabs, // 80 Floating point parallel absolute value IA64_fpack, // 81 Floating point pack IA64_fpamax, // 82 Floating point parallel absolute maximum IA64_fpamin, // 83 Floating point parallel absolute minimum IA64_fpcmp, // 84 Floating point parallel compare IA64_fpcvt, // 85 Floating point parallel conversion IA64_fpma, // 86 Floating point parallel multiply add IA64_fpmax, // 87 Floating point parallel maximum IA64_fpmerge, // 88 Floating point parallel merge IA64_fpmin, // 89 Floating point parallel minimum IA64_fpmpy, // 90 Floating point parallel multiply IA64_fpms, // 91 Floating point parallel multiply subtract IA64_fpneg, // 92 Floating point parallel negate IA64_fpnegabs, // 93 Floating point parallel negate absolute value IA64_fpnma, // 94 Floating point parallel negative multiply add IA64_fpnmpy, // 95 Floating point parallel negative multiply IA64_fprcpa, // 96 Floating point parallel reciprocal approximation IA64_fprsqrta, // 97 Floating point parallel reciprocal square root approximation IA64_frcpa, // 98 Floating point reciprocal approximation IA64_frsqrta, // 99 Floating point reciprocal square root approximation IA64_fselect, // 100 Floating point select IA64_fsetc, // 101 Floating point set controls IA64_fsub, // 102 Floating point subtract IA64_fswap, // 103 Floating point swap IA64_fsxt, // 104 Floating point sign extend IA64_fwb, // 105 Flush write buffers IA64_fx, // 106 IA64_fxor, // 107 Floating point exclusive or IA64_fxu, // 108 IA64_g, // 109 IA64_ga, // 110 IA64_ge, // 111 IA64_getf, // 112 Get floating point value or exponent or significand IA64_geu, // 113 IA64_gt, // 114 IA64_gtu, // 115 IA64_h, // 116 IA64_hu, // 117 IA64_i, // 118 IA64_ia, // 119 IA64_imp, // 120 IA64_invala, // 121 Invalidate ALAT IA64_itc, // 122 Insert translation cache IA64_itr, // 123 Insert translation register IA64_l, // 124 IA64_ld1, // 125 Load byte IA64_ld2, // 126 Load halfword IA64_ld4, // 127 Load word IA64_ld8, // 128 Load double word IA64_ldf, // 129 Floating point load IA64_ldf8, // 130 Floating point load IA64_ldfd, // 131 Floating point load IA64_ldfe, // 132 Floating point load IA64_ldfp8, // 133 Floating point load pair IA64_ldfpd, // 134 Floating point load pair IA64_ldfps, // 135 Floating point load pair IA64_ldfs, // 136 Floating point load IA64_le, // 137 IA64_leu, // 138 IA64_lfetch, // 139 Line prefetch IA64_loadrs, // 140 Load register stack IA64_loop, // 141 IA64_lr, // 142 IA64_lt, // 143 IA64_ltu, // 144 IA64_lu, // 145 IA64_m, // 146 IA64_many, // 147 IA64_mf, // 148 Memory fence IA64_mix1, // 149 Mix bytes IA64_mix2, // 150 Mix halfwords IA64_mix4, // 151 Mix words IA64_mov, // 152 Move register IA64_movl, // 153 Move long immediate IA64_mux1, // 154 Mux byte IA64_mux2, // 155 Mux halfword IA64_nc, // 156 IA64_ne, // 157 IA64_neq, // 158 IA64_nge, // 159 IA64_ngt, // 160 IA64_nl, // 161 IA64_nle, // 162 IA64_nlt, // 163 IA64_nm, // 164 IA64_nop, // 165 No operation IA64_nr, // 166 IA64_ns, // 167 IA64_nt1, // 168 IA64_nt2, // 169 IA64_nta, // 170 IA64_nz, // 171 IA64_or, // 172 Logical or IA64_orcm, // 173 IA64_ord, // 174 IA64_pack2, // 175 Pack IA64_pack4, // 176 Pack IA64_padd1, // 177 Parallel add bytes IA64_padd2, // 178 Parallel add halfwords IA64_padd4, // 179 Parallel add words IA64_pavg1, // 180 Parallel average bytes IA64_pavg2, // 181 Parallel average halfwords IA64_pavgsub1, // 182 Parallel average subtract bytes IA64_pavgsub2, // 183 Parallel average subtract halfwords IA64_pcmp1, // 184 Parallel compare bytes IA64_pcmp2, // 185 Parallel compare halfwords IA64_pcmp4, // 186 Parallel compare words IA64_pmax1, // 187 Parallel maxmimum bytes IA64_pmax2, // 188 Parallel maxmimum halfwords IA64_pmin1, // 189 Parallel minimum bytes IA64_pmin2, // 190 Parallel minimum halfwords IA64_pmpy2, // 191 Parallel multiply IA64_pmpyshr2, // 192 Parallel multiply and shift right IA64_popcnt, // 193 Population count IA64_pr, // 194 IA64_probe, // 195 Probe address IA64_psad1, // 196 Parallel sum of absolute difference IA64_pshl2, // 197 Parallel shift left halfwords IA64_pshl4, // 198 Parallel shift left words IA64_pshladd2, // 199 Parallel shift left and Add IA64_pshr2, // 200 Parallel shift right halfwords IA64_pshr4, // 201 Parallel shift right words IA64_pshradd2, // 202 Parallel shift right and Add IA64_psub1, // 203 Parallel subtract bytes IA64_psub2, // 204 Parallel subtract halfwords IA64_psub4, // 205 Parallel subtract words IA64_ptc, // 206 Purge translation cache IA64_ptr, // 207 Purge translation register IA64_r, // 208 IA64_raz, // 209 IA64_rel, // 210 IA64_ret, // 211 IA64_rfi, // 212 Return from interruption IA64_rsm, // 213 Reset system mask IA64_rum, // 214 Reset user mask IA64_rw, // 215 IA64_s, // 216 IA64_s0, // 217 IA64_s1, // 218 IA64_s2, // 219 IA64_s3, // 220 IA64_sa, // 221 IA64_se, // 222 IA64_setf, // 223 Set floating point value, exponent, or significand IA64_shl, // 224 Shift left IA64_shladd, // 225 Shift left and Add IA64_shladdp4, // 226 Shift left and Add pointer IA64_shr, // 227 Shift right IA64_shrp, // 228 Shift right pair IA64_sig, // 229 IA64_spill, // 230 IA64_spnt, // 231 IA64_sptk, // 232 IA64_srlz, // 233 Serialize IA64_ssm, // 234 Set system mask IA64_sss, // 235 IA64_st1, // 236 Store byte IA64_st2, // 237 Store halfword IA64_st4, // 238 Store word IA64_st8, // 239 Store double word IA64_stf, // 240 Store floating point IA64_stf8, // 241 Store floating point IA64_stfd, // 242 Store floating point IA64_stfe, // 243 Store floating point IA64_stfs, // 244 Store floating point IA64_sub, // 245 Subtract IA64_sum, // 246 Set user mask IA64_sxt1, // 247 Sign extend byte IA64_sxt2, // 248 Sign extend halfword IA64_sxt4, // 249 Sign extend word IA64_sync, // 250 Memory synchronization IA64_tak, // 251 Translation access key IA64_tbit, // 252 Test bit IA64_thash, // 253 Translation hashed entry address IA64_tnat, // 254 Test NaT IA64_tpa, // 255 Translate to physical address IA64_trunc, // 256 IA64_ttag, // 257 Translation hashed entry tag IA64_u, // 258 IA64_unc, // 259 IA64_unord, // 260 IA64_unpack1, // 261 Unpack byte IA64_unpack2, // 262 Unpack halfword IA64_unpack4, // 263 Unpack word IA64_uss, // 264 IA64_uus, // 265 IA64_uuu, // 266 IA64_w, // 267 IA64_wexit, // 268 IA64_wtop, // 269 IA64_x, // 270 IA64_xchg1, // 271 Exchange bytes IA64_xchg2, // 272 Exchange halfwords IA64_xchg4, // 273 Exchange words IA64_xchg8, // 274 Exchange double words IA64_xf, // 275 IA64_xma, // 276 Fixed point multiply add IA64_xmpy, // 277 Fixed point multiply IA64_xor, // 278 Exclusive or IA64_xuf, // 279 IA64_z, // 280 IA64_zxt1, // 281 Zero extend byte IA64_zxt2, // 282 Zero extend halfword IA64_zxt4, // 283 Zero extend word IA64_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { NET_null = 0, // Unknown Operation NET_add, // Add two values, returning a new value NET_add_ovf, // Add signed integer values with overflow check NET_add_ovf_un, // Add unsigned integer values with overflow check NET_and, // Bitwise AND of two integral values, returns an integral value NET_ann_arg, // NET_ann_call, // Start of simple calling sequence NET_ann_catch, // Start an exception filter or handler NET_ann_data, // Multi-byte no operation NET_ann_data_s, // Multi-byte no operation, short form NET_ann_dead, // Stack location is no longer live NET_ann_def, // SSA definition node NET_ann_hoisted, // Start of the simple portion of a hoisted calling sequence NET_ann_hoisted_call, // Start of complex argument evaluation NET_ann_lab, // NET_ann_live, // Mark a stack location as live NET_ann_phi, // SSA definition node NET_ann_ref, // SSA reference node NET_ann_ref_s, // SSA reference node, short form NET_arglist, // Return argument list handle for the current method NET_beq, // Branch to target if equal NET_beq_s, // Branch to target if equal, short form NET_bge, // Branch to target if greater than or equal to NET_bge_s, // Branch to target if greater than or equal to, short form NET_bge_un, // Branch to target if greater than or equal to (unsigned or unordered) NET_bge_un_s, // Branch to target if greater than or equal to (unsigned or unordered), short form NET_bgt, // Branch to target if greater than NET_bgt_s, // Branch to target if greater than, short form NET_bgt_un, // Branch to target if greater than (unsigned or unordered) NET_bgt_un_s, // Branch to target if greater than (unsigned or unordered), short form NET_ble, // Branch to target if less than or equal to NET_ble_s, // Branch to target if less than or equal to, short form NET_ble_un, // Branch to target if less than or equal to (unsigned or unordered) NET_ble_un_s, // Branch to target if less than or equal to (unsigned or unordered), short form NET_blt, // Branch to target if less than NET_blt_s, // Branch to target if less than, short form NET_blt_un, // Branch to target if less than (unsigned or unordered) NET_blt_un_s, // Branch to target if less than (unsigned or unordered), short form NET_bne_un, // Branch to target if unequal or unordered NET_bne_un_s, // Branch to target if unequal or unordered, short form NET_box, // Convert value type to object reference NET_br, // Branch to target NET_br_s, // Branch to target, short form NET_break, // Inform a debugger that a breakpoint has been reached NET_brfalse, // Branch to target if value is zero (false) NET_brfalse_s, // Branch to target if value is zero (false), short form NET_brtrue, // Branch to target if value is non-zero (true) NET_brtrue_s, // Branch to target if value is non-zero (true), short form NET_call, // Call a method NET_calli, // Call an indirect method NET_callvirt, // Call a method associated with obj NET_castclass, // Cast object to class NET_ceq, // Push 1 (of type I4) if value1 equals value2, else 0 NET_cgt, // Push 1 (of type I4) if value1 > value2, else 0 NET_cgt_un, // Push 1 (of type I4) if value1 > value2, unsigned or unordered, else 0 NET_ckfinite, // Throw ArithmeticException if value is not a finite number NET_clt, // Push 1 (of type I4) if value1 < value2, else 0 NET_clt_un, // Push 1 (of type I4) if value1 < value2, unsigned or unordered, else 0 NET_conv_i, // Convert to I, pushing I on stack NET_conv_i1, // Convert to I1, pushing I4 on stack NET_conv_i2, // Convert to I2, pushing I4 on stack NET_conv_i4, // Convert to I4, pushing I4 on stack NET_conv_i8, // Convert to I8, pushing I8 on stack NET_conv_ovf_i, // Convert to an I (on the stack as I) and throw an exception on overflow NET_conv_ovf_i1, // Convert to an I1 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_i1_un, // Convert unsigned to an I1 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_i2, // Convert to an I2 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_i2_un, // Convert unsigned to an I2 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_i4, // Convert to an I4 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_i4_un, // Convert unsigned to an I4 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_i8, // Convert to an I8 (on the stack as I8) and throw an exception on overflow NET_conv_ovf_i8_un, // Convert unsigned to an I8 (on the stack as I8) and throw an exception on overflow NET_conv_ovf_i_un, // Convert to unsigned an I (on the stack as I) and throw an exception on overflow NET_conv_ovf_u, // Convert to a U (on the stack as I) and throw an exception on overflow NET_conv_ovf_u1, // Convert to a U1 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_u1_un, // Convert to unsigned a U1 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_u2, // Convert to a U2 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_u2_un, // Convert to unsigned a U2 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_u4, // Convert to a U4 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_u4_un, // Convert to unsigned a U3 (on the stack as I4) and throw an exception on overflow NET_conv_ovf_u8, // Convert to a U8 (on the stack as I8) and throw an exception on overflow NET_conv_ovf_u8_un, // Convert to unsigned a U8 (on the stack as I8) and throw an exception on overflow NET_conv_ovf_u_un, // Convert to unsigned a U (on the stack as I) and throw an exception on overflow NET_conv_r4, // Convert to R4, pushing F on stack NET_conv_r8, // Convert to R8, pushing F on stack NET_conv_r_un, // Convert unsigned integer to floating point, pushing F on stack NET_conv_u, // Convert to U, pushing I on stack NET_conv_u1, // Convert to U1, pushing I4 on stack NET_conv_u2, // Convert to U2, pushing I4 on stack NET_conv_u4, // Convert to U4, pushing I4 on stack NET_conv_u8, // Convert to U8, pushing I8 on stack NET_cpblk, // Copy data from memory to memory NET_cpobj, // Copy a value type NET_div, // Divide two values to return a quotient or floating point result NET_div_un, // Divide two values, unsigned, returning a quotient NET_dup, // Duplicate value on the top of the stack NET_endfilter, // End filter clause of SEH exception handling NET_endfinally, // End fault clause of an exception block NET_initblk, // Set a block of memory to a given byte NET_initobj, // Initialize a value type NET_isinst, // Test if an object is an instance of a class or interface, returning NULL or an instance of that class or interface NET_jmp, // Exit current method and jump to specified method NET_ldarg, // Load argument numbered num onto stack NET_ldarg_0, // Load argument 0 onto stack NET_ldarg_1, // Load argument 1 onto stack NET_ldarg_2, // Load argument 2 onto stack NET_ldarg_3, // Load argument 3 onto stack NET_ldarg_s, // Load argument numbered num onto stack, short form NET_ldarga, // Fetch the address of argument NET_ldarga_s, // Fetch the address of argument, short form NET_ldc_i4, // Push num of type I4 onto the stack as I4 NET_ldc_i4_0, // Push 0 onto the stack as I4 NET_ldc_i4_1, // Push 1 onto the stack as I4 NET_ldc_i4_2, // Push 2 onto the stack as I4 NET_ldc_i4_3, // Push 3 onto the stack as I4 NET_ldc_i4_4, // Push 4 onto the stack as I4 NET_ldc_i4_5, // Push 5 onto the stack as I4 NET_ldc_i4_6, // Push 6 onto the stack as I4 NET_ldc_i4_7, // Push 7 onto the stack as I4 NET_ldc_i4_8, // Push 8 onto the stack as I4 NET_ldc_i4_m1, // Push -1 onto the stack as I4 NET_ldc_i4_s, // Push num onto the stack as I4, short form NET_ldc_i8, // Push num of type I8 onto the stack as I8 NET_ldc_r4, // Push num of type R4 onto the stack as F NET_ldc_r8, // Push num of type R8 onto the stack as F NET_ldelem_i, // Load the element at index with type I onto the top of the stack as an I NET_ldelem_i1, // Load the element at index with type I1 onto the top of the stack as an I4 NET_ldelem_i2, // Load the element at index with type I2 onto the top of the stack as an I4 NET_ldelem_i4, // Load the element at index with type I4 onto the top of the stack as an I4 NET_ldelem_i8, // Load the element at index with type I8 onto the top of the stack as an I8 NET_ldelem_r4, // Load the element at index with type R4 onto the top of the stack as an F NET_ldelem_r8, // Load the element at index with type R8 onto the top of the stack as an F NET_ldelem_ref, // Load the element at index, an object, onto the top of the stack as an O NET_ldelem_u1, // Load the element at index with type U1 onto the top of the stack as an I4 NET_ldelem_u2, // Load the element at index with type U2 onto the top of the stack as an I4 NET_ldelem_u4, // Load the element at index with type U4 onto the top of the stack as an I4 NET_ldelema, // Load the address of element at index onto the top of the stack NET_ldfld, // Push the value of field of object on the stack NET_ldflda, // Push the address of field of object on the stack NET_ldftn, // Push a pointer to a method referenced by method on the stack NET_ldind_i, // Indirect load value of type I as I stack NET_ldind_i1, // Indirect load value of type I1 as I4 on stack NET_ldind_i2, // Indirect load value of type I2 as I4 on stack NET_ldind_i4, // Indirect load value of type I4 as I4 on stack NET_ldind_i8, // Indirect load value of type I8 as I8 on stack NET_ldind_r4, // Indirect load value of type R4 as F stack NET_ldind_r8, // Indirect load value of type R8 as F stack NET_ldind_ref, // Indirect load value of type object ref as O on stack NET_ldind_u1, // Indirect load value of type U1 as I4 stack NET_ldind_u2, // Indirect load value of type U2 as I4 stack NET_ldind_u4, // Indirect load value of type U4 as I4 stack NET_ldlen, // Push the length (of type U) of array on the stack NET_ldloc, // Load local variable of index indx onto stack NET_ldloc_0, // Load local variable 0 onto stack NET_ldloc_1, // Load local variable 1 onto stack NET_ldloc_2, // Load local variable 2 onto stack NET_ldloc_3, // Load local variable 3 onto stack NET_ldloc_s, // Load local variable of index indx onto stack, short form NET_ldloca, // Load address of local variable NET_ldloca_s, // Load address of local variable, short form NET_ldnull, // Push null GC reference on the stack NET_ldobj, // Copy instance of value type to the stack. NET_ldsfld, // Push the value of field on the stack NET_ldsflda, // Push the address of the static field on the stack NET_ldstr, // Push a string object for the literal string NET_ldtoken, // Convert metadata token to its runtime representation NET_ldvirtftn, // Push address of virtual method on the stack NET_leave, // Exit a protected region of code NET_leave_s, // Exit a protected region of code, short form NET_localloc, // Allocate space from the local memory pool NET_mkrefany, // Push a typed reference to pointer of type class onto the stack NET_mul, // Multiply values NET_mul_ovf, // Multiply signed integer values. Signed result must fit in same size NET_mul_ovf_un, // Multiply unsigned integer values. Unsigned result must fit in same size NET_neg, // Negate value NET_newarr, // Create a zero-based, one-dimensional array NET_newobj, // Create a new object NET_nop, // Do nothing NET_not, // Bitwise complement NET_or, // Bitwise OR of two integer values, returns an integer NET_pop, // Pop a value from the stack NET_refanytype, // Push the type token stored in a typed reference NET_refanyval, // Push the address stored in a typed reference NET_rem, // Remainder of dividing value1 by value2 NET_rem_un, // Remainder of unsigned dividing value1 by value2 NET_ret, // Return from method, possibly returning a value NET_rethrow, // Rethrow the current exception NET_shl, // Shift an integer to the left (shifting in zeros) NET_shr, // Shift an integer right, (shift in sign), return an integer NET_shr_un, // Shift an integer right, (shift in zero), return an integer NET_sizeof, // Push the size, in bytes, of a value type as a U4 NET_starg, // Store a value to argument NET_starg_s, // Store a value to argument, short form NET_stelem_i, // Replace array element at index with the I value on the stack NET_stelem_i1, // Replace array element at index with the I1 value on the stack NET_stelem_i2, // Replace array element at index with the I2 value on the stack NET_stelem_i4, // Replace array element at index with the I4 value on the stack NET_stelem_i8, // Replace array element at index with the I8 value on the stack NET_stelem_r4, // Replace array element at index with the R4 value on the stack NET_stelem_r8, // Replace array element at index with the R8 value on the stack NET_stelem_ref, // Replace array element at index with the ref value on the stack NET_stfld, // Store into a field of an object NET_stind_i, // Store value of type I into memory at address NET_stind_i1, // Store value of type I1 into memory at address NET_stind_i2, // Store value of type I2 into memory at address NET_stind_i4, // Store value of type I4 into memory at address NET_stind_i8, // Store value of type I8 into memory at address NET_stind_r4, // Store value of type R4 into memory at address NET_stind_r8, // Store value of type R8 into memory at address NET_stind_ref, // Store value of type object ref (type O) into memory at address NET_stloc, // Pop value from stack into local variable NET_stloc_0, // Pop value from stack into local variable 0 NET_stloc_1, // Pop value from stack into local variable 1 NET_stloc_2, // Pop value from stack into local variable 2 NET_stloc_3, // Pop value from stack into local variable 3 NET_stloc_s, // Pop value from stack into local variable, short form NET_stobj, // Store a value type from the stack into memory NET_stsfld, // Store a static field of a class NET_sub, // Subtract value2 from value1, returning a new value NET_sub_ovf, // Subtract I from an I. Signed result must fit in same size NET_sub_ovf_un, // Subtract U from a U. Unsigned result must fit in same size NET_switch, // Jump to one of N values NET_tail_, // (prefix) subsequent call terminates current method NET_throw, // Throw an exception NET_unaligned_, // (prefix) subsequent pointer instruction may be unaligned NET_unbox, // Convert boxed value type to its raw form NET_volatile_, // (prefix) subsequent pointer reference is volatile NET_xor, // Bitwise XOR of integer values, returns an integer NET_ldelem, // Load the element at index onto the top of the stack NET_stelem, // Replace array element at index with the ref value on the stack // 2.0 instructions NET_unbox_any, // Extract a value-type from obj, its boxed representation NET_constrained_, // (prefix) invoke a member on a value of a variable type NET_no_, // (prefix) possibly skip a fault check NET_readonly_, // (prefix) following instruction returns a controlled-mutability managed pointer NET_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * HCS12X opcodes added by alexbratovic@bratspeed.com 12/12/2007 * XGATE opcodes added by alexbratovic@bratspeed.com 12/09/2009 */ enum { MC12_null = 0, // Unknown Operation MC12_aba, // Add B to A MC12_abx, // Add B to X MC12_aby, // Add B to Y MC12_adca, // Add with carry to A MC12_adcb, // Add with carry to B MC12_adda, // Add memory to A MC12_addb, // Add memory to B MC12_addd, // Add to D MC12_anda, // AND A with memory MC12_andb, // AND B with memory MC12_andcc, // Logical AND CCR with memory MC12_asl, // Arithmetic shift left memory MC12_asla, // Arithmetic shift left A MC12_aslb, // Arithmetic shift left B MC12_asld, // Arithmetic shift left D MC12_asr, // Arithmetic shift right memory MC12_asra, // Arithmetic shift right A MC12_asrb, // Arithmetic shift right B MC12_bcc, // Branch if carry clear MC12_bclr, // Clear bits in memory MC12_bcs, // Branch if carry set MC12_beq, // Branch if equal MC12_bge, // Branch if greater than or equal MC12_bgnd, // Enter background debug mode MC12_bgt, // Branch if greater than MC12_bhi, // Branch if higher MC12_bhs, // Branch if higher or same MC12_bita, // Bit test A MC12_bitb, // Bit test B MC12_ble, // Branch if less than or equal MC12_blo, // Branch if lower MC12_bls, // Branch if lower or same MC12_blt, // Branch if less than MC12_bmi, // Branch if minus MC12_bne, // Branch if not equal MC12_bpl, // Branch if plus MC12_bra, // Branch always MC12_brclr, // Branch if selected bits clear MC12_brn, // Branch never MC12_brset, // Branch if selected bits set MC12_bset, // Set bits in memory MC12_bsr, // Branch to subroutine MC12_bvc, // Branch if overflow clear MC12_bvs, // Branch if overflow set MC12_call, // Call subroutine in expanded memory MC12_cba, // Compare A to B MC12_clc, // Clear C bit MC12_cli, // Clear I bit MC12_clr, // Clear memory MC12_clra, // Clear A MC12_clrb, // Clear B MC12_clv, // Clear V bit MC12_cmpa, // Compare A to memory MC12_cmpb, // Compare B to memory MC12_com, // One's complement memory MC12_coma, // One's complement A MC12_comb, // One's complement B MC12_cpd, // Compare D to memory (16-bit) MC12_cps, // Compare SP to memory (16-bit) MC12_cpx, // Compare X to memory (16-bit) MC12_cpy, // Compare Y to memory (16-bit) MC12_daa, // Decimal adjust A MC12_dbeq, // Decrement counter and branch if = 0 MC12_dbne, // Decrement counter and branch if != 0 MC12_dec, // Decrement memory MC12_deca, // Decrement A MC12_decb, // Decrement B MC12_des, // Decrement SP MC12_dex, // Decrement X MC12_dey, // Decrement Y MC12_ediv, // 32 by 16 divide (unsigned) Quotient->Y Remainder->D MC12_edivs, // 32 by 16 divide (signed) Quotient->Y Remainder->D MC12_emacs, // Multiply and accumulate (signed) MC12_emaxd, // MAX of two unsigned 16-bit values result to accumulator MC12_emaxm, // MAX of two unsigned 16-bit values result to memory MC12_emind, // MIN of two unsigned 16-bit values result to accumulator MC12_eminm, // MIN of two unsigned 16-bit values result to memory MC12_emul, // 16 by 16 multiply (unsigned) MC12_emuls, // 16 by 16 multiply (signed) MC12_eora, // Exclusive OR A with memory MC12_eorb, // Exclusive OR B with memory MC12_etbl, // 16-bit table lookup and interpolate MC12_exg, // Exchange register to register MC12_fdiv, // 16 by 16 fractional divide Remainder->D MC12_ibeq, // Increment counter and branch if = 0 MC12_ibne, // Increment counter and branch if != 0 MC12_idiv, // 16 by 16 integer divide (unsigned) Remainder->D MC12_idivs, // 16 by 16 integer divide (signed) Remainder->D MC12_inc, // Increment memory MC12_inca, // Increment A MC12_incb, // Increment B MC12_ins, // Increment SP MC12_inx, // Increment X MC12_iny, // Increment Y MC12_jmp, // Jump Address MC12_jsr, // Jump to subroutine MC12_lbcc, // Long branch if carry clear MC12_lbcs, // Long branch if carry set MC12_lbeq, // Long branch if equal MC12_lbge, // Long branch if greater than or equal MC12_lbgt, // Long branch if greater than MC12_lbhi, // Long branch if higher MC12_lbhs, // Long branch if higher or same MC12_lble, // Long branch if less than or equal MC12_lblo, // Long branch if lower MC12_lbls, // Long branch if lower or same MC12_lblt, // Long branch if less than MC12_lbmi, // Long branch if minus MC12_lbne, // Long branch if not equal MC12_lbpl, // Long branch if plus MC12_lbra, // Long branch always MC12_lbrn, // Long branch never MC12_lbvc, // Long branch if overflow clear MC12_lbvs, // Long branch if overflow set MC12_ldaa, // Load A MC12_ldab, // Load B MC12_ldd, // Load D MC12_lds, // Load SP MC12_ldx, // Load X MC12_ldy, // Load Y MC12_leas, // Load effective address into SP MC12_leax, // Load effective address into X MC12_leay, // Load effective address into Y MC12_lsl, // Logic shift left memory MC12_lsla, // Logic shift left A MC12_lslb, // Logic shift left B MC12_lsld, // Logic shift left D MC12_lsr, // Logic shift right memory MC12_lsra, // Logic shift right A MC12_lsrb, // Logic shift right B MC12_lsrd, // Logic shift right D MC12_maxa, // MAX of two unsigned 8-bit values result to accumulator MC12_maxm, // MAX of two unsigned 8-bit values result to memory MC12_mem, // Membership function MC12_mina, // MIN of two unsigned 8-bit values result to accumulator MC12_minm, // MIN of two unsigned 8-bit values result to memory MC12_movb, // Move byte (8-bit) MC12_movw, // Move word (16-bit) MC12_mul, // 8 by 8 multiply (unsigned) MC12_neg, // Two's complement memory MC12_nega, // Two's complement A MC12_negb, // Two's complement B MC12_nop, // Null operation MC12_oraa, // OR A with memory MC12_orab, // OR B with memory MC12_orcc, // Logical OR CCR with memory MC12_psha, // Push A MC12_pshb, // Push B MC12_pshc, // Push CCR MC12_pshd, // Push D MC12_pshx, // Push X MC12_pshy, // Push Y MC12_pula, // Pull A MC12_pulb, // Pull B MC12_pulc, // Pull CCR MC12_puld, // Pull D MC12_pulx, // Pull X MC12_puly, // Pull Y MC12_rev, // MIN-MAX rule evaluation MC12_revw, // MIN-MAX rule evaluation MC12_rol, // Rotate left memory through carry MC12_rola, // Rotate left A through carry MC12_rolb, // Rotate left B through carry MC12_ror, // Rotate right memory through carry MC12_rora, // Rotate right A through carry MC12_rorb, // Rotate right B through carry MC12_rtc, // Return from call MC12_rti, // Return from interrupt MC12_rts, // Return from subroutine MC12_sba, // Subtract B from A MC12_sbca, // Subtract with borrow from A MC12_sbcb, // Subtract with borrow from B MC12_sec, // Set C bit MC12_sei, // Set I bit MC12_sev, // Set V bit MC12_sex, // Sign extend 8-Bit operand MC12_staa, // Store A MC12_stab, // Store B MC12_std, // Store D MC12_stop, // Stop MC12_sts, // Store SP MC12_stx, // Store X MC12_sty, // Store Y MC12_suba, // Subtract memory from A MC12_subb, // Subtract memory from B MC12_subd, // Subtract memory from D MC12_swi, // Software interrupt MC12_tab, // Transfer A to B MC12_tap, // Transfer A to CCR MC12_tba, // Transfer B to A MC12_tbeq, // Test counter and branch if = 0 MC12_tbl, // 8-bit table lookup and interpolate MC12_tbne, // Test counter and branch if != 0 MC12_tfr, // Transfer register to register MC12_tpa, // Transfer CCR to A MC12_trap, // Unimplemented opcode interrupt MC12_tst, // Test memory for zero or minus MC12_tsta, // Test A for zero or minus MC12_tstb, // Test B for zero or minus MC12_tsx, // Transfer SP to X MC12_tsy, // Transfer SP to Y MC12_txs, // Transfer X to SP MC12_tys, // Transfer Y to SP MC12_wai, // Wait for interrupt MC12_wav, // Calculates numerator and denominator for weighted average calculation MC12_wavr, // Resumes execution of interrupted WAV instruction MC12_xgdx, // Exchange D with X MC12_xgdy, // Exchange D with Y // Pseudoinstructions MC12_skip1, // Skip one byte MC12_skip2, // Skip two bytes // hcs12x only instructions, 16-bit unless indicated MC12X_addx, // Add without Carry to X MC12X_addy, // Add without Carry to Y MC12X_aded, // Add with Carry to D(A:B) MC12X_adex, // Add with Carry to X MC12X_adey, // Add with Carry to Y MC12X_andx, // Logical AND X with Memory MC12X_andy, // Logical AND Y with Memory MC12X_aslw, // Arithmetic Shift Left MC12X_aslx, // Arithmetic Shift Left X MC12X_asly, // Arithmetic Shift Left Y MC12X_asrw, // Arithmetic Shift Right MC12X_asrx, // Arithmetic Shift Right X MC12X_asry, // Arithmetic Shift Right Y MC12X_bitx, // Logical AND X with Memory, does not change X or Memory MC12X_bity, // Logical AND Y with Memory, does not change Y or Memory MC12X_btas, // Bit(s) test and Set in Memory, Set CCR flags MC12X_clrw, // Clear Memory Location MC12X_clrx, // Clear X MC12X_clry, // Clear Y MC12X_comw, // One's Complement Memory MC12X_comx, // One's Complement X MC12X_comy, // One's Complement Y MC12X_cped, // Compare D to Memory with Borrow MC12X_cpes, // Compare SP to Memory with Borrow MC12X_cpex, // Compare X to Memory with Borrow MC12X_cpey, // Compare Y to Memory with Borrow MC12X_decw, // Decrement Memory MC12X_decx, // Decrement X MC12X_decy, // Decrement Y MC12X_eorx, // Exclusive OR X with Memory MC12X_eory, // Exclusive OR Y with Memory MC12X_gldaa, // Load A from Global Memory (8-bit) MC12X_gldab, // Load B from Global Memory (8-bit) MC12X_gldd, // Load D(A:B) from Global Memory MC12X_glds, // Load SP from Global Memory MC12X_gldx, // Load X from Global Memory MC12X_gldy, // Load Y from Global Memory MC12X_gstaa, // Store A to Global Memory (8-bit) MC12X_gstab, // Store B to Global Memory (8-bit) MC12X_gstd, // Store D(A:B) to Global Memory MC12X_gsts, // Store SP to Global Memory MC12X_gstx, // Store X to Global Memory MC12X_gsty, // Store Y to Global Memory MC12X_incw, // Increment Memory MC12X_incx, // Increment X MC12X_incy, // Increment Y MC12X_lsrw, // Logical Shift Memory to Right MC12X_lsrx, // Logical Shift X to Right MC12X_lsry, // Logical Shift Y to Right MC12X_negw, // Two's Complement Memory MC12X_negx, // Two's Complement X MC12X_negy, // Two's Complement Y MC12X_orx, // Logical OR X with memory MC12X_ory, // Logical OR Y with memory MC12X_pshcw, // Push CCR onto Stack (16-bit) MC12X_pulcw, // Pull CCR from Stack (16-bit) MC12X_rolw, // Rotate Memory Left through Carry MC12X_rolx, // Rotate X Left through Carry MC12X_roly, // Rotate Y Left through Carry MC12X_rorw, // Rotate Memory Right through Carry MC12X_rorx, // Rotate X Right through Carry MC12X_rory, // Rotate Y Right through Carry MC12X_sbed, // Subtract with Borrow from D MC12X_sbex, // Subtract with Borrow from X MC12X_sbey, // Subtract with Borrow from Y MC12X_subx, // Subtract Memory from X MC12X_suby, // Subtract Memory from Y MC12X_tstw, // Test Memory for Zero or Minus MC12X_tstx, // Test X for Zero or Minus MC12X_tsty, // Test Y for Zero or Minus // hcs12x V2 cpu only instructions MC12X_sys, // System call interrupt // hcs12x XGATE co-processor instructions MC12XGATE_adc, // Add with Carry MC12XGATE_add, // Add without Carry MC12XGATE_addh, // Add Immediate 8 bit Constant (High Byte) MC12XGATE_addl, // Add Immediate 8 bit Constant (Low Byte) MC12XGATE_and, // Logical AND MC12XGATE_andh, // Logical AND Immediate 8 bit Constant (High Byte) MC12XGATE_andl, // Logical AND Immediate 8 bit Constant (Low Byte) MC12XGATE_asr, // Arithmetic Shift Right MC12XGATE_bcc, // Branch if Carry Cleared (Same as BHS) MC12XGATE_bcs, // Branch if Carry Set (Same as BLO) MC12XGATE_beq, // Branch if Equal MC12XGATE_bfext, // Bit Field Extract MC12XGATE_bffo, // Bit Field Find First One MC12XGATE_bfins, // Bit Field Insert MC12XGATE_bfinsi, // Bit Field Insert and Invert MC12XGATE_bfinsx, // Bit Field Insert and XNOR MC12XGATE_bge, // Branch if Greater than or Equal to Zero MC12XGATE_bgt, // Branch if Greater than Zero MC12XGATE_bhi, // Branch if Higher MC12XGATE_bhs, // Branch if Higher or Same (Same as BCC) MC12XGATE_bith, // Bit Test Immediate 8 bit Constant (High Byte) MC12XGATE_bitl, // Bit Test Immediate 8 bit Constant (Low Byte) MC12XGATE_ble, // Branch if Less or Equal to Zero MC12XGATE_blo, // Branch if Carry Set (Same as BCS) MC12XGATE_bls, // Branch if Lower or Same MC12XGATE_blt, // Branch if Lower than Zero MC12XGATE_bmi, // Branch if Minus MC12XGATE_bne, // Branch if Not Equal MC12XGATE_bpl, // Branch if Plus MC12XGATE_bra, // Branch Always MC12XGATE_brk, // Break MC12XGATE_bvc, // Branch if Overflow Cleared MC12XGATE_bvs, // Branch if Overflow Set MC12XGATE_cmp, // Compare MC12XGATE_cmpl, // Compare Immediate 8 bit Constant (Low Byte) MC12XGATE_com, // One's Complement MC12XGATE_cpc, // Compare with Carry MC12XGATE_cpch, // Compare Immediate 8 bit Constant with Carry(High Byte) MC12XGATE_csem, // Clear Semaphore MC12XGATE_csl, // Logical Shift Left with Carry MC12XGATE_csr, // Logical Shift Right with Carry MC12XGATE_jal, // Jump and Link MC12XGATE_ldb, // Load Byte from Memory (Low Byte) MC12XGATE_ldh, // Load Immediate 8 bit Constant (High Byte) MC12XGATE_ldl, // Load Immediate 8 bit Constant (Low Byte) MC12XGATE_ldw, // Load Word from Memory MC12XGATE_lsl, // Logical Shift Left MC12XGATE_lsr, // Logical Shift Right MC12XGATE_mov, // Move Register Content MC12XGATE_neg, // Two's Complement MC12XGATE_nop, // No Operation MC12XGATE_or, // Logical OR MC12XGATE_orh, // Logical OR Immediate 8 bit Constant (High Byte) MC12XGATE_orl, // Logical OR Immediate 8 bit Constant (Low Byte) MC12XGATE_par, // Calculate Parity MC12XGATE_rol, // Rotate Left MC12XGATE_ror, // Rotate Right MC12XGATE_rts, // Return to Scheduler MC12XGATE_sbc, // Subtract with Carry MC12XGATE_sex, // Sign Extend Byte to Word MC12XGATE_sif, // Set Interrupt Flag MC12XGATE_ssem, // Set Semaphore MC12XGATE_stb, // Store Byte to Memory (Low Byte) MC12XGATE_stw, // Store Word to Memory MC12XGATE_sub, // Subtract without Carry MC12XGATE_subh, // Subtract Immediate 8 bit Constant (High Byte) MC12XGATE_subl, // Subtract Immediate 8 bit Constant (Low Byte) MC12XGATE_tfr, // Transfer from and to Special Registers MC12XGATE_tst, // Test Register MC12XGATE_xnor, // Logical Exclusive NOR MC12XGATE_xnorh, // Logical Exclusive NOR Immediate 8 bit Constant (High Byte) MC12XGATE_xnorl, // Logical Exclusive NOR Immediate 8 bit Constant (Low Byte) // Pseudo instructions that combine two IMM8 into IMM16 MC12XGATE_add16, // Add Immediate 16 bit Constant MC12XGATE_and16, // Logical AND Immediate 16 bit Constant MC12XGATE_cmp16, // Compare Immediate 16 bit Constant MC12XGATE_ldw16, // Load Immediate 16 bit Constant MC12XGATE_or16, // Logical OR Immediate 16 bit Constant MC12XGATE_sub16, // Subtract Immediate 16 bit Constant MC12XGATE_xnor16, // Logical Exclusive NOR Immediate 16 bit Constant MC12_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { MC6816_null = 0, // Unknown Operation // DATA MOVEMENT INSTRUCTIONS // -------------------------- // LOAD INSTRUCTIONS MC6816_ldaa, // Load A MC6816_ldab, // Load B MC6816_ldd, // Load D MC6816_lde, // Load E MC6816_lded, // Load Concatenated D and E // MOVE INSTRUCTIONS MC6816_movb, // Move Byte MC6816_movw, // Move Word // STORE INSTRUCTIONS MC6816_staa, // Store A MC6816_stab, // Store B MC6816_std, // Store D MC6816_ste, // Store E MC6816_sted, // Store Concatenated D and E // TRANSFER INSTRUCTIONS MC6816_tab, // Transfer A to B MC6816_tba, // Transfer B to A MC6816_tde, // Transfer D to E MC6816_ted, // Transfer E to D // EXCHANGE INSTRUCTIONS MC6816_xgab, // Exchange A with B MC6816_xgde, // Exchange D with E // MATHEMATIC INSTRUCTIONS // ----------------------- // ADDITION AND SUBSTRACTION INSTRUCTIONS MC6816_aba, // Add B to A MC6816_adca, // Add with Carry to A MC6816_adcb, // Add with Carry to B MC6816_adcd, // Add with Carry to D MC6816_adce, // Add with Carry to E MC6816_adda, // Add to A MC6816_addb, // Add to B MC6816_addd, // Add to D MC6816_adde, // Add to E MC6816_ade, // Add D to E MC6816_sba, // Subtract B from A MC6816_sbca, // Subtract with Carry from A MC6816_sbcb, // Subtract with Carry from B MC6816_sbcd, // Subtract with Carry from D MC6816_sbce, // Subtract with Carry from E MC6816_sde, // Subtract D from E MC6816_suba, // Subtract from A MC6816_subb, // Subtract from B MC6816_subd, // Subtract from D MC6816_sube, // Subtract from E // BINARY CODED DECIMAL INSTRUCTIONS MC6816_daa, // Decimal Adjust A MC6816_sxt, // Sign Extend B into A // COMPARE AND TEST INSTRUCTIONS MC6816_cba, // Compare A to B MC6816_cmpa, // Compare A to Memory MC6816_cmpb, // Compare B to Memory MC6816_cpd, // Compare D to Memory MC6816_cpe, // Compare E to Memory MC6816_tst, // Test for Zero or Minus MC6816_tsta, // Test A for Zero or Minus MC6816_tstb, // Test B for Zero or Minus MC6816_tstd, // Test D for Zero or Minus MC6816_tste, // Test E for Zero or Minus MC6816_tstw, // Test for Zero or Minus Word // MULTIPLICATION AND DIVISION INSTRUCTIONS MC6816_ediv, // Extended Unsigned Divide MC6816_edivs, // Extended Signed Divide MC6816_emul, // Extended Unsigned Multiply MC6816_emuls, // Extended Signed Multiply MC6816_fdiv, // Unsigned Fractional Divide MC6816_fmuls, // Signed Fractional Multiply MC6816_idiv, // Integer Divide MC6816_mul, // Multiply // DECREMENT AND INCREMENT INSTRUCTIONS MC6816_dec, // Decrement Memory MC6816_deca, // Decrement A MC6816_decb, // Decrement B MC6816_decw, // Decrement Memory Word MC6816_inc, // Increment Memory MC6816_inca, // Increment A MC6816_incb, // Increment B MC6816_incw, // Increment Memory Word // CLEAR, COMPLEMENT, AND NEGATE INSTRUCTIONS MC6816_clr, // Clear Memory MC6816_clra, // Clear A MC6816_clrb, // Clear B MC6816_clrd, // Clear D MC6816_clre, // Clear E MC6816_clrw, // Clear Memory Word MC6816_com, // One's Complement Byte MC6816_coma, // One's Complement A MC6816_comb, // One's Complement B MC6816_comd, // One's Complement D MC6816_come, // One's Complement E MC6816_comw, // One's Complement Word MC6816_neg, // Two's Complement Byte MC6816_nega, // Two's Complement A MC6816_negb, // Two's Complement B MC6816_negd, // Two's Complement D MC6816_nege, // Two's Complement E MC6816_negw, // Two's Complement Word // BOOLEAN LOGIC INSTRUCTIONS MC6816_anda, // AND A MC6816_andb, // AND B MC6816_andd, // AND D MC6816_ande, // AND E MC6816_eora, // Exclusive OR A MC6816_eorb, // Exclusive OR B MC6816_eord, // Exclusive OR D MC6816_eore, // Exclusive OR E MC6816_oraa, // OR A MC6816_orab, // OR B MC6816_ord, // OR D MC6816_ore, // OR E // BIT TEST AND MANIPULATION INSTRUCTIONS // -------------------------------------- MC6816_bita, // Bit Test A MC6816_bitb, // Bit Test B MC6816_bclr, // Clear Bit(s) MC6816_bclrw, // Clear Bit(s) Word MC6816_bset, // Set Bit(s) MC6816_bsetw, // Set Bit(s) Word // SHIFT AND ROTATE INSTRUCTIONS // ----------------------------- MC6816_lsr, // Logic Shift Right MC6816_lsra, // Logic Shift Right A MC6816_lsrb, // Logic Shift Right B MC6816_lsrd, // Logic Shift Right D MC6816_lsre, // Logic Shift Right E MC6816_lsrw, // Logic Shift Right Word MC6816_asl, // Arithmetic Shift Left MC6816_asla, // Arithmetic Shift Left A MC6816_aslb, // Arithmetic Shift Left B MC6816_asld, // Arithmetic Shift Left D MC6816_asle, // Arithmetic Shift Left E MC6816_aslw, // Arithmetic Shift Left Word MC6816_asr, // Arithmetic Shift Right MC6816_asra, // Arithmetic Shift Right A MC6816_asrb, // Arithmetic Shift Right B MC6816_asrd, // Arithmetic Shift Right D MC6816_asre, // Arithmetic Shift Right E MC6816_asrw, // Arithmetic Shift Right Word MC6816_rol, // Rotate Left MC6816_rola, // Rotate Left A MC6816_rolb, // Rotate Left B MC6816_rold, // Rotate Left D MC6816_role, // Rotate Left E MC6816_rolw, // Rotate Left Word MC6816_ror, // Rotate Right MC6816_rora, // Rotate Right A MC6816_rorb, // Rotate Right B MC6816_rord, // Rotate Right D MC6816_rore, // Rotate Right E MC6816_rorw, // Rotate Right Word // PROGRAM CONTROL INSTRUCTIONS // ---------------------------- // SHORT BRANCH INSTRUCTIONS MC6816_bra, // Branch Always MC6816_brn, // Branch Never MC6816_bcc, // Branch If Carry Clear MC6816_bcs, // Branch If Carry Set MC6816_beq, // Branch If Equal to Zero MC6816_bmi, // Branch If Minus MC6816_bne, // Branch If Not Equal to Zero MC6816_bpl, // Branch If Plus MC6816_bvc, // Branch If Overflow Clear MC6816_bvs, // Branch If Overflow Set MC6816_bhi, // Branch If Higher MC6816_bls, // Branch If Lower or Same MC6816_bge, // Branch If Greater than or Equal to Zero MC6816_bgt, // Branch If Greater than Zero MC6816_ble, // Branch If Less than or Equal to Zero MC6816_blt, // Branch If Less than Zero // LONG BRANCH INSTRUCTIONS MC6816_lbra, // Long Branch Always MC6816_lbrn, // Long Branch Never MC6816_lbcc, // Long Branch If Carry Clear MC6816_lbcs, // Long Branch If Carry Set MC6816_lbeq, // Long Branch If Equal to Zero MC6816_lbev, // Long Branch If EV Set MC6816_lbmi, // Long Branch If Minus MC6816_lbmv, // Long Branch If MV Set MC6816_lbne, // Long Branch If Not Equal to Zero MC6816_lbpl, // Long Branch If Plus MC6816_lbvc, // Long Branch If Overflow Clear MC6816_lbvs, // Long Branch If Overflow Set MC6816_lbhi, // Long Branch If Higher MC6816_lbls, // Long Branch If Lower or Same MC6816_lbge, // Long Branch If Greater than or Equal to Zero MC6816_lbgt, // Long Branch If Greater than Zero MC6816_lble, // Long Branch If Less than or Equal to Zero MC6816_lblt, // Long Branch If Less than Zero // BIT CONDITION BRANCH INSTRUCTIONS MC6816_brclr, // Branch if Bits Clear MC6816_brset, // Branch if Bits Set // JUMP INSTRUCTION MC6816_jmp, // Jump // SUBROUTINE INSTRUCTIONS MC6816_bsr, // Branch to Subroutine MC6816_jsr, // Jump to Subroutine MC6816_lbsr, // Long Branch to Subroutine MC6816_rts, // Return From Subroutine // INTERRUPT INSTRUCTIONS MC6816_rti, // Return from Interrupt MC6816_swi, // Software Interrupt // INDEXING AND ADDRESS EXTENSION INSTRUCTIONS // ------------------------------------------- // INDEXING INSTRUCTIONS MC6816_abx, // Add B to IX MC6816_aby, // Add B to IY MC6816_abz, // Add B to IZ MC6816_adx, // Add D to IX MC6816_ady, // Add D to IY MC6816_adz, // Add D to IZ MC6816_aex, // Add E to IX MC6816_aey, // Add E to IY MC6816_aez, // Add E to IZ MC6816_aix, // Add Immediate Value to IX MC6816_aiy, // Add Immediate Value to IY MC6816_aiz, // Add Immediate Value to IZ MC6816_cpx, // Compare IX to Memory MC6816_cpy, // Compare IY to Memory MC6816_cpz, // Compare IZ to Memory MC6816_ldx, // Load IX MC6816_ldy, // Load IY MC6816_ldz, // Load IZ MC6816_stx, // Store IX MC6816_sty, // Store IY MC6816_stz, // Store IZ MC6816_tsx, // Transfer SP to IX MC6816_tsy, // Transfer SP to IY MC6816_tsz, // Transfer SP to IZ MC6816_txs, // Transfer IX to SP MC6816_txy, // Transfer IX to IY MC6816_txz, // Transfer IX to IZ MC6816_tys, // Transfer IY to SP MC6816_tyx, // Transfer IY to IX MC6816_tyz, // Transfer IY to IZ MC6816_tzs, // Transfer IZ to SP MC6816_tzx, // Transfer IZ to IX MC6816_tzy, // Transfer IZ to IY MC6816_xgdx, // Exchange D with IX MC6816_xgdy, // Exchange D with IY MC6816_xgdz, // Exchange D with IZ MC6816_xgex, // Exchange E with IX MC6816_xgey, // Exchange E with IY MC6816_xgez, // Exchange E with IZ // ADDRESS EXTENSION INSTRUCTIONS MC6816_tbek, // Transfer B to EK MC6816_tbsk, // Transfer B to SK MC6816_tbxk, // Transfer B to XK MC6816_tbyk, // Transfer B to YK MC6816_tbzk, // Transfer B to ZK MC6816_tekb, // Transfer EK to B MC6816_tskb, // Transfer SK to B MC6816_txkb, // Transfer XK to B MC6816_tykb, // Transfer YK to B MC6816_tzkb, // Transfer ZK to B // STACKING INSTRUCTIONS // --------------------- MC6816_ais, // Add Immediate Data to SP MC6816_cps, // Compare SP to Memory MC6816_lds, // Load SP MC6816_sts, // Store SP MC6816_psha, // Push A MC6816_pshb, // Push B MC6816_pshm, // Push Multiple Registers MC6816_pula, // Pull A MC6816_pulb, // Pull B MC6816_pulm, // Pull Multiple Registers // CONDITION CODE INSTRUCTIONS // --------------------------- MC6816_andp, // AND CCR MC6816_orp, // OR CCR MC6816_tap, // Transfer A to CCR MC6816_tdp, // Transfer D to CCR MC6816_tpa, // Transfer CCR MSB to A MC6816_tpd, // Transfer CCR to D // DIGITAL SIGNAL PROCESSING INSTRUCTIONS // -------------------------------------- MC6816_ace, // Add E to AM[31:15] MC6816_aced, // Add concatenated E and D to AM MC6816_aslm, // Arithmetic Shift Left AM MC6816_asrm, // Arithmetic Shift Right AM MC6816_clrm, // Clear AM MC6816_ldhi, // Initialize HR and IR MC6816_mac, // Multiply and Accumulate MC6816_pshmac, // Push MAC State MC6816_pulmac, // Pull MAC State MC6816_rmac, // Repeating Multiply and Accumulate MC6816_tdmsk, // Transfer D to XMSK:YMSK MC6816_tedm, // Transfer E and T to AM[31:0] MC6816_tem, // Transfer E to AM[31:16] MC6816_tmer, // Transfer AM to E Rounded MC6816_tmet, // Transfer AM to E Truncated MC6816_tmxed, // Transfer AM t IX:E:D // STOP AND WAIT INSTRUCTIONS // -------------------------- MC6816_lpstop, // Low Power Stop MC6816_wai, // Wait for Interrupt // BACKGROUND MODE AND NULL OPERATIONS // ----------------------------------- MC6816_bgnd, // Enter Background Debugging Mode MC6816_nop, // Null operation MC6816_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { I960_null = 0, // Unknown Operation I960_addc, // Add ordinal with carry I960_addi, // Add integer I960_addo, // Add ordinal I960_alterbit, // Alter bit I960_and, // Src2 AND src1 I960_andnot, // Src2 AND (NOT src1) I960_atadd, // Atomic add I960_atmod, // Atomic modify I960_b, // Branch I960_bal, // Branch and Link I960_balx, // Branch and Link Extended I960_bbc, // Check bit and branch if clear I960_bbs, // Check bit and branch if set I960_bno, // Branch if unordered/false I960_bg, // Branch if greater I960_be, // Branch if equal/true I960_bge, // Branch if greater or equal I960_bl, // Branch if less I960_bne, // Branch if not equal I960_ble, // Branch if less or equal I960_bo, // Branch if ordered I960_bx, // Branch Extended I960_call, // Call I960_calls, // Call system I960_callx, // Call extended I960_chkbit, // Check bit I960_clrbit, // Clear bit I960_cmpdeci, // Compare and decrement integer I960_cmpdeco, // Compare and decrement ordinal I960_cmpi, // Compare integer I960_cmpibno, // Compare integer and branch if unordered I960_cmpibg, // Compare integer and branch if greater I960_cmpibe, // Compare integer and branch if equal I960_cmpibge, // Compare integer and branch if greater or equal I960_cmpibl, // Compare integer and branch if less I960_cmpibne, // Compare integer and branch if not equal I960_cmpible, // Compare integer and branch if less or equal I960_cmpibo, // Compare integer and branch if ordered I960_cmpinci, // Compare and increment integer I960_cmpinco, // Compare and increment ordinal I960_cmpo, // Compare ordinal I960_cmpobg, // Compare ordinal and branch if greater I960_cmpobe, // Compare ordinal and branch if equal I960_cmpobge, // Compare ordinal and branch if greater or equal I960_cmpobl, // Compare ordinal and branch if less I960_cmpobne, // Compare ordinal and branch if not equal I960_cmpoble, // Compare ordinal and branch if less or equal I960_concmpi, // Conditional compare integer I960_concmpo, // Conditional compare ordinal I960_divi, // Divide integer I960_divo, // Divide ordinal I960_ediv, // Extended divide I960_emul, // Extended multiply I960_eshro, // Extended shift right ordinal I960_extract, // Extract I960_faultno, // Fault if unordered I960_faultg, // Fault if greater I960_faulte, // Fault if equal I960_faultge, // Fault if greater or equal I960_faultl, // Fault if less I960_faultne, // Fault if not equal I960_faultle, // Fault if less or equal I960_faulto, // Fault if ordered I960_flushreg, // Flush cached local register sets to memory I960_fmark, // Force mark I960_ld, // Load word I960_lda, // Load address I960_ldib, // Load integer byte I960_ldis, // Load integer short I960_ldl, // Load long I960_ldob, // Load ordinal byte I960_ldos, // Load ordinal short I960_ldq, // Load quad I960_ldt, // Load triple I960_mark, // Mark I960_modac, // Modify the AC register I960_modi, // Modulo integer I960_modify, // Modify I960_modpc, // Modify the process controls register I960_modtc, // Modify trace controls I960_mov, // Move word I960_movl, // Move long word I960_movq, // Move quad word I960_movt, // Move triple word I960_muli, // Multiply integer I960_mulo, // Multiply ordinal I960_nand, // NOT (src2 AND src1) I960_nor, // NOT (src2 OR src1) I960_not, // NOT src1 I960_notand, // (NOT src2) AND src1 I960_notbit, // Not bit I960_notor, // (NOT src2) or src1 I960_or, // Src2 OR src1 I960_ornot, // Src2 or (NOT src1) I960_remi, // Remainder integer I960_remo, // Remainder ordinal I960_ret, // Return I960_rotate, // Rotate left I960_scanbit, // Scan for bit I960_scanbyte, // Scan byte equal I960_setbit, // Set bit I960_shli, // Shift left integer I960_shlo, // Shift left ordinal I960_shrdi, // Shift right dividing integer I960_shri, // Shift right integer I960_shro, // Shift right ordinal I960_spanbit, // Span over bit I960_st, // Store word I960_stib, // Store integer byte I960_stis, // Store integer short I960_stl, // Store long I960_stob, // Store ordinal byte I960_stos, // Store ordinal short I960_stq, // Store quad I960_stt, // Store triple I960_subc, // Subtract ordinal with carry I960_subi, // Subtract integer I960_subo, // Subtract ordinal I960_syncf, // Synchronize faults I960_testno, // Test for unordered I960_testg, // Test for greater I960_teste, // Test for equal I960_testge, // Test for greater or equal I960_testl, // Test for less I960_testne, // Test for not equal I960_testle, // Test for less or equal I960_testo, // Test for ordered I960_xnor, // Src2 XNOR src1 I960_xor, // Src2 XOR src1 // Cx instructions I960_sdma, // Set up a DMA controller channel I960_sysctl, // Perform system control function I960_udma, // Copy current DMA pointers to internal data RAM // Unknown instructions I960_dcinva, I960_cmpob, I960_cmpib, I960_cmpos, I960_cmpis, I960_bswap, I960_intdis, I960_inten, I960_synmov, I960_synmovl, I960_synmovq, I960_cmpstr, I960_movqstr, I960_movstr, I960_inspacc, I960_ldphy, I960_synld, I960_fill, I960_daddc, I960_dsubc, I960_dmovt, I960_condrec, I960_receive, I960_intctl, I960_icctl, I960_dcctl, I960_halt, I960_send, I960_sendserv, I960_resumprcs, I960_schedprcs, I960_saveprcs, I960_condwait, I960_wait, I960_signal, I960_ldtime, I960_addono, I960_addino, I960_subono, I960_subino, I960_selno, I960_addog, I960_addig, I960_subog, I960_subig, I960_selg, I960_addoe, I960_addie, I960_suboe, I960_subie, I960_sele, I960_addoge, I960_addige, I960_suboge, I960_subige, I960_selge, I960_addol, I960_addil, I960_subol, I960_subil, I960_sell, I960_addone, I960_addine, I960_subone, I960_subine, I960_selne, I960_addole, I960_addile, I960_subole, I960_subile, I960_selle, I960_addoo, I960_addio, I960_suboo, I960_subio, I960_selo, // Floating point instructions I960_faddr, I960_fp_first = I960_faddr, I960_faddrl, I960_fatanr, I960_fatanrl, I960_fclassr, I960_fclassrl, I960_fcmpor, I960_fcmporl, I960_fcmpr, I960_fcmprl, I960_fcosr, I960_fcosrl, I960_fcpyrsre, I960_fcpysre, I960_fcvtilr, I960_fcvtir, I960_fcvtri, I960_fcvtril, I960_fcvtzri, I960_fcvtzril, I960_fdivr, I960_fdivrl, I960_fexpr, I960_fexprl, I960_flogbnr, I960_flogbnrl, I960_flogepr, I960_flogeprl, I960_flogr, I960_flogrl, I960_fmovr, I960_fmovre, I960_fmovrl, I960_fmulr, I960_fmulrl, I960_fremr, I960_fremrl, I960_froundr, I960_froundrl, I960_fscaler, I960_fscalerl, I960_fsinr, I960_fsinrl, I960_fsqrtr, I960_fsqrtrl, I960_fsubr, I960_fsubrl, I960_ftanr, I960_ftanrl, I960_fp_last = I960_ftanrl, I960_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { F2MC_null = 0, // Unknown Operation // TRANSFER INSTRUCTIONS F2MC_mov, // Move byte data from source to destination F2MC_movn, // Move immediate nibble data to A F2MC_movx, // Move byte data with sign extension from source to A F2MC_xch, // Exchange byte data of source to destination F2MC_movw, // Move word data from source to destination F2MC_xchw, // Exchange word data of source to destination F2MC_movl, // Move long word data from source to destination // NUMERIC DATA OPERATIONS INSTRUCTIONS F2MC_add, // Add byte data of destination and source to destination F2MC_addc1, // Add byte data of AL and AH with Carry to AL F2MC_addc2, // Add byte data of A and effective address with Carry to A F2MC_adddc, // Add decimal data of AL and AH with Carry to AL F2MC_sub, // Subtract byte data of source from festination to destination F2MC_subc1, // Subtract byte data of AL from AH with Carry to AL F2MC_subc2, // Subtract byte data of effective address from A with Carry to A F2MC_subdc, // Subtract decimal data of AL from AH with Carry to AL F2MC_addw1, // Add word data of AH and AL to AL F2MC_addw2, // Add word data of destination and source to destination F2MC_addcw, // Add word data of A and effective address from A with Carry to A F2MC_subw1, // Subtract word data of AL from AH to AL F2MC_subw2, // Subtract word data of source from festination to destination F2MC_subcw, // Subtract word data of A and effective address from A with carry to A F2MC_addl, // Add long word data of destination and source to destination F2MC_subl, // Subtract long word data of source from festination to destination F2MC_inc, // Increment byte data F2MC_dec, // Decrement byte data F2MC_incw, // Increment word data F2MC_decw, // Decrement word data F2MC_incl, // Increment long word data F2MC_decl, // Decrement long word data F2MC_cmp1, // Compare byte data of AH and AL F2MC_cmp2, // Compare byte data of destination and source F2MC_cmpw1, // Compare word data of AH and AL F2MC_cmpw2, // Compare word data of destination and source F2MC_cmpl, // Compare long word data of destination and source F2MC_divu1, // Divide unsigned AH by AL F2MC_divu2, // Divide unsigned word data by unsigned byte data F2MC_divuw, // Divide unsigned long word data by unsigned word data F2MC_mulu1, // Multiply unsigned byte AH by AL F2MC_mulu2, // Multiply unsigned byte data F2MC_muluw1, // Multiply unsigned word AH by AL F2MC_muluw2, // Multiply unsigned word data F2MC_div1, // Divide AH by AL F2MC_div2, // Divide word data by byte data F2MC_divw, // Divide long word data by word data F2MC_mul1, // Multiply byte AH by AL F2MC_mul2, // Multiply byte data F2MC_mulw1, // Multiply word AH by AL F2MC_mulw2, // Multiply word data // LOGICAL DATA OPERATION INSTRUCTIONS F2MC_and, // And byte data of destination and source to destination F2MC_or, // Or byte data of destination and source to destination F2MC_xor, // Exclusive or byte data of destination and source to destination F2MC_not, // Not byte data of destination F2MC_andw1, // And word data of AH and AL to AL F2MC_andw2, // And word data of destination and source to destination F2MC_orw1, // Or word data of AH and AL to AL F2MC_orw2, // Or word data of destination and source to destination F2MC_xorw1, // Exclusive or word data of AH and AL to AL F2MC_xorw2, // Exclusive or word data of destination and source to destination F2MC_notw, // Not word data of destination F2MC_andl, // And long word data of destination and source to destination F2MC_orl, // Or long word data of destination and source to destination F2MC_xorl, // Exclusive or long word data of destination and source to destination F2MC_neg, // Negate byte data of destination F2MC_negw, // Negate word data of destination F2MC_nrml, // Normalize long word // SHIFT INSTRUCTIONS F2MC_rorc, // Rotate byte data of A with Carry to right F2MC_rolc, // Rotate byte data of A with Carry to left F2MC_asr, // Arithmetic shift byte data of A to right F2MC_lsr, // Logical shift byte data of A to right F2MC_lsl, // Logical shift byte data of A to left F2MC_asrw1, // Arithmetic shift word data of A to right F2MC_asrw2, // Arithmetic shift word data of A to right F2MC_lsrw1, // Logical shift word data of A to right F2MC_lsrw2, // Logical shift word data of A to right F2MC_lslw1, // Logical shift word data of A to left F2MC_lslw2, // Logical shift word data of A to left F2MC_asrl, // Arithmetic shift long word data of A to right F2MC_lsrl, // Logical shift long word data of A to right F2MC_lsll, // Logical shift long word data of A to left // BRANCH INSTRUCTIONS F2MC_bz, // Branch if Zero F2MC_bnz, // Branch if Not Zero F2MC_bc, // Branch if Carry F2MC_bnc, // Branch if Not Carry F2MC_bn, // Branch if Negative F2MC_bp, // Branch if Not Negative F2MC_bv, // Branch if Overflow F2MC_bnv, // Branch if Not Overflow F2MC_bt, // Branch if Sticky F2MC_bnt, // Branch if Not Sticky F2MC_blt, // Branch if Overflow or Negative F2MC_bge, // Branch if Not (Overflow or Negative) F2MC_ble, // Branch if (Overflow xor Negative) or Zero F2MC_bgt, // Branch if Not ((Overflow xor Negative) or Zero) F2MC_bls, // Branch if Carry or Zero F2MC_bhi, // Branch if Not (Carry or Zero) F2MC_bra, // Branch unconditionally F2MC_jmp, // Jump destination address F2MC_jmpp, // Jump destination physical address F2MC_call, // Call subroutine F2MC_callv, // Call vectored subroutine F2MC_callp, // Call physical address F2MC_cbne, // Compare byte data and branch if not Equal F2MC_cwbne, // Compare word data and branch if not Equal F2MC_dbnz, // Decrement byte data and branch if not Zero F2MC_dwbnz, // Decrement word data and branch if not Zero F2MC_int, // Software interrupt F2MC_intp, // Software interrupt F2MC_int9, // Software interrupt F2MC_reti, // Return from interrupt F2MC_link, // Link and create new stack frame F2MC_unlink, // Unlink and create new stack frame F2MC_ret, // Return from subroutine F2MC_retp, // Return from physical address // OTHER INSTRUCTIONS F2MC_pushw, // Push to stack memory F2MC_popw, // Pop from stack memory F2MC_jctx, // Jump context // F2MC_and, // F2MC_or, // F2MC_mov, F2MC_movea, // Move effective address to destination F2MC_addsp, // Add word data of SP and immediate data to SP // F2MC_mov, F2MC_nop, // No operation F2MC_adb, // ADB register F2MC_dtb, // DTB register F2MC_pcb, // PCB register F2MC_spb, // SPB register F2MC_ncc, // Flag change inhibit F2MC_cmr, // Common register bank F2MC_movb, // Move bit data F2MC_setb, // Set bit F2MC_clrb, // Clear bit F2MC_bbc, // Branch if bit condition satisfied F2MC_bbs, // Branch if bit condition satisfied F2MC_sbbs, // Set bit and branch if bit set F2MC_wbts, // Wait until bit condition satisfied F2MC_wbtc, // Wait until bit condition satisfied F2MC_swap, // Swap byte data of A F2MC_swapw, // Swap word data of A F2MC_ext, // Sign extend from byte data to word data F2MC_extw, // Sign extend from word data to long word data F2MC_zext, // Zero extendfrom byte data to word data F2MC_zextw, // Zero extendfrom word data to long word data F2MC_movsi, // Move string byte with addresses incremented F2MC_movsd, // Move string byte with addresses decremented F2MC_sceqi, // Scan string byte until Equal with address incremented F2MC_sceqd, // Scan string byte until Equal with address decremented F2MC_filsi, // Fill string byte F2MC_movswi, // Move string word with address incremented F2MC_movswd, // Move string word with address decremented F2MC_scweqi, // Scan string word until Equal with address incremented F2MC_scweqd, // Scan string word until Equal with address decremented F2MC_filswi, // Fill string word // MACROS F2MC_bz16, // Branch if Zero F2MC_bnz16, // Branch if Not Zero F2MC_bc16, // Branch if Carry F2MC_bnc16, // Branch if Not Carry F2MC_bn16, // Branch if Negative F2MC_bp16, // Branch if Not Negative F2MC_bv16, // Branch if Overflow F2MC_bnv16, // Branch if Not Overflow F2MC_bt16, // Branch if Sticky F2MC_bnt16, // Branch if Not Sticky F2MC_blt16, // Branch if Overflow or Negative F2MC_bge16, // Branch if Not (Overflow or Negative) F2MC_ble16, // Branch if (Overflow xor Negative) or Zero F2MC_bgt16, // Branch if Not ((Overflow xor Negative) or Zero) F2MC_bls16, // Branch if Carry or Zero F2MC_bhi16, // Branch if Not (Carry or Zero) F2MC_cbne16, // Compare byte data and branch if not Equal F2MC_cwbne16, // Compare word data and branch if not Equal F2MC_dbnz16, // Decrement byte data and branch if not Zero F2MC_dwbnz16, // Decrement word data and branch if not Zero F2MC_bbc16, // Branch if bit condition satisfied F2MC_bbs16, // Branch if bit condition satisfied F2MC_sbbs16, // Set bit and branch if bit set F2MC_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { TMS320C3X_null = 0, // Unknown Operation TMS320C3X_ABSF, // Absolute value of a floating-point number TMS320C3X_ABSI, // Absolute value of an integer TMS320C3X_ADDC, // Add integers with carry TMS320C3X_ADDF, // Add Floating-Point Values TMS320C3X_ADDI, // Add Integer TMS320C3X_AND, // Bitwise-Logical AND TMS320C3X_ANDN, // Bitwise-Logical AND With Complement TMS320C3X_ASH, // Arithmetic Shift TMS320C3X_CMPF, // Compare Floating-Point Value TMS320C3X_CMPI, // Compare Integer TMS320C3X_FIX, // Floating-Point-to-Integer Conversion TMS320C3X_FLOAT, // Integer-to-Floating-Point Conversion TMS320C3X_IDLE, // Idle Until Interrupt TMS320C3X_IDLE2, // Low-Power Idle TMS320C3X_LDE, // Load Floating-Point Exponent TMS320C3X_LDF, // Load Floating-Point Value TMS320C3X_LDFI, // Load Floating-Point Value, Interlocked TMS320C3X_LDI, // Load Integer TMS320C3X_LDII, // Load Integer, Interlocked TMS320C3X_LDM, // Load Floating-Point Mantissa TMS320C3X_LSH, // Logical Shift TMS320C3X_MPYF, // Multiply Floating-Point Value TMS320C3X_MPYI, // Multiply Integer TMS320C3X_NEGB, // Negative Integer With Borrow TMS320C3X_NEGF, // Negate Floating-Point Value TMS320C3X_NEGI, // Negate Integer TMS320C3X_NOP, // No Operation TMS320C3X_NORM, // Normalize TMS320C3X_NOT, // Bitwise-Logical Complement TMS320C3X_POP, // Pop Integer TMS320C3X_POPF, // Pop Floating-Point Value TMS320C3X_PUSH, // PUSH Integer TMS320C3X_PUSHF, // PUSH Floating-Point Value TMS320C3X_OR, // Bitwise-Logical OR TMS320C3X_LOPOWER, // Divide Clock by 16 TMS320C3X_MAXSPEED, // Restore Clock to Regular Speed TMS320C3X_RND, // Round Floating-Point Value TMS320C3X_ROL, // Rotate Left TMS320C3X_ROLC, // Rotate Left Through Carry TMS320C3X_ROR, // Rotate Right TMS320C3X_RORC, // Rotate Right Through Carry TMS320C3X_RPTS, // Repeat Single Instruction TMS320C3X_STF, // Store Floating-Point Value TMS320C3X_STFI, // Store Floating-Point Value, Interlocked TMS320C3X_STI, // Store Integer TMS320C3X_STII, // Store Integer, Interlocked TMS320C3X_SIGI, // Signal, Interlocked TMS320C3X_SUBB, // Subtract Integer With Borrow TMS320C3X_SUBC, // Subtract Integer Conditionally TMS320C3X_SUBF, // Subtract Floating-Point Value TMS320C3X_SUBI, // Subtract Integer TMS320C3X_SUBRB, // Subtract Reverse Integer With Borrow TMS320C3X_SUBRF, // Subtract Reverse Floating-Point Value TMS320C3X_SUBRI, // Subtract Reverse Integer TMS320C3X_TSTB, // Test Bit Fields TMS320C3X_XOR, // Bitwise-Exclusive OR TMS320C3X_IACK, // Interrupt acknowledge TMS320C3X_ADDC3, // Add integers with carry (3-operand) TMS320C3X_ADDF3, // Add floating-point values (3-operand) TMS320C3X_ADDI3, // Add integers (3 operand) TMS320C3X_AND3, // Bitwise-logical AND (3-operand) TMS320C3X_ANDN3, // Bitwise-logical ANDN (3-operand) TMS320C3X_ASH3, // Arithmetic shift (3-operand) TMS320C3X_CMPF3, // Compare floating-point values (3-operand) TMS320C3X_CMPI3, // Compare integers (3-operand) TMS320C3X_LSH3, // Logical shift (3-operand) TMS320C3X_MPYF3, // Multiply floating-point value (3-operand) TMS320C3X_MPYI3, // Multiply integers (3-operand) TMS320C3X_OR3, // Bitwise-logical OR (3-operand) TMS320C3X_SUBB3, // Subtract integers with borrow (3-operand) TMS320C3X_SUBF3, // Subtract floating-point values (3-operand) TMS320C3X_SUBI3, // Subtract integers (3-operand) TMS320C3X_TSTB3, // Test Bit Fields, 3-Operand TMS320C3X_XOR3, // Bitwise-Exclusive OR, 3-Operand TMS320C3X_LDFcond, // Load floating-point value conditionally TMS320C3X_LDIcond, // Load integer conditionally TMS320C3X_BR, // Branch unconditionally (standard) TMS320C3X_BRD, // Branch unconditionally (delayed) TMS320C3X_CALL, // Call subroutine TMS320C3X_RPTB, // Repeat block of instructions TMS320C3X_SWI, // Software Interrupt TMS320C3X_Bcond, // Branch conditionally TMS320C3X_DBcond, // Decrement and branch conditionally TMS320C3X_CALLcond, // Call subroutine conditionally TMS320C3X_TRAPcond, // Trap Conditionally TMS320C3X_RETIcond, // Return from interrupt conditionally TMS320C3X_RETScond, // Return from subroutine conditionally TMS320C3X_RETIU, // Return from interrupt unconditionally TMS320C3X_RETSU, // Return from subroutine unconditionally TMS320C3X_NONE, // Pseudo insn (more accurate definition need) TMS320C3X_MV_IDX, // Pseudo insn (move to next index need) TMS320C3X_last, // last ID }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { TMS320C54_null = 0, // Unknown Operation // ARITHMETIC OPERATIONS // ADD INSTRUCTIONS TMS320C54_add1, // Add to Accumulator TMS320C54_add2, // Add to Accumulator TMS320C54_add3, // Add to Accumulator TMS320C54_addc, // Add to Accumulator With Carry TMS320C54_addm, // Add Long-Immediate Value to Memory TMS320C54_adds, // Add to Accumulator With Sign-Extension Suppressed // SUBTRACT INSTRUCTIONS TMS320C54_sub1, // Sub From Accumulator TMS320C54_sub2, // Sub From Accumulator TMS320C54_sub3, // Sub From Accumulator TMS320C54_subb, // Sub From Accumulator With Borrow TMS320C54_subc, // Subtract Conditionally TMS320C54_subs, // Subtract From Accumulator With Sign Extension Suppressed // MULTIPLY INSTRUCTIONS TMS320C54_mpy2, // Multiply Without Rounding TMS320C54_mpy3, // Multiply Without Rounding TMS320C54_mpyr2, // Multiply With Rounding TMS320C54_mpya, // Multiply by Accumulator A TMS320C54_mpyu, // Multiply Unsigned TMS320C54_squr, // Square // MULTIPLY-ACCUMULATE AND MULTIPLY-SUBTRACT INSTRUCTIONS TMS320C54_mac2, // Multiply Accumulate Without Rounding TMS320C54_mac3, // Multiply Accumulate Without Rounding TMS320C54_macr2, // Multiply Accumulate With Rounding TMS320C54_macr3, // Multiply Accumulate With Rounding TMS320C54_maca1, // Multiply by Accumulator A and Accumulate Without Rounding TMS320C54_maca2, // Multiply by Accumulator A and Accumulate Without Rounding TMS320C54_maca3, // Multiply by Accumulator A and Accumulate Without Rounding TMS320C54_macar1, // Multiply by Accumulator A and Accumulate With Rounding TMS320C54_macar2, // Multiply by Accumulator A and Accumulate With Rounding TMS320C54_macar3, // Multiply by Accumulator A and Accumulate With Rounding TMS320C54_macd, // Multiply by Program Memory and Accumulate With Delay TMS320C54_macp, // Multiply by Program Memory and Accumulate TMS320C54_macsu, // Multiply Signed by Unsigned and Accumulate TMS320C54_mas2, // Multiply and Subtract Without Rounding TMS320C54_mas3, // Multiply and Subtract Without Rounding TMS320C54_masr2, // Multiply and Subtract With Rounding TMS320C54_masr3, // Multiply and Subtract With Rounding // TMS320C54_mas, TMS320C54_masa1, // Multiply by Accumulator A and Subtract Without Rounding TMS320C54_masa2, // Multiply by Accumulator A and Subtract Without Rounding TMS320C54_masa3, // Multiply by Accumulator A and Subtract Without Rounding TMS320C54_masar1, // Multiply by Accumulator A and Subtract With Rounding TMS320C54_masar2, // Multiply by Accumulator A and Subtract With Rounding TMS320C54_masar3, // Multiply by Accumulator A and Subtract With Rounding TMS320C54_squra, // Square and Accumulate TMS320C54_squrs, // Square and Subtract // DOUBLE INSTRUCTIONS TMS320C54_dadd2, // Double-Precision/Dual 16-Bit Add to Accumulator TMS320C54_dadd3, // Double-Precision/Dual 16-Bit Add to Accumulator TMS320C54_dadst, // Double-Precision Load With T Add/Dual 16-Bit Load With T Add/Subtract TMS320C54_drsub, // Double-Precision/Dual 16-Bit Subtract From Long Word TMS320C54_dsadt, // Long-Word Load With T Add/Dual 16-Bit Load With T Subtract/Add TMS320C54_dsub, // Double-Precision/Dual 16-Bit Subtract From Accumulator TMS320C54_dsubt, // Long-Word Load With T Subtract/Dual 16-Bit Load With T Subtract // APPLICATION-SPECIFIC INSTRUCTIONS TMS320C54_abdst, // Absolute distance TMS320C54_abs1, // Absolute Value of Accumulator TMS320C54_abs2, // Absolute Value of Accumulator TMS320C54_cmpl1, // Complement Accumulator TMS320C54_cmpl2, // Complement Accumulator TMS320C54_delay, // Memory Delay TMS320C54_exp, // Accumulator Exponent TMS320C54_firs, // Symmetrical Finite Impulse Response Filter TMS320C54_lms, // Least Mean Square TMS320C54_max, // Accumulator Maximum TMS320C54_min, // Accumulator Minimum TMS320C54_neg1, // Negate Accumulator TMS320C54_neg2, // Negate Accumulator TMS320C54_norm1, // Normalization TMS320C54_norm2, // Normalization TMS320C54_poly, // Polynominal Evaluation TMS320C54_rnd1, // Round Accumulator TMS320C54_rnd2, // Round Accumulator TMS320C54_sat, // Saturate Accumulator TMS320C54_sqdst, // Square Distance // LOGICAL OPERATIONS // AND INSTRUCTIONS TMS320C54_and1, // AND With Accumulator TMS320C54_and2, // AND With Accumulator TMS320C54_and3, // AND With Accumulator TMS320C54_andm, // AND Memory With Long Immediate // OR INSTRUCTIONS TMS320C54_or1, // OR With Accumulator TMS320C54_or2, // OR With Accumulator TMS320C54_or3, // OR With Accumulator TMS320C54_orm, // OR Memory With Constant // XOR INSTRUCTIONS TMS320C54_xor1, // Exclusive OR With Accumulator TMS320C54_xor2, // Exclusive OR With Accumulator TMS320C54_xor3, // Exclusive OR With Accumulator TMS320C54_xorm, // Exclusive OR Memory With Constant // SHIFT INSTRUCTIONS TMS320C54_rol, // Rotate Accumulator TMS320C54_roltc, // Rotate Accumulator Left Using TC TMS320C54_ror, // Rotate Accumulator Right TMS320C54_sfta2, // Shift Accumulator Arithmetically TMS320C54_sfta3, // Shift Accumulator Arithmetically TMS320C54_sftc, // Shift Accumulator Conditionally TMS320C54_sftl2, // Shift Accumulator Logically TMS320C54_sftl3, // Shift Accumulator Logically // TEST INSTRUCTIONS TMS320C54_bit, // Test Bit TMS320C54_bitf, // Test Bit Field Specified by Immediate Value TMS320C54_bitt, // Test Bit Specified by T TMS320C54_cmpm, // Compare Memory With Long Immediate TMS320C54_cmpr, // Compare Auxiliary Register with AR0 // PROGRAM CONTROL OPERATIONS // BRANCH INSTRUCTIONS TMS320C54_b, // Branch Unconditionally TMS320C54_bd, // Branch Unconditionally TMS320C54_bacc, // Branch to Location Specified by Accumulator TMS320C54_baccd, // Branch to Location Specified by Accumulator TMS320C54_banz, // Branch on Auxiliary Register Not Zero TMS320C54_banzd, // Branch on Auxiliary Register Not Zero TMS320C54_bc2, // Branch Conditionally TMS320C54_bc3, // Branch Conditionally TMS320C54_bcd2, // Branch Conditionally TMS320C54_bcd3, // Branch Conditionally TMS320C54_fb, // Far Branch Unconditionally TMS320C54_fbd, // Far Branch Unconditionally TMS320C54_fbacc, // Far Branch to Location Specified by Accumulator TMS320C54_fbaccd, // Far Branch to Location Specified by Accumulator // CALL INSTRUCTIONS TMS320C54_cala, // Call Subroutine at Location Specified by Accumulator TMS320C54_calad, // Call Subroutine at Location Specified by Accumulator TMS320C54_call, // Call Unconditionally TMS320C54_calld, // Call Unconditionally TMS320C54_cc2, // Call Conditionally TMS320C54_cc3, // Call Conditionally TMS320C54_ccd2, // Call Conditionally TMS320C54_ccd3, // Call Conditionally TMS320C54_fcala, // Far Call Subroutine at Location Specified by Accumulator TMS320C54_fcalad, // Far Call Subroutine at Location Specified by Accumulator TMS320C54_fcall, // Far Call Unconditionally TMS320C54_fcalld, // Far Call Unconditionally // INTERRUPT INSTRUCTIONS TMS320C54_intr, // Software Interrupt TMS320C54_trap, // Software Interrupt // RETURN INSTRUCTIONS TMS320C54_fret, // Far Return TMS320C54_fretd, // Far Return TMS320C54_frete, // Enable Interrupts and Far Return From Interrupt TMS320C54_freted, // Enable Interrupts and Far Return From Interrupt TMS320C54_rc1, // Return Conditionally TMS320C54_rc2, // Return Conditionally TMS320C54_rc3, // Return Conditionally TMS320C54_rcd1, // Return Conditionally TMS320C54_rcd2, // Return Conditionally TMS320C54_rcd3, // Return Conditionally TMS320C54_ret, // Return TMS320C54_retd, // Return TMS320C54_rete, // Enable Interrupts and Return From Interrupt TMS320C54_reted, // Enable Interrupts and Return From Interrupt TMS320C54_retf, // Enable Interrupts and Fast Return From Interrupt TMS320C54_retfd, // Enable Interrupts and Fast Return From Interrupt // REPEAT INSTRUCTIONS TMS320C54_rpt, // Repeat Next Instruction TMS320C54_rptb, // Block Repeat TMS320C54_rptbd, // Block Repeat TMS320C54_rptz, // Repeat Next Instruction And Clear Accumulator // STACK MANIPULATING INSTRUCTIONS TMS320C54_frame, // Stack Pointer Immediate Offset TMS320C54_popd, // Pop Top of Stack to Data Memory TMS320C54_popm, // Pop Top of Stack to Memory-Mapped Register TMS320C54_pshd, // Push Data-Memory Value Onto Stack TMS320C54_pshm, // Push Memory-Mapped Register Onto Stack // MISCELLANEOUS PROGRAM-CONTROL INSTRUCTIONS TMS320C54_idle, // Idle Until Interrupt TMS320C54_mar, // Modify Auxiliary Register TMS320C54_nop, // No Operation TMS320C54_reset, // Software Reset TMS320C54_rsbx1, // Reset Status Register Bit TMS320C54_rsbx2, // Reset Status Register Bit TMS320C54_ssbx1, // Set Status Register Bit TMS320C54_ssbx2, // Set Status Register Bit TMS320C54_xc2, // Execute Conditionally TMS320C54_xc3, // Execute Conditionally // LOAD AND STORE OPERATIONS // LOAD INSTRUCTIONS TMS320C54_dld, // Double-Precision/Dual 16-Bit Long-Word Load to Accumulator TMS320C54_ld1, // Load Accumulator With Shift TMS320C54_ld2, // Load Accumulator With Shift TMS320C54_ld3, // Load Accumulator With Shift TMS320C54_ldm, // Load Memory-Mapped Register TMS320C54_ldr, // Load Memory Value in Accumulator High With Rounding TMS320C54_ldu, // Load Unsigned Memory Value TMS320C54_ltd, // Load T and insert Delay // STORE INSTRUCTIONS TMS320C54_dst, // Store Accumulator in Long Word TMS320C54_st, // Store T, TRN, or Immediate Value into Memory TMS320C54_sth2, // Store Accumulator High Into Memory TMS320C54_sth3, // Store Accumulator High Into Memory TMS320C54_stl2, // Store Accumulator Low Into Memory TMS320C54_stl3, // Store Accumulator Low Into Memory TMS320C54_stlm, // Store Accumulator Low Into Memory-Mapped Register TMS320C54_stm, // Store Immediate Value Into Memory-Mapped Register // CONDITIONAL STORE INSTRUCTIONS TMS320C54_cmps, // Compare, Select and Store Maximum TMS320C54_saccd, // Store Accumulator Conditionally TMS320C54_srccd, // Store Block Repeat Counter Conditionally TMS320C54_strcd, // Store T Conditionally // PARALLEL LOAD AND STORE INSTRUCTIONS TMS320C54_st_ld, // Store Accumulator With Parallel Load // PARALLEL LOAD AND MULTIPLY INSTRUCTIONS TMS320C54_ld_mac, // Load Accumulator With Parallel Multiply Accumulate Without Rounding TMS320C54_ld_macr, // Load Accumulator With Parallel Multiply Accumulate With Rounding TMS320C54_ld_mas, // Load Accumulator With Parallel Multiply Subtract Without Rounding TMS320C54_ld_masr, // Load Accumulator With Parallel Multiply Subtract With Rounding // PARALLEL STORE AND ADD/SUBSTRACT INSTRUCTIONS TMS320C54_st_add, // Store Accumulator With Parallel Add TMS320C54_st_sub, // Store Accumulator With Parallel Subtract // PARALLEL STORE AND MULTIPLY INSTRUCTIONS TMS320C54_st_mac, // Store Accumulator With Parallel Multiply Accumulate Without Rounding TMS320C54_st_macr, // Store Accumulator With Parallel Multiply Accumulate With Rounding TMS320C54_st_mas, // Store Accumulator With Parallel Multiply Subtract Without Rounding TMS320C54_st_masr, // Store Accumulator With Parallel Multiply Subtract With Rounding TMS320C54_st_mpy, // Store Accumulator With Parallel Multiply // MISCELLANEOUS LOAD-TYPE AND STORE-TYPE INSTRUCTIONS TMS320C54_mvdd, // Move Data From Data Memory to Data Memory With X,Y Addressing TMS320C54_mvdk, // Move Data From Data Memory to Data Memory With Destination Addressing TMS320C54_mvdm, // Move Data From Data Memory to Memory-Mapped Register TMS320C54_mvdp, // Move Data From Data Memory to Program Memory TMS320C54_mvkd, // Move Data From Data Memory to Data Memory With Source Addressing TMS320C54_mvmd, // Move Data From Memory-Mapped Register to Data Memory TMS320C54_mvmm, // Move Data From Memory-Mapped Register to Memory-Mapped Register TMS320C54_mvpd, // Move Data From Program Memory to Data Memory TMS320C54_portr, // Read Data From Port TMS320C54_portw, // Write Data to Port TMS320C54_reada, // Read Program Memory Addressed by Accumulator A and Store in Data Memory TMS320C54_writa, // Write Data to Program Memory Addressed by Accumulator A TMS320C54_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { 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 }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { TRIMEDIA_null, TRIMEDIA_igtri, // signed compare greater with immediate TRIMEDIA_igeqi, // signed compare greater or equal with immediate TRIMEDIA_ilesi, // signed compare less with immediate TRIMEDIA_ineqi, // signed compare not equal with immediate TRIMEDIA_ieqli, // signed compare equal with immediate TRIMEDIA_iaddi, // add with immediate TRIMEDIA_ild16d, // signed 16-bit load with displacement TRIMEDIA_ld32d, // 32-bit load with displacement TRIMEDIA_uld8d, // unsigned 8-bit load with displacement TRIMEDIA_lsri, // logical shift right immediate TRIMEDIA_asri, // arithmetic shift right immediate TRIMEDIA_asli, // arithmetic shift left immediate TRIMEDIA_iadd, // signed add TRIMEDIA_isub, // signed subtract TRIMEDIA_igeq, // signed compare greater or equal TRIMEDIA_igtr, // signed compare greater TRIMEDIA_bitand, // bitwise logical AND TRIMEDIA_bitor, // bitwise logical OR TRIMEDIA_asr, // arithmetic shift right TRIMEDIA_asl, // arithmetic shift left TRIMEDIA_ifloat, // convert signed integer to floating-point TRIMEDIA_ifixrz, // convert floating-point to integer with round toward zero TRIMEDIA_fadd, // floating-point add TRIMEDIA_imin, // signed minimum TRIMEDIA_imax, // signed maximum TRIMEDIA_iavgonep, // signed average TRIMEDIA_ume8uu, // sum of absolute values of unsigned 8-bit differences TRIMEDIA_imul, // signed multiply TRIMEDIA_fmul, // floating-point multiply TRIMEDIA_h_st8d, // hardware 8-bit store with displacement TRIMEDIA_h_st16d, // hardware 16-bit store with displacement TRIMEDIA_h_st32d, // hardware 32-bit store with displacement TRIMEDIA_isubi, // subtract with immediate TRIMEDIA_ugtr, // unsigned compare greater TRIMEDIA_ugtri, // unsigned compare greater with immediate TRIMEDIA_ugeq, // unsigned compare greater or equal TRIMEDIA_ugeqi, // unsigned compare greater or equal with immediate TRIMEDIA_ieql, // signed compare equal TRIMEDIA_ueqli, // unsigned compare equal with immediate TRIMEDIA_ineq, // signed compare not equal TRIMEDIA_uneqi, // unsigned compare not equal TRIMEDIA_ulesi, // unsigned compare less with immediate TRIMEDIA_ileqi, // signed compare less or equal with immediate TRIMEDIA_uleqi, // unsigned compare less or equal with immediate TRIMEDIA_h_iabs, // hardware absolute value TRIMEDIA_carry, // compute carry bit from unsigned add TRIMEDIA_izero, // if zero select zero TRIMEDIA_inonzero, // if nonzero select zero TRIMEDIA_bitxor, // bitwise logical exclusive OR TRIMEDIA_bitandinv, // bitwise logical AND NOT TRIMEDIA_bitinv, // bitwise logical NOT TRIMEDIA_sex16, // sign extend 16 bits TRIMEDIA_packbytes, // pack least-significant bytes TRIMEDIA_pack16lsb, // pack least-significant 16-bit halfwords TRIMEDIA_pack16msb, // pack most-significant 16-bit halfwords TRIMEDIA_ubytesel, // select unsigned byte TRIMEDIA_ibytesel, // signed select byte TRIMEDIA_mergelsb, // merge least-significant byte TRIMEDIA_mergemsb, // merge most-significant byte TRIMEDIA_ume8ii, // unsigned sum of absolute values of signed 8-bit differences TRIMEDIA_h_dspiabs, // clipped signed absolute value TRIMEDIA_dspiadd, // clipped signed add TRIMEDIA_dspuadd, // clipped unsigned add TRIMEDIA_dspisub, // clipped signed subtract TRIMEDIA_dspusub, // clipped unsigned subtract TRIMEDIA_dspidualadd, // dual clipped add of signed 16-bit halfwords TRIMEDIA_dspidualsub, // dual clipped subtract of signed 16-bit halfwords TRIMEDIA_h_dspidualabs, // dual clipped absolute value of signed 16-bit halfwords TRIMEDIA_quadavg, // unsigned byte-wise quad average TRIMEDIA_iclipi, // clip signed to signed TRIMEDIA_uclipi, // clip signed to unsigned TRIMEDIA_uclipu, // clip unsigned to unsigned TRIMEDIA_iflip, // if non-zero negate TRIMEDIA_dspuquadaddui, // quad clipped add of unsigned/signed bytes TRIMEDIA_quadumin, // unsigned byte-wise quad minimum TRIMEDIA_quadumax, // unsigned byte-wise quad maximum TRIMEDIA_dualiclipi, // dual-16 clip signed to signed TRIMEDIA_dualuclipi, // dual-16 clip signed to unsigned TRIMEDIA_quadumulmsb, // unsigned quad 8-bit multiply most significant TRIMEDIA_ufir8uu, // unsigned sum of products of unsigned bytes TRIMEDIA_ifir8ui, // signed sum of products of unsigned/signed bytes TRIMEDIA_ifir8ii, // signed sum of products of signed bytes TRIMEDIA_ifir16, // sum of products of signed 16-bit halfwords TRIMEDIA_ufir16, // sum of products of unsigned 16-bit halfwords TRIMEDIA_dspidualmul, // dual clipped multiply of signed 16-bit halfwords TRIMEDIA_lsr, // logical shift right TRIMEDIA_rol, // rotate left TRIMEDIA_roli, // rotate left by immediate TRIMEDIA_funshift1, // funnel-shift 1 byte TRIMEDIA_funshift2, // funnel-shift 2 bytes TRIMEDIA_funshift3, // funnel-shift 3 bytes TRIMEDIA_dualasr, // dual-16 arithmetic shift right TRIMEDIA_mergedual16lsb,// merge dual 16-bit lsb bytes TRIMEDIA_fdiv, // floating-point divide TRIMEDIA_fdivflags, // IEEE status flags from floating-point divide TRIMEDIA_fsqrt, // floating-point square root TRIMEDIA_fsqrtflags, // IEEE status flags from floating-point square root TRIMEDIA_faddflags, // IEEE status flags from floating-point add TRIMEDIA_fsub, // floating-point subtract TRIMEDIA_fsubflags, // IEEE status flags from floating-point subtract TRIMEDIA_fabsval, // floating-point absolute value TRIMEDIA_fabsvalflags, // IEEE status flags from floating-point absolute value TRIMEDIA_ifloatrz, // convert signed integer to floating-point with rounding toward zero TRIMEDIA_ifloatrzflags, // IEEE status flags from convert signed integer to floating-point with rounding toward zero TRIMEDIA_ufloatrz, // convert unsigned integer to floating-point with round toward zero TRIMEDIA_ufloatrzflags, // IEEE status flags from convert unsigned integer to floating-point with round toward zero TRIMEDIA_ifixieee, // convert floating-point to integer using PCSW rounding mode TRIMEDIA_ifixieeeflags, // IEEE status flags from convert floating-point to integer using PCSW rounding mode TRIMEDIA_ufixieee, // convert floating-point to unsigned integer using PCSW rounding mode TRIMEDIA_ufixieeeflags, // IEEE status flags from convert floating-point to unsigned integer using PCSW rounding mode TRIMEDIA_ufixrz, // convert floating-point to unsigned integer with round toward zero TRIMEDIA_ufixrzflags, // IEEE status flags from convert floating-point to unsigned integer with round toward zero TRIMEDIA_ufloat, // convert unsigned integer to floating-point TRIMEDIA_ufloatflags, // IEEE status flags from convert unsigned integer to floating-point TRIMEDIA_ifixrzflags, // IEEE status flags from convert floating-point to integer with round toward zero TRIMEDIA_ifloatflags, // IEEE status flags from convert signed integer to floating-point TRIMEDIA_umul, // unsigned multiply TRIMEDIA_imulm, // signed multiply, return most-significant 32 bits TRIMEDIA_umulm, // unsigned multiply, return most-significant 32 bits TRIMEDIA_dspimul, // clipped signed multiply TRIMEDIA_dspumul, // clipped unsigned multiply TRIMEDIA_fmulflags, // IEEE status flags from floating-point multiply TRIMEDIA_fgtr, // floating-point compare greater TRIMEDIA_fgtrflags, // IEEE status flags from floating-point compare greater TRIMEDIA_fgeq, // floating-point compare greater or equal TRIMEDIA_fgeqflags, // IEEE status flags from floating-point compare greater or equal TRIMEDIA_feql, // floating-point compare equal TRIMEDIA_feqlflags, // IEEE status flags from floating-point compare equal TRIMEDIA_fneq, // floating-point compare not equal TRIMEDIA_fneqflags, // IEEE status flags from floating-point compare not equal TRIMEDIA_fsign, // sign of floating-point value TRIMEDIA_fsignflags, // IEEE status flags from floating-point sign TRIMEDIA_cycles, // read clock cycle counter, least-significant word TRIMEDIA_hicycles, // read clock cycle counter, most-significant word TRIMEDIA_readdpc, // read destination program counter TRIMEDIA_readspc, // read source program counter TRIMEDIA_readpcsw, // read program control and status word TRIMEDIA_writespc, // write source program counter TRIMEDIA_writedpc, // write destination program counter TRIMEDIA_writepcsw, // write program control and status word TRIMEDIA_curcycles, // read current clock cycle, least-significant word TRIMEDIA_jmpt, // indirect jump on true TRIMEDIA_ijmpt, // interruptible indirect jump on true TRIMEDIA_jmpi, // jump immediate TRIMEDIA_ijmpi, // interruptible jump immediate TRIMEDIA_jmpf, // indirect jump on false TRIMEDIA_ijmpf, // interruptible indirect jump on false TRIMEDIA_iclr, // invalidate all instruction cache blocks TRIMEDIA_uimm, // unsigned immediate TRIMEDIA_ild8d, // signed 8-bit load with displacement TRIMEDIA_ild8r, // signed 8-bit load with index TRIMEDIA_uld8r, // unsigned 8-bit load with index TRIMEDIA_ild16r, // signed 16-bit load with index TRIMEDIA_ild16x, // signed 16-bit load with scaled index TRIMEDIA_uld16d, // unsigned 16-bit load with displacement TRIMEDIA_uld16r, // unsigned 16-bit load with index TRIMEDIA_uld16x, // unsigned 16-bit load with scaled index TRIMEDIA_ld32r, // 32-bit load with index TRIMEDIA_ld32x, // 32-bit load with scaled index TRIMEDIA_rdtag, // read data cache address tag TRIMEDIA_rdstatus, // read data cache status bits TRIMEDIA_dcb, // data cache copy back TRIMEDIA_dinvalid, // invalidate data cache block TRIMEDIA_prefd, // prefetch with displacement TRIMEDIA_prefr, // prefetch with index TRIMEDIA_pref16x, // prefetch with 16-bit scaled index TRIMEDIA_pref32x, // prefetch with 32-bit scaled index TRIMEDIA_allocd, // allocate a cache block with displacement TRIMEDIA_allocr, // allocate a cache block with index TRIMEDIA_allocx, // allocate a cache block with scaled index TRIMEDIA_nop, // Pseudo-operations TRIMEDIA_alloc, // allocate a cache block TRIMEDIA_dspiabs, // clipped signed absolute value TRIMEDIA_dspidualabs, // dual clipped absolute value of signed 16-bit halfwords TRIMEDIA_iabs, // absolute value TRIMEDIA_ild16, // signed 16-bit load TRIMEDIA_ild8, // signed 8-bit load TRIMEDIA_ineg, // signed negate TRIMEDIA_ld32, // 32-bit load TRIMEDIA_pref, // prefetch TRIMEDIA_sex8, // sign extend 8 bits TRIMEDIA_st16, // 16-bit store TRIMEDIA_st16d, // 16-bit store with displacement TRIMEDIA_st32, // 32-bit store TRIMEDIA_st32d, // 32-bit store with displacement TRIMEDIA_st8, // 8-bit store TRIMEDIA_st8d, // 8-bit store with displacement TRIMEDIA_uld16, // unsigned 16-bit load TRIMEDIA_uld8, // unsigned 8-bit load TRIMEDIA_zex16, // zero extend 16 bits TRIMEDIA_zex8, // zero extend 8 bits TRIMEDIA_ident, // identity // Unused pseudo-operations: TRIMEDIA_iles, TRIMEDIA_ileq, TRIMEDIA_ules, TRIMEDIA_uleq, TRIMEDIA_fles, TRIMEDIA_fleq, TRIMEDIA_ueql, TRIMEDIA_uneq, TRIMEDIA_flesflags, TRIMEDIA_fleqflags, TRIMEDIA_borrow, TRIMEDIA_umin, TRIMEDIA_lsl, TRIMEDIA_lsli, TRIMEDIA_last, }; /* * NEC 78K0 processor module for IDA. * Copyright (c) 2006 Konstantin Norvatoff, * Freeware. */ enum { NEC_78K_0_null = 0, // Unknown Operation NEC_78K_0_mov, // Move Byte Data Transfer NEC_78K_0_xch, // Exchange Byte Data NEC_78K_0_movw, // Move Word Data Transfer / Word Data Transfer with Stack Pointer NEC_78K_0_xchw, // Exchange Word Data NEC_78K_0_add, // Add Byte Data Addition NEC_78K_0_addc, // Add with Carry Addition of Byte Data with Carry NEC_78K_0_sub, // Subtract Byte Data Subtraction NEC_78K_0_subc, // Subtract with Carry Subtraction of Byte Data with Carry NEC_78K_0_and, // And Logical Product of Byte Data NEC_78K_0_or, // Or Logical Sum of Byte Data NEC_78K_0_xor, // Exclusive Or Exclusive Logical Sum of Byte Data NEC_78K_0_cmp, // Compare Byte Data Comparison NEC_78K_0_addw, // Add Word Data Addition NEC_78K_0_subw, // Subtract Word Data Subtraction NEC_78K_0_cmpw, // Compare Word Data Comparison NEC_78K_0_mulu, // Multiply Unsigned Multiplication of Data NEC_78K_0_divuw, // Divide Unsigned Word Unsigned Division of Word Data NEC_78K_0_inc, // Increment Byte Data Increment NEC_78K_0_dec, // Decrement Byte Data Decrement NEC_78K_0_incw, // Increment Word Data Increment NEC_78K_0_decw, // Decrement Word Data Decrement NEC_78K_0_ror, // Rotate Right Byte Data Rotation to the Right NEC_78K_0_rol, // Rotate Left Byte Data Rotation to the Left NEC_78K_0_rorc, // Rotate Right with Carry Byte Data Rotation to the Right with Carry NEC_78K_0_rolc, // Rotate Left with Carry Byte Data Rotation to the Left with Carry NEC_78K_0_ror4, // Rotate Right Digit Digit Rotation to the Right NEC_78K_0_rol4, // Rotate Left Digit Digit Rotation to the Left NEC_78K_0_adjba, // Decimal Adjust Register for Addition Decimal Adjustment of Addition Result NEC_78K_0_adjbs, // Decimal Adjust Register for Subtraction Decimal Adjustment of Subtraction Result NEC_78K_0_mov1, // Move Single Bit 1 Bit Data Transfer NEC_78K_0_and1, // And Single Bit 1 Bit Data Logical Product NEC_78K_0_or1, // Or Single Bit 1 Bit Data Logical Sum NEC_78K_0_xor1, // Exclusive Or Single Bit 1 Bit Data Exclusive Logical Sum NEC_78K_0_set1, // Set Single Bit (Carry Flag) 1 Bit Data Set NEC_78K_0_clr1, // Clear Single Bit (Carry Flag) 1 Bit Data Clear NEC_78K_0_not1, // Not Single Bit (Carry Flag) 1 Bit Data Logical Negation NEC_78K_0_call, // Call Subroutine Call (16 Bit Direct) NEC_78K_0_callf, // Call Flag Subroutine Call (11 Bit Direct Specification) NEC_78K_0_callt, // Call Table Subroutine Call (Refer to the Call Table) NEC_78K_0_brk, // Break Software Vectored Interrupt NEC_78K_0_ret, // Return Return from Subroutine NEC_78K_0_retb, // Return from Interrupt Return from Hardware Vectored Interrupt NEC_78K_0_reti, // Return from Break Return from Software Vectored Interrupt NEC_78K_0_push, // Push NEC_78K_0_pop, // Pop NEC_78K_0_br, // Branch Unconditional Branch NEC_78K_0_bc, // Branch if Carry Conditional Branch with Carry Flag (CY = 1) NEC_78K_0_bnc, // Branch if Not Carry Conditional Branch with Carry Flag (CY = 0) NEC_78K_0_bz, // Branch if Zero Conditional Branch with Zero Flag (Z = 1) NEC_78K_0_bnz, // Branch if Not Zero Conditional Branch with Zero Flag (Z = 0) NEC_78K_0_bt, // Branch if True Conditional Branch by Bit Test (Byte Data Bit = 1) NEC_78K_0_bf, // Branch if False Conditional Branch by Bit Test (Byte Data Bit = 0) NEC_78K_0_btclr, // Branch if True and Clear Conditional Branch and Clear by Bit Test (Byte Data Bit = 1) NEC_78K_0_dbnz, // Decrement and Branch if Not Zero Conditional Loop (R1!= 0) NEC_78K_0_sel, // Select Register Bank Register Bank Selection NEC_78K_0_nop, // No Operation NEC_78K_0_EI, // Enable Interrupt NEC_78K_0_DI, // Disable Interrupt NEC_78K_0_HALT, // HALT Mode Set NEC_78K_0_STOP, // Stop Mode Set NEC_78K_0_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { NEC_78K_0S_null = 0, // Unknown Operation NEC_78K_0S_cmp, // Compare Byte Data Comparison NEC_78K_0S_xor, // Exclusive Or Exclusive Logical Sum of Byte Data NEC_78K_0S_and, // AND Logical Product of Byte Data NEC_78K_0S_or, // OR Logical Sum of Byte Data NEC_78K_0S_add, // ADD Byte Data Addition NEC_78K_0S_sub, // Subtract Byte Data Subtraction NEC_78K_0S_addc, // Add with Carry Addition of Byte Data with Carry NEC_78K_0S_subc, // Subtract with Carry Subtraction of Byte Data with Carry NEC_78K_0S_subw, // Subtract Word Data Subtraction NEC_78K_0S_addw, // Add Word Data Addition NEC_78K_0S_cmpw, // Compare Word Data Comparison NEC_78K_0S_inc, // Increment Byte Data Increment NEC_78K_0S_dec, // Decrement Byte Data Decrement NEC_78K_0S_incw, // Increment Word Data Increment NEC_78K_0S_decw, // Decrement Word Data Decrement NEC_78K_0S_ror, // Rotate Right Byte Data Rotation to the Right NEC_78K_0S_rol, // Rotate Left Byte Data Rotation to the Left NEC_78K_0S_rorc, // Rotate Right with Carry Byte Data Rotation to the Right with Carry NEC_78K_0S_rolc, // Rotate Left with Carry Byte Data Rotation to the Left with Carry NEC_78K_0S_call, // CALL Subroutine Call (16 Bit Direct) NEC_78K_0S_callt, // Call Table Subroutine Call (Call Table Reference) NEC_78K_0S_ret, // Return from Subroutine NEC_78K_0S_reti, // Return from Interrupt / Return from Hardware Vectored Interrupt NEC_78K_0S_mov, // Move Byte Data Transfer NEC_78K_0S_xch, // Exchange Byte Data Exchange NEC_78K_0S_xchw, // Exchange Word Data Exchange NEC_78K_0S_set1, // Set Single Bit (Carry Flag) 1 Bit Data Set NEC_78K_0S_clr1, // Clear Single Bit (Carry Flag) 1 Bit Data Clear NEC_78K_0S_not1, // Not Single Bit (Carry Flag) 1 Bit Data Logical Negation NEC_78K_0S_push, // Push NEC_78K_0S_pop, // Pop NEC_78K_0S_movw, // Move Word Data Transfer / Word Data Transfer with Stack Pointer NEC_78K_0S_br, // Unconditional Branch NEC_78K_0S_bc, // Branch if Carry Conditional Branch with Carry Flag (CY = 1) NEC_78K_0S_bnc, // Branch if Not Carry Conditional Branch with Carry Flag (CY = 0) NEC_78K_0S_bz, // Branch if Zero Conditional Branch with Zero Flag (Z = 1) NEC_78K_0S_bnz, // Branch if Not Zero Conditional Branch with Zero Flag (Z = 0) NEC_78K_0S_bt, // Branch if True Conditional Branch by Bit Test (Byte Data Bit = 1) NEC_78K_0S_bf, // Branch if False Conditional Branch by Bit Test (Byte Data Bit = 0) NEC_78K_0S_dbnz, // Decrement and Branch if Not Zero Conditional Loop (R1 != 0) NEC_78K_0S_nop, // No Operation NEC_78K_0S_EI, // Enable Interrupt NEC_78K_0S_DI, // Disable Interrupt NEC_78K_0S_HALT, // HALT Mode Set NEC_78K_0S_STOP, // Stop Mode Set NEC_78K_0S_last }; // The instruction types (``itype''s) // M16C/60, M16C/20, M16C/Tiny and M16C/80 CPUs implements. enum m16c_itype_t { M16C_null=0, // Unknown Operation M16C_abs, // Absolute value M16C_adc, // Add with carry M16C_adcf, // Add carry flag M16C_add, // Add without carry M16C_adjnz, // Add & conditional jump M16C_and, // Logically AND M16C_band, // Logically AND bits M16C_bclr, // Clear bit M16C_bmcnd, // Conditional bit transfer // conds (order is important; don't shuffle) (same order as the enum am_cnd8_t in m16c.hpp) M16C_bmgeu, // Conditional bit transfer: Equal to or greater than; C == 1 M16C_bmgtu, // Conditional bit transfer: Greater than M16C_bmeq, // Conditional bit transfer: Equal to; Z == 1 M16C_bmn, // Conditional bit transfer: Negative M16C_bmle, // Conditional bit transfer: Equal to or smaller than (signed) M16C_bmo, // Conditional bit transfer: Overflow; O == 1 M16C_bmge, // Conditional bit transfer: Equal to or greater than (signed) M16C_bmltu, // Conditional bit transfer: Smaller than; C == 0 M16C_bmleu, // Conditional bit transfer: Equal to or smaller than M16C_bmne, // Conditional bit transfer: Not equal; Z == 0 M16C_bmpz, // Conditional bit transfer: Positive or zero M16C_bmgt, // Conditional bit transfer: Greater than (signed) M16C_bmno, // Conditional bit transfer: No overflow; O == 0 M16C_bmlt, // Conditional bit transfer: Smaller than (signed) // --- M16C_bnand, // Logically AND inverted bits M16C_bnor, // Logically OR inverted bits M16C_bnot, // Invert bit M16C_bntst, // Test inverted bit M16C_bnxor, // Exclusive OR inverted bits M16C_bor, // Logically OR bits M16C_brk, // Debug interrupt M16C_bset, // Set bit M16C_btst, // Test bit M16C_btstc, // Test bit & clear M16C_btsts, // Test bit & set M16C_bxor, // Exclusive OR bits M16C_cmp, // Compare M16C_dadc, // Decimal add with carry M16C_dadd, // Decimal add without carry M16C_dec, // Decrement M16C_div, // Signed divide M16C_divu, // Unsigned divide M16C_divx, // Signed divide (extension) M16C_dsbb, // Decimal subtract with borrow M16C_dsub, // Decimal subtract without borrow M16C_enter, // Build stack frame M16C_exitd, // Deallocate stack frame M16C_exts, // Extend sign M16C_fclr, // Clear flag register bit M16C_fset, // Set flag register bit M16C_inc, // Increment M16C_int, // Interrupt by INT instruction M16C_into, // Interrupt on overflow M16C_jcnd, // Jump on condition // conds (order is important; don't shuffle) (same order as the enum am_cnd8_t in m16c.hpp) M16C_jgeu, // Conditional jump: Equal to or greater than; C == 1 M16C_jgtu, // Conditional jump: Greater than M16C_jeq, // Conditional jump: Equal to; Z == 1 M16C_jn, // Conditional jump: Negative M16C_jle, // Conditional jump: Equal to or smaller than (signed) M16C_jo, // Conditional jump: Overflow; O == 1 M16C_jge, // Conditional jump: Equal to or greater than (signed) M16C_jltu, // Conditional jump: Smaller than; C == 0 M16C_jleu, // Conditional jump: Equal to or smaller than M16C_jne, // Conditional jump: Not equal; Z == 0 M16C_jpz, // Conditional jump: Positive or zero M16C_jgt, // Conditional jump: Greater than (signed) M16C_jno, // Conditional jump: No overflow; O == 0 M16C_jlt, // Conditional jump: Smaller than (signed) // --- M16C_jmp, // Unconditional jump M16C_jmpi, // Jump indirect M16C_jmps, // Jump to special page M16C_jsr, // Subroutine call M16C_jsri, // Indirect subroutine call M16C_jsrs, // Special page subroutine call M16C_ldc, // Transfer to control register M16C_ldctx, // Restore context M16C_lde, // Transfer from extended data area M16C_ldintb, // Load to INTB register M16C_ldipl, // Set interrupt enable level M16C_mov, // Transfer M16C_mova, // Transfer effective address M16C_movhh, // Xfer 4-bit data: src(8-bits)'s 4 hi bits -> dest(8-bits)'s 4 hi bits. M16C_movhl, // Xfer 4-bit data: src(8-bits)'s 4 hi bits -> dest(8-bits)'s 4 lo bits. M16C_movlh, // Xfer 4-bit data: src(8-bits)'s 4 lo bits -> dest(8-bits)'s 4 hi bits. M16C_movll, // Xfer 4-bit data: src(8-bits)'s 4 lo bits -> dest(8-bits)'s 4 lo bits. M16C_mul, // Signed multiply M16C_mulu, // Unsigned multiply M16C_neg, // Two's complement M16C_nop, // No operation M16C_not, // Invert all bits M16C_or, // Logically OR M16C_pop, // Restore register/memory M16C_popc, // Restore control register M16C_popm, // Restore multiple registers M16C_push, // Save register/memory/immediate data M16C_pusha, // Save effective address M16C_pushc, // Save control register M16C_pushm, // Save multiple registers M16C_reit, // Return from interrupt M16C_rmpa, // Calculate sum-of-products M16C_rolc, // Rotate left with carry M16C_rorc, // Rotate right with carry M16C_rot, // Rotate M16C_rts, // Return from subroutine M16C_sbb, // Subtract with borrow M16C_sbjnz, // Subtract & conditional jump M16C_sha, // Shift arithmetic M16C_shl, // Shift logical M16C_smovb, // Transfer string backward M16C_smovf, // Transfer string forward M16C_sstr, // Store string M16C_stc, // Transfer from control register M16C_stctx, // Save context M16C_ste, // Store to extended data area M16C_stnz, // Conditional transfer: store on not zero M16C_stz, // Conditional transfer: store on zero M16C_stzx, // Conditional transfer: store on zero extension M16C_sub, // Subtract without borrow M16C_tst, // Test M16C_und, // Interrupt for undefined instruction M16C_wait, // Wait M16C_xchg, // Exchange M16C_xor, // Exclusive OR // M16C/80 specifics M16C_addx, M16C_bitindex, M16C_brk2, // Debugger-only interrupt M16C_clip, M16C_cmpx, M16C_extz, M16C_freit, // Fast return from interrupt M16C_indexb, M16C_indexbd, M16C_indexbs, M16C_indexl, M16C_indexld, M16C_indexls, M16C_indexw, M16C_indexwd, M16C_indexws, M16C_max, M16C_min, M16C_movx, M16C_mulex, M16C_sccnd, // conds (order is important; don't shuffle) (same order as the enum am_cnd8_t in m16c.hpp) M16C_scgeu, // Conditional store: Equal to or greater than; C == 1 M16C_scgtu, // Conditional store: Greater than M16C_sceq, // Conditional store: Equal to; Z == 1 M16C_scn, // Conditional store: Negative M16C_scle, // Conditional store: Equal to or smaller than (signed) M16C_sco, // Conditional store: Overflow; O == 1 M16C_scge, // Conditional store: Equal to or greater than (signed) M16C_scltu, // Conditional store: Smaller than; C == 0 M16C_scleu, // Conditional store: Equal to or smaller than M16C_scne, // Conditional store: Not equal; Z == 0 M16C_scpz, // Conditional store: Positive or zero M16C_scgt, // Conditional store: Greater than (signed) M16C_scno, // Conditional store: No overflow; O == 0 M16C_sclt, // Conditional store: Smaller than (signed) // --- M16C_scmpu, M16C_sin, M16C_smovu, M16C_sout, M16C_subx, // M32C specifics M16C_shanc, // Shift arithmetic no carry M16C_shlnc, // Shift logical no carry // R32C specifics M16C_addf, M16C_adsf, M16C_cmpf, M16C_cnvif, M16C_divf, M16C_ediv, M16C_edivu, M16C_edivx, M16C_emul, M16C_emulu, M16C_exiti, M16C_index1, M16C_index2, M16C_mulf, M16C_mulx, M16C_round, M16C_stop, M16C_subf, M16C_suntil, M16C_swhile, M16C_last }; // exporting the ins.cpp array // m32r instructions declaration enum { m32r_null = 0, // Null instruction m32r_add, // Add m32r_add3, // Add 3-operand m32r_addi, // Add immediate m32r_addv, // Add with overflow checking m32r_addv3, // Add 3-operand with overflow checking m32r_addx, // Add with carry m32r_and, // AND m32r_and3, // AND 3-operand m32r_bc, // Branch on C-bit m32r_beq, // Branch on equal m32r_beqz, // Branch on equal zero m32r_bgez, // Branch on greater than or equal zero m32r_bgtz, // Branch on greater than zero m32r_bl, // Branch and link m32r_blez, // Branch on less than or equal zero m32r_bltz, // Branch on less than zero m32r_bnc, // Branch on not C-bit m32r_bne, // Branch on not equal m32r_bnez, // Branch on not equal zero m32r_bra, // Branch m32r_cmp, // Compare m32r_cmpi, // Compare immediate m32r_cmpu, // Compare unsigned m32r_cmpui, // Compare unsigned immediate m32r_div, // Divide m32r_divu, // Divide unsigned m32r_jl, // Jump and link m32r_jmp, // Jump m32r_ld, // Load m32r_ld24, // Load 24-bit immediate m32r_ldb, // Load byte m32r_ldh, // Load halfword m32r_ldi, // Load immediate m32r_ldub, // Load unsigned byte m32r_lduh, // Load unsigned halfword m32r_lock, // Load locked m32r_machi, // Multiply-accumulate high-order halfwords m32r_maclo, // Multiply-accumulate low-order halfwords m32r_macwhi, // Multiply-accumulate word and high-order halfword m32r_macwlo, // Multiply-accumulate word and low-order halfword m32r_mul, // Multiply m32r_mulhi, // Multiply high-order halfwords m32r_mullo, // Multiply low-order halfwords m32r_mulwhi, // Multiply word high-order halfwords m32r_mulwlo, // Multiply word low-order halfwords m32r_mv, // Move register m32r_mvfachi, // Move from accumulator high-order word m32r_mvfaclo, // Move from accumulator low-order word m32r_mvfacmi, // Move from accumulator middle-order word m32r_mvfc, // Move from control register m32r_mvtachi, // Move to accumulator high-order word m32r_mvtaclo, // Move to accumulator low-order word m32r_mvtc, // Move to control register m32r_neg, // Negate m32r_nop, // No operation m32r_not, // Logical NOT m32r_or, // OR m32r_or3, // OR 3-operand m32r_push, // Push, mnem for st reg, @-sp m32r_pop, // Pop, mnem for ld reg, @sp+ m32r_rac, // Round accumulator m32r_rach, // Round accumulator halfword m32r_rem, // Remainder m32r_remu, // Remainder unsigned m32r_rte, // Return from EIT m32r_seth, // Set high-order 16-bit m32r_sll, // Shift left logical m32r_sll3, // Shift left logical 3-operand m32r_slli, // Shift left logical immediate m32r_sra, // Shirt right arithmetic m32r_sra3, // Shirt right arithmetic 3-operand m32r_srai, // Shirt right arithmetic immediate m32r_srl, // Shift right logical m32r_srl3, // Shift right logical 3-operand m32r_srli, // Shift right logical immediate m32r_st, // Store m32r_stb, // Store byte m32r_sth, // Store halfword m32r_sub, // Substract m32r_subv, // Substract with overflow checking m32r_subx, // Substract with borrow m32r_trap, // Trap m32r_unlock, // Store unlocked m32r_xor, // Exclusive OR m32r_xor3, // Exclusive OR 3-operand // M32RX : m32rx_bcl, m32rx_bncl, m32rx_cmpeq, m32rx_cmpz, m32rx_divh, m32rx_jc, m32rx_jnc, m32rx_machi, // 'machi' 3-operand m32rx_maclo, // 'maclo' 3-operand m32rx_macwhi, // 'macwhi' 3-operand m32rx_macwlo, // 'macwlo' 3-operand m32rx_mulhi, // 'mulhi' 3-operand m32rx_mullo, // 'mullo' 3-operand m32rx_mulwhi, // 'mulwhi' 3-operand m32rx_mulwlo, // 'mulwlo' 3-operand m32rx_mvfachi, // 'mvfachi' 3-operand m32rx_mvfaclo, // 'mvfaclo' 3-operand m32rx_mvfacmi, // 'mvfacmi' 3-operand m32rx_mvtachi, // 'mvtachi' 3-operand m32rx_mvtaclo, // 'mvtaclo' 3-operand m32rx_rac, // 'rac' 3 operand m32rx_rach, // 'rach' 3 operand m32rx_satb, m32rx_sath, m32rx_sat, m32rx_pcmpbz, m32rx_sadd, m32rx_macwu1, m32rx_msblo, m32rx_mulwu1, m32rx_maclh1, m32rx_sc, m32rx_snc, // Floating point m32r_fadd, // Floating-point add m32r_fsub, // Floating-point subtract m32r_fmul, // Floating-point multiply m32r_fdiv, // Floating-point divede m32r_fmadd, // Floating-point multiply and add m32r_fmsub, // Floating-point multiply and subtract m32r_itof, // Integer to float m32r_utof, // Unsigned integer to float m32r_ftoi, // Float to integer m32r_ftos, // Float to short m32r_fcmp, // Floating-point compare m32r_fcmpe, // Floating-point compare with exeption if unordered // Bit Operation Instructions m32r_bset, // Bit set m32r_bclr, // Bit clear m32r_btst, // Bit test m32r_setpsw, // Set PSW m32r_clrpsw, // Clear PSW m32r_last }; enum { m740_null = 0, // null instruction m740_adc, // add with carry m740_and, // logical and m740_asl, // arithmetic shift left m740_bbc, // branch on bit clear m740_bbs, // branch on bit set m740_bcc, // branch on carry clear m740_bcs, // branch on carry set m740_beq, // branch on equal m740_bit, // test bit in memory with accumulator m740_bmi, // branch on result minus m740_bne, // branch on not equal m740_bpl, // branch on result plus m740_bra, // branch always m740_brk, // force break m740_bvc, // branch on overflow clear m740_bvs, // branch on overflow set m740_clb, // clear bit m740_clc, // clear carry flag m740_cld, // clear decimal mode m740_cli, // clear interrupt disable status m740_clt, // clear transfer flag m740_clv, // clear overflow flag m740_cmp, // compare m740_com, // complement m740_cpx, // compare memory and index register X m740_cpy, // compare memory and index register Y m740_dec, // decrement by one m740_dex, // decrement index register X by one m740_dey, // decrement index register Y by one m740_div, // divide memory by accumulator m740_eor, // exclusive or memory with accumulator m740_inc, // increment by one m740_inx, // increment index register X by one m740_iny, // increment index register Y by one m740_jmp, // jump m740_jsr, // jump to subroutine m740_lda, // load accumulator with memory m740_ldm, // load immediate data to memory m740_ldx, // load index register X from memory m740_ldy, // load index register Y from memory m740_lsr, // logical shift right m740_mul, // multiply accumulator and memory m740_nop, // no operation m740_ora, // or memory with accumulator m740_pha, // push accumulator on stack m740_php, // push processor status on stack m740_pla, // pull accumulator from stack m740_plp, // pull processor status from stack m740_rol, // rotate one bit left m740_ror, // rotate one bit right m740_rrf, // rotate right of four bits m740_rti, // return from interrupt m740_rts, // return from subroutine m740_sbc, // subtract with carry m740_seb, // set bit m740_sec, // set carry flag m740_sed, // set decimal mode m740_sei, // set interrupt disable flag m740_set, // set transfert flag m740_sta, // store accumulator in memory m740_stp, // stop m740_stx, // store index register X in memory m740_sty, // store index register Y in memory m740_tax, // transfert accumulator to index register X m740_tay, // transfert accumulator to index register Y m740_tst, // test for negative or zero m740_tsx, // transfert stack pointer to index register X m740_txa, // transfert index register X to accumulator m740_txs, // transfert index register X to stack pointer m740_tya, // transfert index register Y to accumulator m740_wit, // wait m740_last }; enum { // 7700 : m7700_null = 0, // null instruction m7700_adc, // addition with carry m7700_and, // logical AND m7700_asl, // arithmetic shift left m7700_bbc, // branch on bit clear m7700_bbs, // branch on bit set m7700_bcc, // branch on carry clear m7700_bcs, // branch on carry set m7700_beq, // branch on equal m7700_bmi, // branch on result minus m7700_bne, // branch on not equal m7700_bpl, // branch on result plus m7700_bra, // branch always m7700_brk, // force break m7700_bvc, // branch on overflow clear m7700_bvs, // branch on overflow set m7700_clb, // clear bit m7700_clc, // clear carry flag m7700_cli, // clear interrupt disable status m7700_clm, // clear m flag m7700_clp, // clear processor status m7700_clv, // clear overflow flag m7700_cmp, // compare m7700_cpx, // compare memory and index register X m7700_cpy, // compare memory and index register Y m7700_dec, // decrement by one m7700_dex, // decrement index register X by one m7700_dey, // decrement index register Y by one m7700_div, // divide m7700_eor, // exclusive OR memory with accumulator m7700_inc, // increment by one m7700_inx, // increment index register X by one m7700_iny, // increment index register Y by one m7700_jmp, // jump m7700_jsr, // jump to subroutine m7700_lda, // load accumulator from memory m7700_ldm, // load immediate to memory m7700_ldt, // load immediate to data bank register m7700_ldx, // load index register X from memory m7700_ldy, // load index register Y from memory m7700_lsr, // logical shift right m7700_mpy, // multiply m7700_mvn, // move negative m7700_mvp, // move positive m7700_nop, // no operation m7700_ora, // OR memory with accumulator m7700_pea, // push effective address m7700_pei, // push effective indirect address m7700_per, // push effective program counter relative address m7700_pha, // push accumulator A on stack m7700_phb, // push accumulator B on stack m7700_phd, // push direct page register on stack m7700_phg, // push program bank register on stack m7700_php, // push processor status on stack m7700_pht, // push data bank register on stack m7700_phx, // push index register X on stack m7700_phy, // push index register Y on stack m7700_pla, // pull accumulator A from stack m7700_plb, // pull accumulator B from stack m7700_pld, // pull direct page register from stack m7700_plp, // pull processor status from stack m7700_plt, // pull data bank register from stack m7700_plx, // pull index register X from stack m7700_ply, // pull index register Y from stack m7700_psh, // push m7700_pul, // pull m7700_rla, // rotate left accumulator A m7700_rol, // rotate one bit left m7700_ror, // rotate one bit right m7700_rti, // return from interrupt m7700_rtl, // return from subroutine long m7700_rts, // return from subroutine m7700_sbc, // subtract with carry m7700_seb, // set bit m7700_sec, // set carry flag m7700_sei, // set interrupt disable status m7700_sem, // set m flag m7700_sep, // set processor status m7700_sta, // store accumulator in memory m7700_stp, // stop m7700_stx, // store index register X in memory m7700_sty, // store index register Y in memory m7700_tad, // transfer accumulator A to direct page register m7700_tas, // transfer accumulator A to stack pointer m7700_tax, // transfer accumulator A to index register X m7700_tay, // transfer accumulator A to index register Y m7700_tbd, // transfer accumulator B to direct page register m7700_tbs, // transfer accumulator B to stack pointer m7700_tbx, // transfer accumulator B to index register X m7700_tby, // transfer accumulator B to index register Y m7700_tda, // transfer direct page register to accumulator A m7700_tdb, // transfer direct page register to accumulator B m7700_tsa, // transfer stack pointer to accumulator A m7700_tsb, // transfer stack pointer to accumulator B m7700_tsx, // transfer stack pointer to index register X m7700_txa, // transfer index register X to accumulator A m7700_txb, // transfer index register X to accumulator B m7700_txs, // transfer index register X to stack pointer m7700_txy, // transfer index register X to Y m7700_tya, // transfer index register Y to accumulator A m7700_tyb, // transfer index register Y to accumulator B m7700_tyx, // transfer index register Y to X m7700_wit, // wait m7700_xab, // exchange accumulator A and B // 7750 : m7750_asr, // arithmetic shift right m7750_divs, // divide with sign m7750_exts, // extention with sign m7750_extz, // extention zero m7750_mpys, // multiply with sign m7700_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * MITSUBISHI 7900 Family */ enum { m7900_null = 0, // Unknown Operation m7900_abs, // ABSolute m7900_absd, // ABSolute at Double-word m7900_adc, // ADd with Carry m7900_adcb, // ADd with Carry at Byte m7900_adcd, // ADd with Carry at Double-word m7900_add, // Addition m7900_addb, // ADD at Byte m7900_addd, // ADD at Double-word m7900_addm, // ADD immediate and Memory m7900_addmb, // ADD immediate and Memory at Byte m7900_addmd, // ADD immediate and Memory at Double-word m7900_adds, // ADD Stack pointer and immediate m7900_addx, // ADD index register X and immediate m7900_addy, // ADD index register Y and immediate m7900_and, // Logical AND m7900_andb, // logical AND between immediate (Byte) m7900_andm, // logical AND between immediate value and Memory m7900_andmb, // logical AND between immediate value and Memory (Byte) m7900_andmd, // logical AND between immediate value and Memory (Double word) m7900_asl, // Arithmetic Shift to Left m7900_asln, // Arithmetic Shift to Left by n bits m7900_asldn, // Arithmetic Shift to Left by n bits (Double word) m7900_asr, // Arithmeticshift to the right m7900_asrn, // Arithmetic Shift to Right by n bits m7900_asrdn, // Arithmetic Shift to Right by n bits (Double word) m7900_bbc, // Branch on Bit Clear m7900_bbcb, // Branch on Bit Clear (Byte) m7900_bbs, // Branch on Bit Set m7900_bbsb, // Branch on Bit Set (Byte) m7900_bcc, // Branch on Carry Clear m7900_bcs, // Branch on Carry Set m7900_beq, // Branch on EQual m7900_bge, // Branch on Greater or Equal m7900_bgt, // Branch on Greater Than m7900_bgtu, // Branch on Greater Than with Unsign m7900_ble, // Branch on Less or Equal m7900_bleu, // Branch on Less Equal with Unsign m7900_blt, // Branch on Less Than m7900_bmi, // Branch on result MInus m7900_bne, // Branch on Not Equal m7900_bpl, // Branch on result PLus m7900_bra, // BRanch Always m7900_bral, // BRanch Always m7900_brk, // force BReaK m7900_bsc, // Branch on Single bit Clear m7900_bsr, // Branch to SubRoutine m7900_bss, // Branch on Single bit Set m7900_bvc, // Branch on oVerflow Clear m7900_bvs, // Branch on oVerflow Set m7900_cbeq, // Compare immediate and Branch on EQual m7900_cbeqb, // Compare immediate and Branch on EQual at Byte m7900_cbne, // Compare immediate and Branch on Not Equal m7900_cbneb, // Compare immediate and Branch on Not Equal at Byte m7900_clc, // CLear Carry flag m7900_cli, // CLear Interrupt disable status m7900_clm, // CLear M flag m7900_clp, // CLear Processor status m7900_clr, // CLeaR accumulator m7900_clrb, // CLeaR accumulator at Byte m7900_clrm, // CLeaR Memory m7900_clrmb, // CLeaR Memory at Byte m7900_clrx, // CLeaR index register X m7900_clry, // CLeaR index register Y m7900_clv, // CLear oVerflow flag m7900_cmp, // CoMPare m7900_cmpb, // CoMPare at Byte m7900_cmpd, // CoMPare at Double-word m7900_cmpm, // CoMPare immediate with Memory m7900_cmpmb, // CoMPare immediate with Memory at Byte m7900_cmpmd, // CoMPare immediate with Memory at Double-word m7900_cpx, // ComPare memory and index register X m7900_cpy, // ComPare memory and index register Y m7900_debne, // DEcrement memory and Branch on Not Equal m7900_dec, // DECrement by one m7900_dex, // DEcrement index register X by one m7900_dey, // DEcrement index register Y by one m7900_div, // DIVide unsigned m7900_divs, // DIVide with Sign m7900_dxbne, // Decrement index register X and Branch on Not Equal m7900_dybne, // Decrement index register Y and Branch on Not Equal m7900_eor, // Exclusive OR memory with accumulator m7900_eorb, // Exclusive OR immediate with accumulator at Byte m7900_eorm, // Exclusive OR immediate with Memory m7900_eormb, // Exclusive OR immediate with Memory at Byte m7900_eormd, // Exclusive OR immediate with Memory at Double-word m7900_exts, // EXTension Sign m7900_extsd, // EXTension Sign at Double-word m7900_extz, // EXTension Zero m7900_extzd, // EXTension Zero at Double-word m7900_inc, // INCrement by one m7900_inx, // INcrement index register X by one m7900_iny, // INcrement index register y by one m7900_jmp, // Jump m7900_jmpl, // Jump m7900_jsr, // Jump to SubRoutine m7900_jsrl, // Jump to SubRoutine m7900_lda, // LoaD Accumulator from memory m7900_ldab, // LoaD Accumulator from memory at Byte m7900_ldad, // LoaD Accumulator from memory at Double-word m7900_lddn, // LoaD immediate to Direct page register n m7900_ldt, // LoaD immediate to DaTa bank register m7900_ldx, // LoaD index register X from memory m7900_ldxb, // LoaD index register X from memory at Byte m7900_ldy, // LoaD index register Y from memory m7900_ldyb, // LoaD index register Y from memory at Byte m7900_lsr, // Logical Shift Right m7900_lsrn, // Logical n bits Shift Right m7900_lsrdn, // Logical n bits Shift Right at Double-word m7900_movm, // MOVe Memory to memory m7900_movmb, // MOVe Memory to memory at Byte m7900_movr, // MOVe Repeat memory to memory m7900_movrb, // MOVe Repeat memory to memory at Byte m7900_mpy, // MultiPlY m7900_mpys, // MultiPlY with Sign m7900_mvn, // MoVe Negative m7900_mvp, // MoVe Positive m7900_neg, // NEGative m7900_negd, // NEGative at Double-word m7900_nop, // No OPeration m7900_ora, // OR memory with Accumulator m7900_orab, // OR immediate with Accumulator at Byte m7900_oram, // OR immediAte with Memory m7900_oramb, // OR immediAte with Memory at Byte m7900_oramd, // OR immediAte with Memory at Double-word m7900_pea, // Push Effective Address m7900_pei, // Push Effective Indirect address m7900_per, // Push Effective program counter Relative address m7900_pha, // PusH accumulator A on stack m7900_phb, // PusH accumulator B on stack m7900_phd, // PusH Direct page register on stack m7900_phdn, // PusH Direct page register n on stack m7900_phg, // PusH proGram bank register on stack m7900_phldn, // PusH dpr n to stack and Load immediate to Dpr n m7900_php, // PusH Processor status on stack m7900_pht, // PusH daTa bank register on stack m7900_phx, // PusH index register X on stack m7900_phy, // PusH index register Y on stack m7900_pla, // PuLl accumulator A from stack m7900_plb, // PuLl accumulator B from stack m7900_pld, // PuLl Direct page register from stack m7900_pldn, // PuLl Direct page register n from stack m7900_plp, // PuLl Processor status from stack m7900_plt, // PuLl daTa bank register from stack m7900_plx, // PuLl index register X from stack m7900_ply, // PuLl index register Y from stack m7900_psh, // PuSH m7900_pul, // PuLl m7900_rla, // Rotate Left accumulator A m7900_rmpa, // Repeat Multiply and Accumulate m7900_rol, // ROtate one bit Left m7900_roln, // n bits ROtate Left m7900_roldn, // n bits ROtate Left at Double-word m7900_ror, // ROtate one bit Right m7900_rorn, // n bits ROtate Right m7900_rordn, // n bits ROtate Right at Double-word m7900_rti, // Return from Interrupt m7900_rtl, // ReTurn from subroutine Long m7900_rtld, // ReTurn from subroutine Long and pull Direct page register n m7900_rts, // ReTurn from Subroutine m7900_rtsdn, // ReTurn from Subroutine and pull Direct page register n m7900_sbc, // SuBtract with Carry m7900_sbcb, // SuBtract with Carry at Byte m7900_sbcd, // SuBtract with Carry at Double-word m7900_sec, // SEt Carry flag m7900_sei, // SEt Interrupt disable status m7900_sem, // SEt M flag m7900_sep, // SEt Processor status m7900_sta, // STore Accumulator in memory m7900_stab, // STore Accumulator in memory at Byte m7900_stad, // STore Accumulator in memory at Double-word m7900_stp, // SToP m7900_stx, // STore index register X in memory m7900_sty, // STore index register Y in memory m7900_sub, // SUBtract m7900_subb, // SUBtract at Byte m7900_subd, // SUBtract at Double-word m7900_subm, // SUBtract immediate from Memory m7900_submb, // SUBtract immediate from Memory at Byte m7900_submd, // SUBtract immediate from Memory at Double-word m7900_subs, // SUBtract Stack pointer m7900_subx, // SUBtract immediate from index register X m7900_suby, // SUBtract immediate from index register Y m7900_tadn, // Transfer accumulator A to Direct page register n m7900_tas, // Transfer accumulator A to Stack pointer m7900_tax, // Transfer accumulator A to index register X m7900_tay, // Transfer accumulator A to index register Y m7900_tbdn, // Transfer accumulator B to Direct page register n m7900_tbs, // Transfer accumulator B to Stack pointer m7900_tbx, // Transfer accumulator B to index register X m7900_tby, // Transfer accumulator B to index register Y m7900_tdan, // Transfer Direct page register n to accumulator A m7900_tdbn, // Transfer Direct page register n to accumulator B m7900_tds, // Transfer Direct page register to Stack pointer m7900_tsa, // Transfer Stack pointer to accumulator A m7900_tsb, // Transfer Stack pointer to accumulator B m7900_tsd, // Transfer Stack pointer to Direct page register m7900_tsx, // Transfer Stack pointer to index register X m7900_txa, // Transfer index register X to accumulator A m7900_txb, // Transfer index register X to accumulator B m7900_txs, // Transfer index register X to Stack pointer m7900_txy, // Transfer index register X to Y m7900_tya, // Transfer index register Y to accumulator A m7900_tyb, // Transfer index register Y to accumulator B m7900_tyx, // Transfer index register Y to X m7900_wit, // WaIT m7900_xab, // eXchange accumulator A and B m7900_last // }; enum { st9_null = 0, // Unknown Operation. st9_ld, // Load. st9_ldw, // Load word. st9_ldpp, // Load (using CSR) => (using CSR). st9_ldpd, // Load (using DPRx) => (using CSR). st9_lddp, // Load (using CSR) => (using DPRx). st9_lddd, // Load (using DPRx) => (using DPRx). st9_add, // Add. st9_addw, // Add Word. st9_adc, // Add with Carry. st9_adcw, // Add Word with Carry. st9_sub, // Substract. st9_subw, // Substract Word. st9_sbc, // Substract with Carry. st9_sbcw, // Substract Word with Carry. st9_and, // Logical AND. st9_andw, // Logical Word AND. st9_or, // Logical OR. st9_orw, // Logical Word OR. st9_xor, // Logical Exclusive OR. st9_xorw, // Logical Word Exclusive OR. st9_cp, // Compare. st9_cpw, // Compare Word. st9_tm, // Test under Mask. st9_tmw, // Test Word under Mask. st9_tcm, // Test Complement under Mask. st9_tcmw, // Test Word Complement under Mask. st9_inc, // Increment. st9_incw, // Increment Word. st9_dec, // Decrement. st9_decw, // Decrement Word. st9_sla, // Shift Left Arithmetic. st9_slaw, // Shift Word Left Arithmetic. st9_sra, // Shift Right Arithmetic. st9_sraw, // Shift Word Right Arithmetic. st9_rrc, // Rotate Right through Carry. st9_rrcw, // Rotate Word Right through Carry. st9_rlc, // Rotate Left through Carry. st9_rlcw, // Rotate Word Left through Carry. st9_ror, // Rotate Right. st9_rol, // Rotate Left. st9_clr, // Clear Register. st9_cpl, // Complement Register. st9_swap, // Swap Nibbles. st9_da, // Decimal ajust. st9_push, // Push on System Stack. st9_pushw, // Push Word on System Stack. st9_pea, // Push Effective Address on System Stack. st9_pop, // Pop from System Stack. st9_popw, // Pop Word from System Stack. st9_pushu, // Push on User Stack. st9_pushuw, // Push Word on User Stack. st9_peau, // Push Effective Address on User Stack. st9_popu, // Pop from User Stack. st9_popuw, // Pop Word from User Stack. st9_link, // Move System Stack Pointer upward; support for high-level language. st9_unlink, // Move System Stack Pointer backward; support for high-level language. st9_linku, // Move User Stack Pointer upward; support for high-level language. st9_unlinku, // Move User Stack Pointer backward; support for high-level language. st9_mul, // Multiply 8x8. st9_div, // Divide 8x8. st9_divws, // Divide Word Stepped 32/16. st9_bset, // Bit Set. st9_bres, // Bit Reset . st9_bcpl, // Bit Complement. st9_btset, // Bit Test and Set. st9_bld, // Bit Load. st9_band, // Bit AND. st9_bor, // Bit OR. st9_bxor, // Bit XOR. st9_ret, // Return from Subroutine. st9_rets, // Inter-segment Return to Subroutine. st9_iret, // Return from Interrupt. st9_jrcc, // Jump Relative if Condition ``cc'' is Met. st9_jpcc, // Jump if Condition ``cc'' is Met. st9_jp, // Unconditional Jump. st9_jps, // Unconditional Inter-segment Jump. st9_call, // Unconditional Call. st9_calls, // Inter-segment Call to Subroutine. st9_btjf, // Bit Test and Jump if False. st9_btjt, // Bit Test and Jump if True. st9_djnz, // Decrement a Working Register and Jump if Non Zero. st9_dwjnz, // Decrement a Register Pair and Jump if Non Zero. st9_cpjfi, // Compare and Jump on False. Otherwise Post Increment. st9_cpjti, // Compare and Jump on True. Otherwise Post Increment. st9_xch, // Exchange Registers. st9_srp, // Set Register Pointer Long (16 working registers). st9_srp0, // Set Register Pointer 0 (8 LSB working registers). st9_srp1, // Set Register Pointer 1 (8 MSB working registers). st9_spp, // Set Page Pointer. st9_ext, // Sign Extend. st9_ei, // Enable Interrupts. st9_di, // Disable Interrupts. st9_scf, // Set Carry Flag. st9_rcf, // Reset Carry Flag. st9_ccf, // Complement Carry Flag. st9_spm, // Select Extended Memory addressing scheme through CSR Register. st9_sdm, // Select Extended Memory addressing scheme through DPR Registers. st9_nop, // No Operation. st9_wfi, // Stop Program Execution and Wait for the next Enable Interrupt. st9_halt, // Stop Program Execution until System Reset. st9_etrap, // Undocumented instruction. st9_eret, // Undocumented instruction. st9_ald, // PSEUDO INSTRUCTION. SHOULD NEVER BE USED. st9_aldw, // PSEUDO INSTRUCTION. SHOULD NEVER BE USED. st9_last }; enum { fr_null = 0, // null instruction fr_add, // add word data of source register / 4-bit immediate data to destination register fr_add2, // add 4-bit immediate data to destination register fr_addc, // add word data of source register and carry bit to destination register fr_addn, // add word data of source register / immediate data to destination register fr_addn2, // add immediate data to destination register fr_sub, // subtract word data in source register from destination register fr_subc, // subtract word data in source register and carry bit from destination register fr_subn, // subtract word data in source register from destination register fr_cmp, // compare word / immediate data in source register and destination register fr_cmp2, // compare immediate data and destination register fr_and, // and word data of source register to destination register / data in memory fr_andh, // and half-word data of source register to data in memory fr_andb, // and byte data of source register to data in memory fr_or, // or word data of source register to destination register / data in memory fr_orh, // or half-word data of source register to data in memory fr_orb, // or byte data of source register to data in memory fr_eor, // exclusive or word data of source register to destination register / data in memory fr_eorh, // exclusive or half-word data of source register to data in memory fr_eorb, // exclusive or byte data of source register to data in memory fr_bandl, // and 4-bit immediate data to lower 4 bits of byte data in memory fr_bandh, // and 4-bit immediate data to higher 4 bits of byte data in memory fr_borl, // or 4-bit immediate data to lower 4 bits of byte data in memory fr_borh, // or 4-bit immediate data to higher 4 bits of byte data in memory fr_beorl, // eor 4-bit immediate data to lower 4 bits of byte data in memory fr_beorh, // eor 4-bit immediate data to higher 4 bits of byte data in memory fr_btstl, // test lower 4 bits of byte data in memory fr_btsth, // test higher 4 bits of byte data in memory fr_mul, // multiply word data fr_mulu, // multiply unsigned word data fr_mulh, // multiply half-word data fr_muluh, // multiply unsigned half-word data fr_div0s, // initial setting up for signed division fr_div0u, // initial setting up for unsigned division fr_div1, // main process of division fr_div2, // correction when remainder is 0 fr_div3, // correction when remainder is 0 fr_div4s, // correction answer for signed division fr_lsl, // logical shift to the left direction fr_lsl2, // logical shift to the left direction fr_lsr, // logical shift to the right direction fr_lsr2, // logical shift to the right direction fr_asr, // arithmetic shift to the right direction fr_asr2, // arithmetic shift to the right direction fr_ldi_32, // load immediate 32-bit data to destination register fr_ldi_20, // load immediate 20-bit data to destination register fr_ldi_8, // load immediate 8-bit data to destination register fr_ld, // load word data in memory to register / program status register fr_lduh, // load half-word data in memory to register fr_ldub, // load byte data in memory to register fr_st, // store word data in register / program status register to memory fr_sth, // store half-word data in register to memory fr_stb, // store byte data in register to memory fr_mov, // move word data in source register / program status register to destination register / program status register fr_jmp, // jump fr_call, // call subroutine fr_ret, // return from subroutine fr_int, // software interrupt fr_inte, // software interrupt for emulator fr_reti, // return from interrupt fr_bra, // branch relative if condition satisfied fr_bno, // branch relative if condition satisfied fr_beq, // branch relative if condition satisfied fr_bne, // branch relative if condition satisfied fr_bc, // branch relative if condition satisfied fr_bnc, // branch relative if condition satisfied fr_bn, // branch relative if condition satisfied fr_bp, // branch relative if condition satisfied fr_bv, // branch relative if condition satisfied fr_bnv, // branch relative if condition satisfied fr_blt, // branch relative if condition satisfied fr_bge, // branch relative if condition satisfied fr_ble, // branch relative if condition satisfied fr_bgt, // branch relative if condition satisfied fr_bls, // branch relative if condition satisfied fr_bhi, // branch relative if condition satisfied fr_dmov, // move word data from register / address to register / address fr_dmovh, // move half-word data from register / address to register / address fr_dmovb, // move byte data from register / address to register / address fr_ldres, // load word data in memory to resource fr_stres, // store word data in resource to memory fr_copop, // coprocessor operation fr_copld, // load 32-bit data from register to coprocessor register fr_copst, // store 32-bit data from coprocessor register to register fr_copsv, // save 32-bit data from coprocessor register to register fr_nop, // no operation fr_andccr, // and condition code register and immediate data fr_orccr, // or condition code register and immediate data fr_stilm, // set immediate data to interrupt level mask register fr_addsp, // add stack pointer and immediate data fr_extsb, // sign extend from byte data to word data fr_extub, // unsign extend from byte data to word data fr_extsh, // sign extend from byte data to word data fr_extuh, // unsigned extend from byte data to word data fr_ldm0, // load multiple registers fr_ldm1, // load multiple registers fr_stm0, // store multiple registers fr_stm1, // store multiple registers fr_enter, // enter function fr_leave, // leave function fr_xchb, // exchange byte data fr_last // last instruction }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { ALPHA_null = 0, // Unknown Operation ALPHA_addf, // Add F_floating ALPHA_addg, // Add G_floating ALPHA_addl, // Add longword ALPHA_addl_v, // Add longword with overflow ALPHA_addq, // Add quadword ALPHA_addq_v, // Add quadword with overflow ALPHA_adds, // Add S_floating ALPHA_addt, // Add T_floating ALPHA_amask, // Architecture mask ALPHA_and, // Logical product ALPHA_beq, // Branch if = zero ALPHA_bge, // Branch if >= zero ALPHA_bgt, // Branch if > zero ALPHA_bic, // Bit clear ALPHA_bis, // Logical sum ALPHA_blbc, // Branch if low bit clear ALPHA_blbs, // Branch if low bit set ALPHA_ble, // Branch if <= zero ALPHA_blt, // Branch if < zero ALPHA_bne, // Branch if != zero ALPHA_br, // Unconditional branch ALPHA_bsr, // Branch to subroutine ALPHA_call_pal, // Trap to PALcode ALPHA_cmoveq, // CMOVE if = zero ALPHA_cmovge, // CMOVE if >= zero ALPHA_cmovgt, // CMOVE if > zero ALPHA_cmovlbc, // CMOVE if low bit clear ALPHA_cmovlbs, // CMOVE if low bit set ALPHA_cmovle, // CMOVE if <= zero ALPHA_cmovlt, // CMOVE if < zero ALPHA_cmovne, // CMOVE if != zero ALPHA_cmpbge, // Compare byte ALPHA_cmpeq, // Compare signed quadword equal ALPHA_cmpgeq, // Compare G_floating equal ALPHA_cmpgle, // Compare G_floating less than or equal ALPHA_cmpglt, // Compare G_floating less than ALPHA_cmple, // Compare signed quadword less than or equal ALPHA_cmplt, // Compare signed quadword less than ALPHA_cmpteq, // Compare T_floating equal ALPHA_cmptle, // Compare T_floating less than or equal ALPHA_cmptlt, // Compare T_floating less than ALPHA_cmptun, // Compare T_floating unordered ALPHA_cmpule, // Compare unsigned quadword less than or equal ALPHA_cmpult, // Compare unsigned quadword less than ALPHA_cpys, // Copy sign ALPHA_cpyse, // Copy sign and exponent ALPHA_cpysn, // Copy sign negate ALPHA_ctlz, // Count leading zero ALPHA_ctpop, // Count population ALPHA_cttz, // Count trailing zero ALPHA_cvtdg, // Convert D_floating to G_floating ALPHA_cvtgd, // Convert G_floating to D_floating ALPHA_cvtgf, // Convert G_floating to F_floating ALPHA_cvtgq, // Convert G_floating to quadword ALPHA_cvtlq, // Convert longword to quadword ALPHA_cvtqf, // Convert quadword to F_floating ALPHA_cvtqg, // Convert quadword to G_floating ALPHA_cvtql, // Convert quadword to longword ALPHA_cvtqs, // Convert quadword to S_floating ALPHA_cvtqt, // Convert quadword to T_floating ALPHA_cvtst, // Convert S_floating to T_floating ALPHA_cvttq, // Convert T_floating to quadword ALPHA_cvtts, // Convert T_floating to S_floating ALPHA_divf, // Divide F_floating ALPHA_divg, // Divide G_floating ALPHA_divs, // Divide S_floating ALPHA_divt, // Divide T_floating ALPHA_ecb, // Evict cache block ALPHA_eqv, // Logical equivalence ALPHA_excb, // Exception barrier ALPHA_extbl, // Extract byte low ALPHA_extlh, // Extract longword high ALPHA_extll, // Extract longword low ALPHA_extqh, // Extract quadword high ALPHA_extql, // Extract quadword low ALPHA_extwh, // Extract word high ALPHA_extwl, // Extract word low ALPHA_fbeq, // Floating branch if = zero ALPHA_fbge, // Floating branch if >= zero ALPHA_fbgt, // Floating branch if > zero ALPHA_fble, // Floating branch if <= zero ALPHA_fblt, // Floating branch if < zero ALPHA_fbne, // Floating branch if != zero ALPHA_fcmoveq, // FCMOVE if = zero ALPHA_fcmovge, // FCMOVE if >= zero ALPHA_fcmovgt, // FCMOVE if > zero ALPHA_fcmovle, // FCMOVE if <= zero ALPHA_fcmovlt, // FCMOVE if < zero ALPHA_fcmovne, // FCMOVE if != zero ALPHA_fetch, // Prefetch data ALPHA_fetch_m, // Prefetch data, modify intent ALPHA_ftois, // Floating to integer move, S_floating ALPHA_ftoit, // Floating to integer move, T_floating ALPHA_implver, // Implementation version ALPHA_insbl, // Insert byte low ALPHA_inslh, // Insert longword high ALPHA_insll, // Insert longword low ALPHA_insqh, // Insert quadword high ALPHA_insql, // Insert quadword low ALPHA_inswh, // Insert word high ALPHA_inswl, // Insert word low ALPHA_itoff, // Integer to floating move, F_floating ALPHA_itofs, // Integer to floating move, S_floating ALPHA_itoft, // Integer to floating move, T_floating ALPHA_jmp, // Jump ALPHA_jsr, // Jump to subroutine ALPHA_jsr_coroutine,// Jump to subroutine return ALPHA_lda, // Load address ALPHA_ldah, // Load address high ALPHA_ldbu, // Load zero-extended byte ALPHA_ldwu, // Load zero-extended word ALPHA_ldf, // Load F_floating ALPHA_ldg, // Load G_floating ALPHA_ldl, // Load sign-extended longword ALPHA_ldl_l, // Load sign-extended longword locked ALPHA_ldq, // Load quadword ALPHA_ldq_l, // Load quadword locked ALPHA_ldq_u, // Load unaligned quadword ALPHA_lds, // Load S_floating ALPHA_ldt, // Load T_floating ALPHA_maxsb8, // Vector signed byte maximum ALPHA_maxsw4, // Vector signed word maximum ALPHA_maxub8, // Vector unsigned byte maximum ALPHA_maxuw4, // Vector unsigned word maximum ALPHA_mb, // Memory barrier ALPHA_mf_fpcr, // Move from FPCR ALPHA_minsb8, // Vector signed byte minimum ALPHA_minsw4, // Vector signed word minimum ALPHA_minub8, // Vector unsigned byte minimum ALPHA_minuw4, // Vector unsigned word minimum ALPHA_mskbl, // Mask byte low ALPHA_msklh, // Mask longword high ALPHA_mskll, // Mask longword low ALPHA_mskqh, // Mask quadword high ALPHA_mskql, // Mask quadword low ALPHA_mskwh, // Mask word high ALPHA_mskwl, // Mask word low ALPHA_mt_fpcr, // Move to FPCR ALPHA_mulf, // Multiply F_floating ALPHA_mulg, // Multiply G_floating ALPHA_mull, // Multiply longword ALPHA_mull_v, // Multiply longword with overflow ALPHA_mulq, // Multiply quadword ALPHA_mulq_v, // Multiply quadword with overflow ALPHA_muls, // Multiply S_floating ALPHA_mult, // Multiply T_floating ALPHA_ornot, // Logical sum with complement ALPHA_perr, // Pixel error ALPHA_pklb, // Pack longwords to bytes ALPHA_pkwb, // Pack words to bytes ALPHA_rc, // Read and clear ALPHA_ret, // Return from subroutine ALPHA_rpcc, // Read process cycle counter ALPHA_rs, // Read and set ALPHA_s4addl, // Scaled add longword by 4 ALPHA_s4addq, // Scaled add quadword by 4 ALPHA_s4subl, // Scaled subtract longword by 4 ALPHA_s4subq, // Scaled subtract quadword by 4 ALPHA_s8addl, // Scaled add longword by 8 ALPHA_s8addq, // Scaled add quadword by 8 ALPHA_s8subl, // Scaled subtract longword by 8 ALPHA_s8subq, // Scaled subtract quadword by 8 ALPHA_sextb, // Sign extend byte ALPHA_sextw, // Sign extend word ALPHA_sll, // Shift left logical ALPHA_sqrtf, // Square root F_floating ALPHA_sqrtg, // Square root G_floating ALPHA_sqrts, // Square root S_floating ALPHA_sqrtt, // Square root T_floating ALPHA_sra, // Shift right arithmetic ALPHA_srl, // Shift right logical ALPHA_stb, // Store byte ALPHA_stf, // Store F_floating ALPHA_stg, // Store G_floating ALPHA_sts, // Store S_floating ALPHA_stl, // Store longword ALPHA_stl_c, // Store longword conditional ALPHA_stq, // Store quadword ALPHA_stq_c, // Store quadword conditional ALPHA_stq_u, // Store unaligned quadword ALPHA_stt, // Store T_floating ALPHA_stw, // Store word ALPHA_subf, // Subtract F_floating ALPHA_subg, // Subtract G_floating ALPHA_subl, // Subtract longword ALPHA_subl_v, // Subtract longword with overflow ALPHA_subq, // Subtract quadword ALPHA_subq_v, // Subtract quadword with overflow ALPHA_subs, // Subtract S_floating ALPHA_subt, // Subtract T_floating ALPHA_trapb, // Trap barrier ALPHA_umulh, // Unsigned multiply quadword high ALPHA_unpkbl, // Unpack bytes to longwords ALPHA_unpkbw, // Unpack bytes to words ALPHA_wh64, // Write hint 64 bytes ALPHA_wmb, // Write memory barrier ALPHA_xor, // Logical difference ALPHA_zap, // Zero bytes ALPHA_zapnot, // Zero bytes not // Macros ALPHA_unop, // Universal NOP ALPHA_nop, // Integer NOP ALPHA_fnop, // Floating point NOP ALPHA_clr, // Clear ALPHA_fabs, // Floating point absolute value ALPHA_fclr, // Floating point clear ALPHA_fmov, // Floating point register move ALPHA_fneg, // Floating point negate ALPHA_mov, // Move to register ALPHA_negl, // Negate longword ALPHA_negl_v, // Negate longword with overflow ALPHA_negq, // Negate quadword ALPHA_negq_v, // Negate quadword with overflow ALPHA_negf, // Negate F_floating ALPHA_negg, // Negate G_floating ALPHA_negs, // Negate S_floating ALPHA_negt, // Negate T_floating ALPHA_not, // Bitwise NOT ALPHA_sextl, // Move sign extended ALPHA_or, // Bitwise OR ALPHA_andnot, // Bit clear ALPHA_xornot, // Logical equivalence ALPHA_br0, // Branch ALPHA_last, }; enum { KR1878_null = 0, // Unknown Operation KR1878_mov, KR1878_cmp, // Compare KR1878_add, // Addition KR1878_sub, // Subtract KR1878_and, // Logical AND KR1878_or, // Logical Inclusive OR KR1878_xor, // Logical Exclusive OR KR1878_movl, KR1878_cmpl, // Compare KR1878_addl, // Addition KR1878_subl, // Subtract KR1878_bic, KR1878_bis, KR1878_btg, KR1878_btt, KR1878_swap, KR1878_neg, KR1878_not, KR1878_shl, // Shift Left KR1878_shr, // Shift Right KR1878_shra, // Arithmetic Shift Right KR1878_rlc, // Rotate Left KR1878_rrc, // Rotate Right KR1878_adc, // Add with Carry KR1878_sbc, // Subtract with Carry KR1878_ldr, KR1878_mtpr, KR1878_mfpr, KR1878_push, KR1878_pop, KR1878_sst, KR1878_cst, KR1878_tof, KR1878_tdc, KR1878_jmp, // Jump KR1878_jsr, // Jump to Subroutine KR1878_jnz, // Jump KR1878_jz, // Jump KR1878_jns, // Jump KR1878_js, // Jump KR1878_jnc, // Jump KR1878_jc, // Jump KR1878_ijmp, // Jump KR1878_ijsr, // Jump to Subroutine KR1878_rts, // Return from Subroutine KR1878_rtsc, // Return from Subroutine KR1878_rti, // Return from Interrupt KR1878_nop, // No Operation KR1878_wait, KR1878_stop, KR1878_reset, KR1878_sksp, KR1878_last, }; enum { AD218X_null = 0, // Unknown Operation // AMF subcodes AD218X_amf_01, // op = op * op (rnd) AD218X_amf_03, // op = mr + op * op (rnd) AD218X_amf_02, // op = mr - op * op (rnd) AD218X_amf_04, // op = op * op (ss) AD218X_amf_05, // op = op * op (su) AD218X_amf_06, // op = op * op (us) AD218X_amf_07, // op = op * op (uu) AD218X_amf_08, // op = mr + op * op AD218X_amf_09, // op = mr + op * op AD218X_amf_0a, // op = mr + op * op AD218X_amf_0b, // op = mr + op * op AD218X_amf_0c, // op = mr - op * op AD218X_amf_0d, // op = mr - op * op AD218X_amf_0e, // op = mr - op * op AD218X_amf_0f, // op = mr - op * op AD218X_amf_10, // op = op AD218X_amf_11, // op = op + 1 AD218X_amf_12, // op = op + op + C AD218X_amf_13, // op = op + op AD218X_amf_14, // op = not op AD218X_amf_15, // op = - op AD218X_amf_16, // op = op - op + C - 1 AD218X_amf_17, // op = op - op AD218X_amf_18, // op = op - 1 AD218X_amf_19, // op = op - op AD218X_amf_1a, // op = op - op + C - 1 AD218X_amf_1b, // op = not op AD218X_amf_1c, // op = op and op AD218X_amf_1d, // op = op or op AD218X_amf_1e, // op = op xor op AD218X_amf_1f, // op = abs op // Shifter subcodes AD218X_shft_0, // sr = lshift op (hi) AD218X_shft_1, // sr = sr or lshift op (hi) AD218X_shft_2, // sr = lshift op (lo) AD218X_shft_3, // sr = sr or lshift op (lo) AD218X_shft_4, // sr = ashift op (hi) AD218X_shft_5, // sr = sr or ashift op (hi) AD218X_shft_6, // sr = ashift op (lo) AD218X_shft_7, // sr = sr or ashift op (lo) AD218X_shft_8, // sr = norm op (hi) AD218X_shft_9, // sr = sr or norm op (hi) AD218X_shft_a, // sr = norm op (lo) AD218X_shft_b, // sr = sr or norm op (lo) AD218X_shft_c, // sr = exp op (hi) AD218X_shft_d, // sr = exp op (hix) AD218X_shft_e, // sr = exp op (lo) AD218X_shft_f, // sr = expadj op // ALU/MAC specific options AD218X_alu_00, // op = op + op + C [IF COND] X + Const AD218X_alu_01, // op = op + op AD218X_alu_02, // op = op - op + C - 1 [IF COND] X - Const AD218X_alu_03, // op = op - op AD218X_alu_04, // op = op - op + C - 1 [IF COND] Const - X AD218X_alu_05, // op = op - op AD218X_alu_06, // op = op and op [IF COND] X and,or,xor Const AD218X_alu_07, // op = op or op AD218X_alu_08, // op = op xor op AD218X_alu_09, // op = op [IF COND] PASS constant; constant <> 0,1, -1 AD218X_alu_0a, // op = op + 1 AD218X_alu_0b, // op = op - 1 AD218X_alu_0c, // divq op ALU Type 23 AD218X_alu_0d, // divs op, op ALU Type 24 AD218X_alu_0e, // none = op ALU Type 9, with no result AD218X_alu_0f, // none = op + 1 AD218X_alu_10, // none = op + op + C AD218X_alu_11, // none = op + op AD218X_alu_12, // none = not op AD218X_alu_13, // none = - op AD218X_alu_14, // none = op - op + C - 1 AD218X_alu_15, // none = op - op AD218X_alu_16, // none = op - 1 AD218X_alu_17, // none = op - op + C - 1 AD218X_alu_18, // none = op - op AD218X_alu_19, // none = not op AD218X_alu_1a, // none = op and op AD218X_alu_1b, // none = op or op AD218X_alu_1c, // none = op xor op AD218X_alu_1d, // none = abs op AD218X_mac_0, // op = 0 [IF COND] MAC CLEAR AD218X_mac_1, // op = mr (rnd) [IF COND] MAC TRANSFER AD218X_mac_2, // op = op * op (ss) [IF COND] X * X AD218X_mac_3, // op = op * op (uu) AD218X_mac_4, // op = op * op (rnd) AD218X_mac_5, // op = mr + op * op (ss) [IF COND] MR + X * X AD218X_mac_6, // op = mr + op * op (uu) AD218X_mac_7, // op = mr + op * op (rnd) AD218X_mac_8, // op = mr - op * op (ss) [IF COND] MR - X * X AD218X_mac_9, // op = mr - op * op (uu) AD218X_mac_a, // op = mr - op * op (rnd) AD218X_mac_b, // if mv sat mr ALU/MAC Type 25 // ALU/MAC Common case AD218X_amf, // [IF COND] AMF // Shifter Common case AD218X_shft, // [IF COND] Shifter // Shifter specific options. Shifter Type 15, const AD218X_shifter_0, // sr = ashift op by op (hi) AD218X_shifter_1, // sr = sr or ashift op by op (hi) AD218X_shifter_2, // sr = ashift op by op (lo) AD218X_shifter_3, // sr = sr or ashift op by op (lo) AD218X_shifter_4, // sr = lshift op by op (hi) AD218X_shifter_5, // sr = sr or lshift op by op (hi) AD218X_shifter_6, // sr = lshift op by op (lo) AD218X_shifter_7, // sr = sr or lshift op by op (lo) // Data Movement AD218X_move_0, // op = op Internal Data Move, Instruction Type 17: AD218X_move_1, // op = op Load Register Immediate, Instruction Type 6: AD218X_move_2, // op = op Load Non-Data Register Immediate, Instruction Type 7: AD218X_move_3, // op = dm(op) Data Memory Read (Direct Address), Instruction Type 3: AD218X_move_4, // op = dm(op, op) Data Memory Read, Instruction Type 4: AD218X_move_5, // op = pm(op, op) Program Memory Read AD218X_move_6, // dm(op) = op Data Memory Write (Direct Address) AD218X_move_7, // dm(op, op) = op Data Memory Write, Instruction Type 4: AD218X_move_8, // dm(op, op) = op Data Memory Write, Immediate Data, Instruction Type 2: AD218X_move_9, // pm(op, op) = op Program Memory Write, Instruction Type 5 AD218X_move_a, // op = io(op) I/O Memory Space Read/Write, Instruction Type 29: AD218X_move_b, // io(op) = op // Flow control AD218X_jump, // Unconditional JUMP Direct, Instruction Type 10: AD218X_jump_1, // Conditional JUMP Direct, Instruction Type 10: AD218X_jump_2, // Unconditional JUMP Indirect, Instruction Type 19: AD218X_jump_3, // Conditional JUMP Indirect, Instruction Type 19: AD218X_jump_4, // Conditional JUMP on Flag In Direct Instruction Type 27: AD218X_call, // Conditional CALL Direct, Instruction Type 10: AD218X_call_1, // Conditional CALL Indirect, Instruction Type 19: AD218X_call_2, // Conditional CALL on Flag In Direct Instruction Type 27: AD218X_rts, // Unconditional Return, Instruction Type 20: AD218X_rts_cond, // Conditional Return, Instruction Type 20: AD218X_rti, // Unconditional Return, Instruction Type 20: AD218X_rti_cond, // Conditional Return, Instruction Type 20: AD218X_nop, // No operation, Instruction Type 30 AD218X_do, // Do Until, Instruction Type 11: // Misc AD218X_idle, // Idle, Instruction Type 31: AD218X_idle_1, AD218X_flag_out, // Flag Out Mode Control Instruction Type 28: AD218X_stack_ctl, // Stack Control, Instruction Type 26: AD218X_mode_ctl, // Mode Control, Instruction Type 18: AD218X_tops_w, // toppcstack = op Internal Data Move, Instruction Type 17: AD218X_tops_r, // op = toppcstack AD218X_ints_dis, // dis ints AD218X_ints_ena, // ena ints AD218X_modify, // modify(op, op) Modify Address Register, Instruction Type 21: // ALU/MAC operation with Data Memory Read/Write AD218X_double_move, // op = dm(op, op), op = pm(op, op) Data & Program Memory Read, Instruction Type 1: AD218X_amf_move_0, // amf_cmd, op = dm(op, op) ALU/MAC operation with Data Memory Read, Instruction Type 4: AD218X_amf_move_1, // amf_cmd, op = pm(op, op) ALU/MAC operation with Program Memory Read, Instruction Type 5: AD218X_amf_move_2, // amf_cmd, op = dm(op, op) Shift operation with Data Memory Read, Instruction Type 12: AD218X_amf_move_3, // amf_cmd, op = pm(op, op) Shift operation with Program Memory Read, Instruction Type 13: AD218X_amf_move_4, // amf_cmd, op = op ALU/MAC operation with Data Register Move, Instruction Type 8: AD218X_amf_move_5, // amf_cmd, op = op Shift operation with Data Register Move, Instruction Type 14: AD218X_amf_move_6, // dm(op, op) = op, amf_cmd ALU/MAC operation with Data Memory Write, Instruction Type 4: AD218X_amf_move_7, // pm(op, op) = op, amf_cmd ALU/MAC operation with Program Memory Write, Instruction Type 5: AD218X_amf_move_8, // dm(op, op) = op, amf_cmd Shift operation with Data Memory Write, Instruction Type 12: AD218X_amf_move_9, // pm(op, op) = op, amf_cmd Shift operation with Program Memory Write, Instruction Type 13: AD218X_amf_move_a, // amf_cmd, op = dm(op, op), op = pm(op, op) ALU/MAC with Data and Program Memory Read, Instruction Type 1: AD218X_last, }; enum { OAK_Dsp_null = 0, // Unknown Operation OAK_Dsp_proc, // cmd need further process // ALU-ALM subcodes OAK_Dsp_or, // 000 Logical Or OAK_Dsp_and, // 001 And OAK_Dsp_xor, // 010 Exclusive Or OAK_Dsp_add, // 011 Add OAK_Dsp_alm_tst0, // 100 Test Bit-field for Zeros OAK_Dsp_alm_tst1, // 101 Test Bit-field for Ones OAK_Dsp_cmp, // 110 Compare OAK_Dsp_sub, // 111 Subtract // ALM subcodes OAK_Dsp_alm_msu, // 1000 Multiply and Subtract Previous Product OAK_Dsp_addh, // 1001 Add to High Accumulator OAK_Dsp_addl, // 1010 Add to Low Accumulator OAK_Dsp_subh, // 1011 Subtract from High Accumulator OAK_Dsp_subl, // 1100 Subtract from Low Accumulator OAK_Dsp_sqr, // 1101 Square OAK_Dsp_sqra, // 1110 Square and Accumulate Previous Product OAK_Dsp_cmpu, // 1111 Compare Unsigned // MODA-MODB subcodes conditional OAK_Dsp_shr, // 000 Shift Accumulator Right OAK_Dsp_shr4, // 001 Shift Accumulator Right by 4 Bits OAK_Dsp_shl, // 010 Shift Accumulator Left OAK_Dsp_shl4, // 011 Shift Accumulator Left by 4 Bits OAK_Dsp_ror, // 100 Rotate Accumulator Right through Carry OAK_Dsp_rol, // 101 Rotate Accumulator Left through Carry OAK_Dsp_clr, // 110 Clear Accumulator OAK_Dsp_mod_reserved, // 111 Mod Reserved // MODA subcodes conditional OAK_Dsp_not, // 1000 Logical Not OAK_Dsp_neg, // 1001 2's Complement of aX-accumulator OAK_Dsp_rnd, // 1010 Round Upper 20 Bits of aX-accumulator OAK_Dsp_pacr, // 1011 Product Move and Round to aX-accumulator OAK_Dsp_clrr, // 1100 Clear and Round aX-accumulator OAK_Dsp_inc, // 1101 Increment Accumulator by One OAK_Dsp_dec, // 1110 Decrement aX-accumulator by One OAK_Dsp_copy, // 1111 Copy aX-accumulator // --- OAK_Dsp_norm, // Normalize OAK_Dsp_divs, // Division Step // ALB subcodes OAK_Dsp_set, // 000 Set Bit-field OAK_Dsp_rst, // 001 Reset Bit-field OAK_Dsp_chng, // 010 Change Bit-field OAK_Dsp_addv, // 011 Add Long Immediate Value or Data Memory Location OAK_Dsp_alb_tst0, // 100 Test Bit-field for Zeros OAK_Dsp_alb_tst1, // 101 Test Bit-field for Ones OAK_Dsp_cmpv, // 110 Compare Long Immediate Value to Register or Data Memory Location OAK_Dsp_subv, // 111 Subtract Long Immediate Value from a Register or a Data Memory Location // --- OAK_Dsp_maxd, // Maximum between Data Memory Location and Accumulator OAK_Dsp_max, // Maximum between Two Accumulators OAK_Dsp_min, // Minimum between Two Accumulators OAK_Dsp_lim, // Limit Accumulator (lim aX[, aX]) // MUL subcodes OAK_Dsp_mpy, // 000 Multiply OAK_Dsp_mpysu, // 001 Multiply Signed by Unsigned OAK_Dsp_mac, // 010 Multiply and Accumulate Previous Product OAK_Dsp_macus, // 011 Multiply Unsigned by Signed and Accumulate Previous Product OAK_Dsp_maa, // 100 Multiply and Accumulate Aligned Previous Product OAK_Dsp_macuu, // 101 Multiply Unsigned by Unsigned and Accumulate Previous Product OAK_Dsp_macsu, // 110 Multiply Signed by Unsigned and Accumulate Previous Product OAK_Dsp_maasu, // 111 Multiply Signed by Unsigned and Accumulate Aligned Previous Product //--- OAK_Dsp_mpyi, // Multiply Signed Short Immediate OAK_Dsp_msu, // Multiply and Subtract Previous Product OAK_Dsp_tstb, // Test Specific Bit OAK_Dsp_shfc, // Shift Accumulators according to Shift Value Register OAK_Dsp_shfi, // Shift Accumulators by an Immediate Shift Value OAK_Dsp_exp, // Evaluate the Exponent Value //--- OAK_Dsp_mov, // Move Data OAK_Dsp_movp, // Move from Program Memory into Data Memory OAK_Dsp_movs, // Move and Shift According to Shift Value Register OAK_Dsp_movsi, // Move and Shift According to an Immediate Shift Value OAK_Dsp_movr, // Move and Round OAK_Dsp_movd, // Move from Data Memory into Program Memory //--- OAK_Dsp_push, // Push Register or Long Immediate Value onto Stack OAK_Dsp_pop, // Pop from Stack into Register //--- OAK_Dsp_swap, // Swap aX- and bX-accumulators OAK_Dsp_banke, // Bank Exchange OAK_Dsp_rep, // Repeat Next Instruction OAK_Dsp_bkrep, // Block-Repeat OAK_Dsp_break, // Break from Block-repeat //--- OAK_Dsp_br, // Conditional Branch OAK_Dsp_brr, // Relative Conditional Branch OAK_Dsp_br_u, // UnConditional Branch OAK_Dsp_brr_u, // Relative UnConditional Branch OAK_Dsp_call, // Conditional Call Subroutine OAK_Dsp_callr, // Relative Conditional Call Subroutine OAK_Dsp_calla, // Call Subroutine at Location Specified by Accumulator //--- OAK_Dsp_ret, // Return Conditionally OAK_Dsp_ret_u, // Return UnConditionally OAK_Dsp_retd, // Delayed Return OAK_Dsp_reti, // Return from Interrupt Conditionally OAK_Dsp_reti_u, // Return from Interrupt UnConditionally OAK_Dsp_retid, // Delayed Return from Interrupt OAK_Dsp_rets, // Return with Short Immediate Parameter //--- OAK_Dsp_cntx, // Context Switching Store or Restore OAK_Dsp_nop, // No operation OAK_Dsp_modr, // Modify rN OAK_Dsp_dint, // Disable Interrupt OAK_Dsp_eint, // Enable Interrupt //--- OAK_Dsp_trap, // Software Interrupt //--- OAK_Dsp_lpg, // Load the Page Bits OAK_Dsp_load, // Load Specific Fields into Registers OAK_Dsp_mov_eu, // Move Data, eu OAK_Dsp_last, }; /* * TLCS900 processor module for IDA. * Copyright (c) 1998-2006 Konstantin Norvatoff, * Freeware. */ // List of instructions // enum { T900_null = 0, // Unknown Operation T900_ld, T900_ldw, T900_push, T900_pushw, T900_pop, T900_popw, T900_lda, T900_ldar, T900_ex, T900_mirr, T900_ldi, T900_ldiw, T900_ldir, T900_ldirw, T900_ldd, T900_lddw, T900_lddr, T900_lddrw, T900_cpi, T900_cpir, T900_cpd, T900_cpdr, T900_add, T900_addw, T900_adc, T900_adcw, T900_sub, T900_subw, T900_sbc, T900_sbcw, T900_cp, T900_cpw, T900_inc, T900_incw, T900_dec, T900_decw, T900_neg, T900_extz, T900_exts, T900_daa, T900_paa, T900_cpl, T900_mul, T900_muls, T900_div, T900_divs, T900_mula, T900_minc1, T900_minc2, T900_minc4, T900_mdec1, T900_mdec2, T900_mdec4, T900_and, T900_andw, T900_or, T900_orw, T900_xor, T900_xorw, T900_ldcf, T900_stcf, T900_andcf, T900_orcf, T900_xorcf, T900_rcf, T900_scf, T900_ccf, T900_zcf, T900_bit, T900_res, T900_set, T900_chg, T900_tset, T900_bs1f, T900_bs1b, T900_nop, T900_ei, T900_di, T900_swi, T900_halt, T900_ldc, T900_ldx, T900_link, T900_unlk, T900_ldf, T900_incf, T900_decf, T900_scc, T900_rlc, T900_rlc_mem, T900_rlcw_mem, T900_rrc, T900_rrc_mem, T900_rrcw_mem, T900_rl, T900_rl_mem, T900_rlw_mem, T900_rr, T900_rr_mem, T900_rrw_mem, T900_sla, T900_sla_mem, T900_slaw_mem, T900_sra, T900_sra_mem, T900_sraw_mem, T900_sll, T900_sll_mem, T900_sllw_mem, T900_srl, T900_srl_mem, T900_srlw_mem, T900_rld, T900_rrd, T900_jp, T900_jp_cond, T900_jr, T900_jr_cond, T900_jrl, T900_jrl_cond, T900_call, T900_calr, T900_djnz, T900_ret, T900_ret_cond, T900_retd, T900_reti, T900_max, T900_normal, T900_last }; /* * Rockwell C39 processor module for IDA. * Copyright (c) 2000-2006 Konstantin Norvatoff, * Freeware. */ // List of instructions // enum { C39_null = 0, // Unknown Operation C39_adc, C39_add, C39_anc, C39_and, C39_ane, C39_arr, C39_asl, C39_asr, C39_bar, C39_bas, C39_bbr, C39_bbs, C39_bcc, C39_bcs, C39_beq, C39_bit, C39_bmi, C39_bne, C39_bpl, C39_bra, C39_brk, C39_bvc, C39_bvs, C39_clc, C39_cld, C39_cli, C39_clv, C39_clw, C39_cmp, C39_cpx, C39_cpy, C39_dcp, C39_dec, C39_dex, C39_dey, C39_eor, C39_exc, C39_inc, C39_ini, C39_inx, C39_iny, C39_isb, C39_jmp, C39_jpi, C39_jsb, C39_jsr, C39_lab, C39_lae, C39_lai, C39_lan, C39_lax, C39_lda, C39_ldx, C39_ldy, C39_lii, C39_lsr, C39_lxa, C39_mpa, C39_mpy, C39_neg, C39_nop, C39_nxt, C39_ora, C39_pha, C39_phi, C39_php, C39_phw, C39_phx, C39_phy, C39_pia, C39_pla, C39_pli, C39_plp, C39_plw, C39_plx, C39_ply, C39_psh, C39_pul, C39_rba, C39_rla, C39_rmb, C39_rnd, C39_rol, C39_ror, C39_rra, C39_rti, C39_rts, C39_sax, C39_sba, C39_sbc, C39_sbx, C39_sec, C39_sed, C39_sei, C39_sha, C39_shs, C39_shx, C39_shy, C39_slo, C39_smb, C39_sre, C39_sta, C39_sti, C39_stx, C39_sty, C39_tax, C39_tay, C39_taw, C39_tip, C39_tsx, C39_twa, C39_txa, C39_txs, C39_tya, C39_last }; /* * National Semiconductor Corporation CR16 processor module for IDA. * Copyright (c) 2002-2006 Konstantin Norvatoff, * Freeware. */ // list of instructions enum { CR16_null = 0, // Unknown Operation CR16_addb, CR16_addw, CR16_addub, CR16_adduw, CR16_addcb, CR16_addcw, CR16_andb, CR16_andw, CR16_ashub, CR16_ashuw, // !!! don't change sequence !!! CR16_beq, CR16_bne, CR16_bcs, CR16_bcc, CR16_bhi, CR16_bls, CR16_bgt, CR16_ble, CR16_bfs, CR16_bfc, CR16_blo, CR16_bhs, CR16_blt, CR16_bge, CR16_br, //---------------------------- CR16_bal, CR16_cmpb, CR16_cmpw, CR16_beq1b, CR16_beq1w, CR16_beq0b, CR16_beq0w, CR16_bne1b, CR16_bne1w, CR16_bne0b, CR16_bne0w, CR16_di, CR16_ei, CR16_excp, // !!! don't change sequence !!! CR16_jeq, CR16_jne, CR16_jcs, CR16_jcc, CR16_jhi, CR16_jls, CR16_jgt, CR16_jle, CR16_jfs, CR16_jfc, CR16_jlo, CR16_jhs, CR16_jlt, CR16_jge, CR16_jump, //---------------------------- CR16_jal, CR16_loadb, CR16_loadw, CR16_loadm, CR16_lpr, CR16_lshb, CR16_lshw, CR16_movb, CR16_movw, CR16_movxb, CR16_movzb, CR16_movd, CR16_mulb, CR16_mulw, CR16_mulsb, CR16_mulsw, CR16_muluw, CR16_nop, CR16_orb, CR16_orw, CR16_push, CR16_pop, CR16_popret, CR16_retx, // !!! don't change sequence !!! CR16_seq, CR16_sne, CR16_scs, CR16_scc, CR16_shi, CR16_sls, CR16_sgt, CR16_sle, CR16_sfs, CR16_sfc, CR16_slo, CR16_shs, CR16_slt, CR16_sge, //---------------------------- CR16_spr, CR16_storb, CR16_storw, CR16_storm, CR16_subb, CR16_subw, CR16_subcb, CR16_subcw, CR16_tbit, CR16_tbitb, CR16_tbitw, CR16_sbitb, CR16_sbitw, CR16_cbitb, CR16_cbitw, CR16_wait, CR16_eiwait, CR16_xorb, CR16_xorw, CR16_last }; /* * Panasonic MN102 (PanaXSeries) processor module for IDA. * Copyright (c) 2000-2006 Konstantin Norvatoff, * Freeware. */ // List of instructions enum { mn102_null = 0, // Unknown Operation mn102_add, mn102_addc, mn102_addnf, mn102_and, mn102_asr, mn102_bcc, mn102_bccx, mn102_bclr, mn102_bcs, mn102_bcsx, mn102_beq, mn102_beqx, mn102_bge, mn102_bgex, mn102_bgt, mn102_bgtx, mn102_bhi, mn102_bhix, mn102_ble, mn102_blex, mn102_bls, mn102_blsx, mn102_blt, mn102_bltx, mn102_bnc, mn102_bncx, mn102_bne, mn102_bnex, mn102_bns, mn102_bnsx, mn102_bra, mn102_bset, mn102_btst, mn102_bvc, mn102_bvcx, mn102_bvs, mn102_bvsx, mn102_cmp, mn102_divu, mn102_ext, mn102_extx, mn102_extxb, mn102_extxbu, mn102_extxu, mn102_jmp, mn102_jsr, mn102_lsr, mn102_mov, mn102_movb, mn102_movbu, mn102_movx, mn102_mul, mn102_mulq, mn102_mulqh, mn102_mulql, mn102_mulu, mn102_nop, mn102_not, mn102_or, mn102_pxst, mn102_rol, mn102_ror, mn102_rti, mn102_rts, mn102_sub, mn102_subc, mn102_tbnz, mn102_tbz, mn102_xor, mn102_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * PowerPC - RISC with very complex instructions */ enum { PPC_null = 0, // Unknown Operation PPC_add, // Add PPC_addc, // Add Carrying PPC_adde, // Add Extended PPC_addi, // Add Immediate PPC_addic, // Add Immediate Carrying PPC_addis, // Add Immediate Shifted PPC_addme, // Add to Minus One Extended PPC_addze, // Add to Zero Extended PPC_and, // AND PPC_andc, // AND with Complement PPC_andi, // AND Immediate PPC_andis, // AND Immediate Shifted PPC_b, // Branch PPC_bc, // Branch Conditional PPC_bcctr, // Branch Conditional to Count Register PPC_bclr, // Branch Conditional to Link Register PPC_cmp, // Compare PPC_cmpi, // Compare Immediate PPC_cmpl, // Compare Logical PPC_cmpli, // Compare Logical Immediate PPC_cntlzd, // Count Leading Zeros Double Word PPC_cntlzw, // Count Leading Zeros Word PPC_crand, // Condition Register AND PPC_crandc, // Condition Register AND with Complement PPC_creqv, // Condition Register Equivalent PPC_crnand, // Condition Register NAND PPC_crnor, // Condition Register NOR PPC_cror, // Condiiton Register OR PPC_crorc, // Condition Register OR with Comlement PPC_crxor, // Condition Register XOR PPC_dcba, // PPC_dcbf, // Data Cache Block Flush PPC_dcbi, // Data Cache Block Invalidate PPC_dcbst, // Data Cache Block Store PPC_dcbt, // Data Cache Block Touch PPC_dcbtst, // Data Cache Block Touch for Store PPC_dcbz, // Data Cache Block Set to Zero PPC_divd, // Divide Double Word PPC_divdu, // Divide Double Word Unsigned PPC_divw, // Divide Word PPC_divwu, // Divide Word Unsigned PPC_eciwx, // External Control In Word Indexed PPC_ecowx, // External Control Out Word Indexed PPC_eieio, // Enforce In-Order Execution of I/O PPC_eqv, // Equivalent PPC_extsb, // Extend Sign Byte PPC_extsh, // Extend Sign Half Word PPC_extsw, // Extend Sign Word PPC_fabs, // Floating-Point Absolute Value PPC_fadd, // Floating-Point Add PPC_fadds, // Floating-Point Add (Single-Precision) PPC_fcfid, // Floating-Point Convert from Integer Double Word PPC_fcmpo, // Floating-Point Compare Ordered PPC_fcmpu, // Floating-Point Compare Unordered PPC_fctid, // Floating-Point Convert to Integer Double Word PPC_fctidz, // Floating-Point Convert to Integer Double Word with Round toward Zero PPC_fctiw, // Floating-Point Convert to Integer Word PPC_fctiwz, // Floating-Point Convert to Integer Word with Round toward Zero PPC_fdiv, // Floating-Point Divide PPC_fdivs, // Floating-Point Divide Single-Precision PPC_fmadd, // Floating-Point Multiply-Add PPC_fmadds, // Floating-Point Multiply-Add Single-Precision PPC_fmr, // Floating-Point Move Register PPC_fmsub, // Floating-Point Multiply-Subtract PPC_fmsubs, // Floating-Point Multiply-Subtract (Single-Precision) PPC_fmul, // Floating-Point Multiply PPC_fmuls, // Floating-Point Multiply Single-Precision PPC_fnabs, // Floating-Point Negative Absolute Value PPC_fneg, // Floating-Point Negate PPC_fnmadd, // Floating-Point Negative Multiply-Add PPC_fnmadds, // Floating-Point Negative Multiply-Add Single-Precision PPC_fnmsub, // Floating-Point Negative Multiply-Subtract PPC_fnmsubs, // Floating-Point Negative Multiply-Subtract Single-Precision PPC_fres, // Floating-Point Reciprocal Estimate Single-Precision PPC_frsp, // Floating-Point Round to Single-Precision PPC_frsqrte, // Floating-Point Reciprocal Square Root Estimate PPC_fsel, // Floating-Point Select PPC_fsqrt, // Floating-Point Square Root PPC_fsqrts, // Floating-Point Square Root Single-Precision PPC_fsub, // Floating-Point Subtract PPC_fsubs, // Floating-Point Subtract Single-Precision PPC_icbi, // Instruction Cache Block Invalidate PPC_isync, // Instruction Synchronize PPC_lbz, // Load Byte and Zero PPC_lbzu, // Load Byte and Zero with Update PPC_lbzux, // Load Byte and Zero with Update Indexed PPC_lbzx, // Load Byte and Zero Indexed PPC_ld, // Load Double Word PPC_ldarx, // Load Double Word and Reserve Indexed PPC_ldu, // Load Double Word with Update PPC_ldux, // Load Double Word with Update Indexed PPC_ldx, // Load Double Word Indexed PPC_lfd, // Load Floating-Point Double-Precision PPC_lfdu, // Load Floating-Point Double-Precision with Update PPC_lfdux, // Load Floating-Point Double-Precision with Update Indexed PPC_lfdx, // Load Floating-Point Double-Precision Indexed PPC_lfs, // Load Floating-Point Single-Precision PPC_lfsu, // Load Floating-Point Single-Precision with Update PPC_lfsux, // Load Floating-Point Single-Precision with Update Indexed PPC_lfsx, // Load Floating-Point Single-Precision Indexed PPC_lha, // Load Half Word Algebraic PPC_lhau, // Load Half Word Algebraic with Update PPC_lhaux, // Load Half Word Algebraic with Update Indexed PPC_lhax, // Load Half Word Algebraic Indexed PPC_lhbrx, // Load Half Word Byte-reverse Indexed PPC_lhz, // Load Half Word and Zero PPC_lhzu, // Load Half Word and Zero with Update PPC_lhzux, // Load Half Word and Zero with Update Indexed PPC_lhzx, // Load Half Word and Zero Indexed PPC_lmw, // Load Multiple Word PPC_lswi, // Load String Word Immediate PPC_lswx, // Load String Word Indexed PPC_lwa, // Load Word Algebraic PPC_lwarx, // Load Word and Reserve Indexed PPC_lwaux, // Load Word Algebraic with Update Indexed PPC_lwax, // Load Word Algebraic Indexed PPC_lwbrx, // Load Word Byte-Reverse Indexed PPC_lwz, // Load Word and Zero PPC_lwzu, // Load Word and Zero with Update PPC_lwzux, // Load Word and Zero with Update Indexed PPC_lwzx, // Load Word and Zero Indexed PPC_mcrf, // Move Condition register Field PPC_mcrfs, // Move to Condition Register from FPSCR PPC_mcrxr, // Move to Condition Register from XER PPC_mfcr, // Move from Condition Register PPC_mffs, // Move from FPSCR PPC_mfmsr, // Move from Machine State Register PPC_mfspr, // Move from Special Purpose Register PPC_mfsr, // Move from Segment Register PPC_mfsrin, // Move from Segment Register Indexed PPC_mftb, // Move from Time Base PPC_mtcrf, // Move to Condition Register Fields PPC_mtfsb0, // Move to FPSCR Bit 0 PPC_mtfsb1, // Move to FPSCR Bit 1 PPC_mtfsf, // Move to FPSCR Fields PPC_mtfsfi, // Move to FPSCR Field Immediate PPC_mtmsr, // Move to Machine State Register PPC_mtmsrd, // Move to Machine State Register Double Word PPC_mtspr, // Move to Special Purpose Register PPC_mtsr, // Move to Segment Register PPC_mtsrd, // Move to Segment Register Double Word PPC_mtsrdin, // Move to Segment Register Indirect Double PPC_mtsrin, // Move to Segment Register Indirect PPC_mulhd, // Multiply High Double Word PPC_mulhdu, // Multiply High Double Word Unsigned PPC_mulhw, // Multiply High Word PPC_mulhwu, // Multiply High Word Unsigned PPC_mulld, // Multiply Low Double Word PPC_mulli, // Multiply Low Immediate PPC_mullw, // Multiply Low PPC_nand, // NAND (not AND) PPC_neg, // Negate PPC_nor, // NOR (not OR) PPC_or, // OR PPC_orc, // OR with Complement PPC_ori, // OR Immediate PPC_oris, // OR Immediate Shifted PPC_rfi, // Return from Interrupt PPC_rfid, // Return from Interrupt Double Word PPC_rldcl, // Rotate Left Double Word then Clear Left PPC_rldcr, // Rotate Left Double Word then Clear Right PPC_rldic, // Rotate Left Double Word Immediate then Clear PPC_rldicl, // Rotate Left Double Word Immediate then Clear Left PPC_rldicr, // Rotate Left Double Word Immediate then Clear Right PPC_rldimi, // Rotate Left Double Word Immediate then Mask Insert PPC_rlwimi, // Rotate Left Word Immediate then Mask Insert PPC_rlwinm, // Rotate Left Word Immediate then AND with Mask PPC_rlwnm, // Rotate Left Word then AND with Mask PPC_sc, // System Call PPC_slbia, // SLB Invalidate All, ISA 3.0 format PPC_slbie, // SLB Invalidate Entry PPC_sld, // Shift Left Double Word PPC_slw, // Shift Left Word PPC_srad, // Shift Right Algebraic Double Word PPC_sradi, // Shift Right Algebraic Double Word Immediate PPC_sraw, // Shift Right Algebraic Word PPC_srawi, // Shift Right Algebraic Word Immediate PPC_srd, // Shift Right Double Word PPC_srw, // Shift Right Word PPC_stb, // Store Byte PPC_stbu, // Store Byte with Update PPC_stbux, // Store Byte with Update Indexed PPC_stbx, // Store Byte Indexed PPC_std, // Store Double Word PPC_stdcx, // Store Double Word Conditional Indexed PPC_stdu, // Store Double Word with Update PPC_stdux, // Store Double Word with Update Indexed PPC_stdx, // Store Double Word Indexed PPC_stfd, // Store Floating-Point Double-Precision PPC_stfdu, // Store Floating-Point Double-Precision wiht Update PPC_stfdux, // Store Floating-Point Double-Precision wiht Update Indexed PPC_stfdx, // Store Floating-Point Double-Precision Indexed PPC_stfiwx, // Store Floating-Point as Integer Word Indexed PPC_stfs, // Store Floating-Point Single-Precision PPC_stfsu, // Store Floating-Point Single-Precision with Update PPC_stfsux, // Store Floating-Point Single-Precision with Update Indexed PPC_stfsx, // Store Floating-Point Single-Precision Indexed PPC_sth, // Store Half Word PPC_sthbrx, // Store Half Word Byte-Reverse Indexed PPC_sthu, // Store Half Word with Update PPC_sthux, // Store Half Word with Update Indexed PPC_sthx, // Store Half Word Indexed PPC_stmw, // Store Multiple Word PPC_stswi, // Store String Word Immediate PPC_stswx, // Store String Word Indexed PPC_stw, // Store Word PPC_stwbrx, // Store Word Byte-Reverse Indexed PPC_stwcx, // Store Word Conditional Indexed PPC_stwu, // Store Word with Update PPC_stwux, // Store Word with Update Indexed PPC_stwx, // Store Word Indexed PPC_subf, // Subtract from PPC_subfc, // Subtract from Carrying PPC_subfe, // Subtract from Extended PPC_subfic, // Subtract from Immediate Carrying PPC_subfme, // Subtract from Minus One Extended PPC_subfze, // Subtract from Zero Extended PPC_sync, // Synchronize PPC_td, // Trap Double Word PPC_tdi, // Trap Double Word Immediate PPC_tlbia, // TLB Invalidate All PPC_tlbie, // TLB Invalidate Entry, ISA 3.0 format PPC_tlbsync, // TLB Synchronize PPC_tw, // Trap Word PPC_twi, // Trap Word Immediate PPC_xor, // XOR PPC_xori, // XOR Immediate PPC_xoris, // XOR Immediate Shifted PPC_last_basic = PPC_xoris, // // Simplified mnemonics // PPC_cmpwi, // Compare Word Immediate PPC_cmpw, // Compare Word PPC_cmplwi, // Compare Logical Word Immediate PPC_cmplw, // Compare Logical Word PPC_cmpdi, // Compare Double Word Immediate PPC_cmpd, // Compare Double Word PPC_cmpldi, // Compare Logical Double Word Immediate PPC_cmpld, // Compare Logical Double Word PPC_trap, // Trap Word Unconditionally // "trapd" seems like a bug; no such mnemonic appears to exist as just plain // "trap" is used regardless of word/doubleword, but we have to leave it here // to not mess up existing databases PPC_trapd, // Trap Double Word Unconditionally PPC_twlgt, // Trap Word if Logically Greater Than PPC_twllt, // Trap Word if Logically Less Than PPC_tweq, // Trap Word if Equal PPC_twlge, // Trap Word if Logically Greater Than or Equal PPC_twlle, // Trap Word if Logically Less Than or Equal PPC_twgt, // Trap Word if Greater Than PPC_twge, // Trap Word if Greater Than or Equal PPC_twlt, // Trap Word if Less Than PPC_twle, // Trap Word if Less Than or Equal PPC_twne, // Trap Word if Not Equal PPC_twlgti, // Trap Word Immediate if Logically Greater Than PPC_twllti, // Trap Word Immediate if Logically Less Than PPC_tweqi, // Trap Word Immediate if Equal PPC_twlgei, // Trap Word Immediate if Logically Greater Than or Equal PPC_twllei, // Trap Word Immediate if Logically Less Than or Equal PPC_twgti, // Trap Word Immediate if Greater Than PPC_twgei, // Trap Word Immediate if Greater Than or Equal PPC_twlti, // Trap Word Immediate if Less Than PPC_twlei, // Trap Word Immediate if Less Than or Equal PPC_twnei, // Trap Word Immediate if Not Equal PPC_tdlgt, // Trap Double Word if Logically Greater Than PPC_tdllt, // Trap Double Word if Logically Less Than PPC_tdeq, // Trap Double Word if Equal PPC_tdlge, // Trap Double Word if Logically Greater Than or Equal PPC_tdlle, // Trap Double Word if Logically Less Than or Equal PPC_tdgt, // Trap Double Word if Greater Than PPC_tdge, // Trap Double Word if Greater Than or Equal PPC_tdlt, // Trap Double Word if Less Than PPC_tdle, // Trap Double Word if Less Than or Equal PPC_tdne, // Trap Double Word if Not Equal PPC_tdlgti, // Trap Double Word Immediate if Logically Greater Than PPC_tdllti, // Trap Double Word Immediate if Logically Less Than PPC_tdeqi, // Trap Double Word Immediate if Equal PPC_tdlgei, // Trap Double Word Immediate if Logically Greater Than or Equal PPC_tdllei, // Trap Double Word Immediate if Logically Less Than or Equal PPC_tdgti, // Trap Double Word Immediate if Greater Than PPC_tdgei, // Trap Double Word Immediate if Greater Than or Equal PPC_tdlti, // Trap Double Word Immediate if Less Than PPC_tdlei, // Trap Double Word Immediate if Less Than or Equal PPC_tdnei, // Trap Double Word Immediate if Not Equal // all trap mnemonics are covered as of Power ISA 2.07; t[dw]nl*, t[dw]lnl*, // and t[dw]lng* are intentionally missing since they are redundant. in other // words, the assembler supports (e.g.) both "logically less than or equal" // (tdlei) in addition to "logically not greater than" (tdlngi)--a disassembler // need not support both PPC_nop, // No Operation PPC_not, // Complement Register PPC_mr, // Move Register PPC_subi, // Subtract Immediate PPC_subic, // Subtract Immediate Carrying PPC_subis, // Subtract Immediate Shifted PPC_li, // Load Immediate PPC_lis, // Load Immediate Shifted PPC_crset, // Condition Register Set PPC_crnot, // Condition Register NOT PPC_crmove, // Condition Register Move PPC_crclr, // Condition Register Clear PPC_mtxer, // Move to integer unit exception register PPC_mtlr, // Move to link register PPC_mtctr, // Move to count register PPC_mtdsisr, // Move to DAE/source instruction service register PPC_mtdar, // Move to data address register PPC_mtdec, // Move to decrementer register PPC_mtsrr0, // Move to status save/restore register 0 PPC_mtsrr1, // Move to status save/restore register 1 PPC_mtsprg0, // Move to general special purpose register 0 PPC_mtsprg1, // Move to general special purpose register 1 PPC_mtsprg2, // Move to general special purpose register 2 PPC_mtsprg3, // Move to general special purpose register 3 PPC_mttbl, // Move to time base register (lower) PPC_mttbu, // Move to time base register (upper) PPC_mfxer, // Move from integer unit exception register PPC_mflr, // Move from link register PPC_mfctr, // Move from count register PPC_mfdsisr, // Move from DAE/source instruction service register PPC_mfdar, // Move from data address register PPC_mfdec, // Move from decrementer register PPC_mfsrr0, // Move from status save/restore register 0 PPC_mfsrr1, // Move from status save/restore register 1 PPC_mfsprg0, // Move from general special purpose register 0 PPC_mfsprg1, // Move from general special purpose register 1 PPC_mfsprg2, // Move from general special purpose register 2 PPC_mfsprg3, // Move from general special purpose register 3 PPC_mftbl, // Move from time base register (lower) PPC_mftbu, // Move from time base register (upper) PPC_mfpvr, // Move from processor version register // suffixes: // lr - goto lr // ctr - goto ctr // l - update lr // a - absolute // branch forms not listed here or elsewhere in the file (e.g. bltlr) are // being handled by emitting extra characters when printing the instructions // instead of having separate enums PPC_balways, // Branch unconditionally PPC_bt, // Branch if true PPC_bf, // Branch if false PPC_bdnz, // CTR--; branch if CTR non-zero PPC_bdnzt, // CTR--; branch if CTR non-zero and condition is true PPC_bdnzf, // CTR--; branch if CTR non-zero and condition is false PPC_bdz, // CTR--; branch if CTR zero PPC_bdzt, // CTR--; branch if CTR zero and condition is true PPC_bdzf, // CTR--; branch if CTR zero and condition is false PPC_blt, // Branch if less than PPC_ble, // Branch if less than or equal PPC_beq, // Branch if equal PPC_bge, // Branch if greater than or equal PPC_bgt, // Branch if greater than PPC_bne, // Branch if not equal PPC_bso, // Branch if summary overflow PPC_bns, // Branch if not summary overflow // bun and bnu are intentionally missing from this list; they are handled by // bso/bns (this is the result of historical differences between POWER and PPC // mnemonics) PPC_extlwi, // Extract and Left Justify Immediate PPC_extrwi, // Extract and Right Justify Immediate PPC_inslwi, // Insert from Left Immediate PPC_insrwi, // Insert from Right Immediate PPC_rotlwi, // Rotate Left Immediate PPC_rotrwi, // Rotate Right Immediate PPC_rotlw, // Rotate Left PPC_slwi, // Shift Left Immediate PPC_srwi, // Shift Right Immediate PPC_clrlwi, // Clear Left Immediate PPC_clrrwi, // Clear Right Immediate PPC_clrlslwi, // Clear Left and Shift Left Immediate // // PowerPC Embedded Controller Instructions // PPC_dccci, // Data cache congruence class invalidate (p.438-439) PPC_dcread, // Data cache read (p.440-441) PPC_icbt, // Instruction cache block touch (p.450-451) PPC_iccci, // Instruction cache congruence class invalidate (p.452-453) PPC_icread, // Instruction cache read (p.454-455) PPC_mfdcr, // Move from device control register (p.484-485) PPC_mtdcr, // Move to device control register (p.491-492) PPC_rfci, // Return from critical interrupt (p.507) PPC_tlbre, // TLB read entry (p.548-549) PPC_tlbsx, // TLB search indexed (p.550) PPC_tlbwe, // TLB write entry (p.552-553) PPC_wrtee, // Write external enable (p.560) PPC_wrteei, // Write external enable immediate (p.561) // // New PowerPC instructions // PPC_abs, // Absolute PPC_clcs, // Cache Lines Compute Size PPC_clf, // Cache Line Flush PPC_cli, // Cache Line Invalidate PPC_dclst, // Data Cache Line Store PPC_div, // Divide PPC_divs, // Divide Short PPC_doz, // Different Or Zero PPC_dozi, // Different Or Zero Immediate PPC_frsqrtes, // Floating Reciprocal Square Root Estimate Single PPC_hrfid, // Hypervisor Return from Interrupt Doubleword PPC_lscbx, // Load String And Compare Byte Indexed PPC_maskg, // Mask Generate PPC_maskir, // Mask Insert From Register PPC_mfsri, // Move From Segment Register Indirect PPC_mul, // Multiply PPC_nabs, // Negative Absolute PPC_popcntb, // Population Count Bytes PPC_rac, // Real Address Compute PPC_rfsvc, // Return From SVC, obsolete, see ana.cpp PPC_rlmi, // Rotate Left Then Mask Insert PPC_rrib, // Rotate Right And Insert Bit PPC_slbmfee, // SLB Move From Entry ESID PPC_slbmfev, // SLB Move From Entry VSID PPC_slbmte, // SLB Move To Entry PPC_sle, // Shift Left Extended PPC_sleq, // Shift Left Extended With MQ PPC_sliq, // Shift Left Immediate With MQ PPC_slliq, // Shift Left Long Immediate With MQ PPC_sllq, // Shift Left Long With MQ PPC_slq, // Shift Left With MQ PPC_sraiq, // Shift Right Algebraic Immediate With MQ PPC_sraq, // Shift Right Algebraic With MQ PPC_sre, // Shift Right Extended PPC_srea, // Shift Right Extended Algebraic PPC_sreq, // Shift Right Extended With MQ PPC_sriq, // Shift Right Immediate With MQ PPC_srliq, // Shift Right Long Immediate With MQ PPC_srlq, // Shift Right Long With MQ PPC_srq, // Shift Right With MQ // New instructions PPC_mtocrf, // Move To One Condition Register Field PPC_mfocrf, // Move From One Condition Register Field // Freescale e200z6 instructions PPC_isel, // Integer Select PPC_isellt, // Integer Select Less Than PPC_iselgt, // Integer Select Greater Than PPC_iseleq, // Integer Select Equal PPC_dcblc, // Data Cache Block Lock Clear PPC_dcbtls, // Data Cache Block Touch and Lock Set PPC_dcbtstls, // Data Cache Block Touch for Store and Lock Set PPC_icblc, // Instruction Cache Block Lock Clear PPC_icbtls, // Instruction Cache Block Touch and Lock Set PPC_tlbivax, // TLB Invalidate Virtual Address Indexed PPC_rfdi, // Return from Debug Interrupt // Freescale MPC603e instructions (G2 core) PPC_tlbld, // Load Data TLB Entry PPC_tlbli, // Load Instruction TLB Entry // SPE (Signal Processing Engine) instructions PPC_brinc, // Bit Reversed Increment PPC_evabs, // Vector Absolute Value PPC_evaddiw, // Vector Add Immediate Word PPC_evaddsmiaaw, // Vector Add Signed, Modulo, Integer to Accumulator Word PPC_evaddssiaaw, // Vector Add Signed, Saturate, Integer to Accumulator Word PPC_evaddumiaaw, // Vector Add Unsigned, Modulo, Integer to Accumulator Word PPC_evaddusiaaw, // Vector Add Unsigned, Saturate, Integer to Accumulator Word PPC_evaddw, // Vector Add Word PPC_evand, // Vector AND PPC_evandc, // Vector AND with Complement PPC_evcmpeq, // Vector Compare Equal PPC_evcmpgts, // Vector Compare Greater Than Signed PPC_evcmpgtu, // Vector Compare Greater Than Unsigned PPC_evcmplts, // Vector Compare Less Than Signed PPC_evcmpltu, // Vector Compare Less Than Unsigned PPC_evcntlsw, // Vector Count Leading Signed Bits Word PPC_evcntlzw, // Vector Count Leading Zeros Word PPC_evdivws, // Vector Divide Word Signed PPC_evdivwu, // Vector Divide Word Unsigned PPC_eveqv, // Vector Equivalent PPC_evextsb, // Vector Extend Sign Byte PPC_evextsh, // Vector Extend Sign Halfword PPC_evldd, // Vector Load Double Word into Double Word PPC_evlddx, // Vector Load Double Word into Double Word Indexed PPC_evldh, // Vector Load Double into Four Halfwords PPC_evldhx, // Vector Load Double into Four Halfwords Indexed PPC_evldw, // Vector Load Double into Two Words PPC_evldwx, // Vector Load Double into Two Words Indexed PPC_evlhhesplat, // Vector Load Halfword into Halfwords Even and Splat PPC_evlhhesplatx, // Vector Load Halfword into Halfwords Even and Splat Indexed PPC_evlhhossplat, // Vector Load Halfword into Halfword Odd Signed and Splat PPC_evlhhossplatx, // Vector Load Halfword into Halfword Odd Signed and Splat Indexed PPC_evlhhousplat, // Vector Load Halfword into Halfword Odd Unsigned and Splat PPC_evlhhousplatx, // Vector Load Halfword into Halfword Odd Unsigned and Splat Indexed PPC_evlwhe, // Vector Load Word into Two Halfwords Even PPC_evlwhex, // Vector Load Word into Two Halfwords Even Indexed PPC_evlwhos, // Vector Load Word into Two Halfwords Odd Signed (with sign extension) PPC_evlwhosx, // Vector Load Word into Two Halfwords Odd Signed Indexed (with sign extension) PPC_evlwhou, // Vector Load Word into Two Halfwords Odd Unsigned (zero-extended) PPC_evlwhoux, // Vector Load Word into Two Halfwords Odd Unsigned Indexed (zero-extended) PPC_evlwhsplat, // Vector Load Word into Two Halfwords and Splat PPC_evlwhsplatx, // Vector Load Word into Two Halfwords and Splat Indexed PPC_evlwwsplat, // Vector Load Word into Word and Splat PPC_evlwwsplatx, // Vector Load Word into Word and Splat Indexed PPC_evmergehi, // Vector Merge High PPC_evmergehilo, // Vector Merge High/Low PPC_evmergelo, // Vector Merge Low PPC_evmergelohi, // Vector Merge Low/High PPC_evmhegsmfaa, // Vector Multiply Halfwords, Even, Guarded, Signed, Modulo, Fractional and Accumulate PPC_evmhegsmfan, // Vector Multiply Halfwords, Even, Guarded, Signed, Modulo, Fractional and Accumulate Negative PPC_evmhegsmiaa, // Vector Multiply Halfwords, Even, Guarded, Signed, Modulo, Integer and Accumulate PPC_evmhegsmian, // Vector Multiply Halfwords, Even, Guarded, Signed, Modulo, Integer and Accumulate Negative PPC_evmhegumiaa, // Vector Multiply Halfwords, Even, Guarded, Unsigned, Modulo, Integer and Accumulate PPC_evmhegumian, // Vector Multiply Halfwords, Even, Guarded, Unsigned, Modulo, Integer and Accumulate Negative PPC_evmhesmf, // Vector Multiply Halfwords, Even, Signed, Modulo, Fractional PPC_evmhesmfa, // Vector Multiply Halfwords, Even, Signed, Modulo, Fractional to Accumulator PPC_evmhesmfaaw, // Vector Multiply Halfwords, Even, Signed, Modulo, Fractional and Accumulate into Words PPC_evmhesmfanw, // Vector Multiply Halfwords, Even, Signed, Modulo, Fractional and Accumulate Negative into Words PPC_evmhesmi, // Vector Multiply Halfwords, Even, Signed, Modulo, Integer PPC_evmhesmia, // Vector Multiply Halfwords, Even, Signed, Modulo, Integer to Accumulator PPC_evmhesmiaaw, // Vector Multiply Halfwords, Even, Signed, Modulo, Integer and Accumulate into Words PPC_evmhesmianw, // Vector Multiply Halfwords, Even, Signed, Modulo, Integer and Accumulate Negative into Words PPC_evmhessf, // Vector Multiply Halfwords, Even, Signed, Saturate, Fractional PPC_evmhessfa, // Vector Multiply Halfwords, Even, Signed, Saturate, Fractional to Accumulator PPC_evmhessfaaw, // Vector Multiply Halfwords, Even, Signed, Saturate, Fractional and Accumulate into Words PPC_evmhessfanw, // Vector Multiply Halfwords, Even, Signed, Saturate, Fractional and Accumulate Negative into Words PPC_evmhessiaaw, // Vector Multiply Halfwords, Even, Signed, Saturate, Integer and Accumulate into Words PPC_evmhessianw, // Vector Multiply Halfwords, Even, Signed, Saturate, Integer and Accumulate Negative into Words PPC_evmheumi, // Vector Multiply Halfwords, Even, Unsigned, Modulo, Integer PPC_evmheumia, // Vector Multiply Halfwords, Even, Unsigned, Modulo, Integer to Accumulator PPC_evmheumiaaw, // Vector Multiply Halfwords, Even, Unsigned, Modulo, Integer and Accumulate into Words PPC_evmheumianw, // Vector Multiply Halfwords, Even, Unsigned, Modulo, Integer and Accumulate Negative into Words PPC_evmheusiaaw, // Vector Multiply Halfwords, Even, Unsigned, Saturate, Integer and Accumulate into Words PPC_evmheusianw, // Vector Multiply Halfwords, Even, Unsigned, Saturate, Integer and Accumulate Negative into Words PPC_evmhogsmfaa, // Vector Multiply Halfwords, Odd, Guarded, Signed, Modulo, Fractional and Accumulate PPC_evmhogsmfan, // Vector Multiply Halfwords, Odd, Guarded, Signed, Modulo, Fractional and Accumulate Negative PPC_evmhogsmiaa, // Vector Multiply Halfwords, Odd, Guarded, Signed, Modulo, Integer and Accumulate PPC_evmhogsmian, // Vector Multiply Halfwords, Odd, Guarded, Signed, Modulo, Integer and Accumulate Negative PPC_evmhogumiaa, // Vector Multiply Halfwords, Odd, Guarded, Unsigned, Modulo, Integer and Accumulate PPC_evmhogumian, // Vector Multiply Halfwords, Odd, Guarded, Unsigned, Modulo, Integer and Accumulate Negative PPC_evmhosmf, // Vector Multiply Halfwords, Odd, Signed, Modulo, Fractional PPC_evmhosmfa, // Vector Multiply Halfwords, Odd, Signed, Modulo, Fractional to Accumulator PPC_evmhosmfaaw, // Vector Multiply Halfwords, Odd, Signed, Modulo, Fractional and Accumulate into Words PPC_evmhosmfanw, // Vector Multiply Halfwords, Odd, Signed, Modulo, Fractional and Accumulate Negative into Words PPC_evmhosmi, // Vector Multiply Halfwords, Odd, Signed, Modulo, Integer PPC_evmhosmia, // Vector Multiply Halfwords, Odd, Signed, Modulo, Integer to Accumulator PPC_evmhosmiaaw, // Vector Multiply Halfwords, Odd, Signed, Modulo, Integer and Accumulate into Words PPC_evmhosmianw, // Vector Multiply Halfwords, Odd, Signed, Modulo, Integer and Accumulate Negative into Words PPC_evmhossf, // Vector Multiply Halfwords, Odd, Signed, Saturate, Fractional PPC_evmhossfa, // Vector Multiply Halfwords, Odd, Signed, Saturate, Fractional to Accumulator PPC_evmhossfaaw, // Vector Multiply Halfwords, Odd, Signed, Saturate, Fractional and Accumulate into Words PPC_evmhossfanw, // Vector Multiply Halfwords, Odd, Signed, Saturate, Fractional and Accumulate Negative into Words PPC_evmhossiaaw, // Vector Multiply Halfwords, Odd, Signed, Saturate, Integer and Accumulate into Words PPC_evmhossianw, // Vector Multiply Halfwords, Odd, Signed, Saturate, Integer and Accumulate Negative into Words PPC_evmhoumi, // Vector Multiply Halfwords, Odd, Unsigned, Modulo, Integer PPC_evmhoumia, // Vector Multiply Halfwords, Odd, Unsigned, Modulo, Integer to Accumulator PPC_evmhoumiaaw, // Vector Multiply Halfwords, Odd, Unsigned, Modulo, Integer and Accumulate into Words PPC_evmhoumianw, // Vector Multiply Halfwords, Odd, Unsigned, Modulo, Integer and Accumulate Negative into Words PPC_evmhousiaaw, // Vector Multiply Halfwords, Odd, Unsigned, Saturate, Integer and Accumulate into Words PPC_evmhousianw, // Vector Multiply Halfwords, Odd, Unsigned, Saturate, Integer and Accumulate Negative into Words PPC_evmra, // Initialize Accumulator PPC_evmwhsmf, // Vector Multiply Word High Signed, Modulo, Fractional PPC_evmwhsmfa, // Vector Multiply Word High Signed, Modulo, Fractional to Accumulator PPC_evmwhsmi, // Vector Multiply Word High Signed, Modulo, Integer PPC_evmwhsmia, // Vector Multiply Word High Signed, Modulo, Integer to Accumulator PPC_evmwhssf, // Vector Multiply Word High Signed, Saturate, Fractional PPC_evmwhssfa, // Vector Multiply Word High Signed, Saturate, Fractional to Accumulator PPC_evmwhumi, // Vector Multiply Word High Unsigned, Modulo, Integer PPC_evmwhumia, // Vector Multiply Word High Unsigned, Modulo, Integer to Accumulator PPC_evmwlsmiaaw, // Vector Multiply Word Low Signed, Modulo, Integer and Accumulate into Words PPC_evmwlsmianw, // Vector Multiply Word Low Signed, Modulo, Integer and Accumulate Negative in Words PPC_evmwlssiaaw, // Vector Multiply Word Low Signed, Saturate, Integer and Accumulate into Words PPC_evmwlssianw, // Vector Multiply Word Low Signed, Saturate, Integer and Accumulate Negative in Words PPC_evmwlumi, // Vector Multiply Word Low Unsigned, Modulo, Integer PPC_evmwlumia, // Vector Multiply Word Low Unsigned, Modulo, Integer to Accumulator PPC_evmwlumiaaw, // Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate into Words PPC_evmwlumianw, // Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate Negative in Words PPC_evmwlusiaaw, // Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate into Words PPC_evmwlusianw, // Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate Negative in Words PPC_evmwsmf, // Vector Multiply Word Signed, Modulo, Fractional PPC_evmwsmfa, // Vector Multiply Word Signed, Modulo, Fractional to Accumulator PPC_evmwsmfaa, // Vector Multiply Word Signed, Modulo, Fractional and Accumulate PPC_evmwsmfan, // Vector Multiply Word Signed, Modulo, Fractional and Accumulate Negative PPC_evmwsmi, // Vector Multiply Word Signed, Modulo, Integer PPC_evmwsmia, // Vector Multiply Word Signed, Modulo, Integer to Accumulator PPC_evmwsmiaa, // Vector Multiply Word Signed, Modulo, Integer and Accumulate PPC_evmwsmian, // Vector Multiply Word Signed, Modulo, Integer and Accumulate Negative PPC_evmwssf, // Vector Multiply Word Signed, Saturate, Fractional PPC_evmwssfa, // Vector Multiply Word Signed, Saturate, Fractional to Accumulator PPC_evmwssfaa, // Vector Multiply Word Signed, Saturate, Fractional and Accumulate PPC_evmwssfan, // Vector Multiply Word Signed, Saturate, Fractional and Accumulate Negative PPC_evmwumi, // Vector Multiply Word Unsigned, Modulo, Integer PPC_evmwumia, // Vector Multiply Word Unsigned, Modulo, Integer to Accumulator PPC_evmwumiaa, // Vector Multiply Word Unsigned, Modulo, Integer and Accumulate PPC_evmwumian, // Vector Multiply Word Unsigned, Modulo, Integer and Accumulate Negative PPC_evnand, // Vector NAND PPC_evneg, // Vector Negate PPC_evnor, // Vector NOR PPC_evor, // Vector OR PPC_evorc, // Vector OR with Complement Form PPC_evrlw, // Vector Rotate Left Word PPC_evrlwi, // Vector Rotate Left Word Immediate PPC_evrndw, // Vector Round Word PPC_evsel, // Vector Select PPC_evslw, // Vector Shift Left Word PPC_evslwi, // Vector Shift Left Word Immediate PPC_evsplatfi, // Vector Splat Fractional Immediate PPC_evsplati, // Vector Splat Immediate PPC_evsrwis, // Vector Shift Right Word Immediate Signed PPC_evsrwiu, // Vector Shift Right Word Immediate Unsigned PPC_evsrws, // Vector Shift Right Word Signed PPC_evsrwu, // Vector Shift Right Word Unsigned PPC_evstdd, // Vector Store Double of Double PPC_evstddx, // Vector Store Double of Double Indexed PPC_evstdh, // Vector Store Double of Four Halfwords PPC_evstdhx, // Vector Store Double of Four Halfwords Indexed PPC_evstdw, // Vector Store Double of Two Words PPC_evstdwx, // Vector Store Double of Two Words Indexed PPC_evstwhe, // Vector Store Word of Two Halfwords from Even PPC_evstwhex, // Vector Store Word of Two Halfwords from Even Indexed PPC_evstwho, // Vector Store Word of Two Halfwords from Odd PPC_evstwhox, // Vector Store Word of Two Halfwords from Odd Indexed PPC_evstwwe, // Vector Store Word of Word from Even PPC_evstwwex, // Vector Store Word of Word from Even Indexed PPC_evstwwo, // Vector Store Word of Word from Odd PPC_evstwwox, // Vector Store Word of Word from Odd Indexed PPC_evsubfsmiaaw, // Vector Subtract Signed, Modulo, Integer to Accumulator Word PPC_evsubfssiaaw, // Vector Subtract Signed, Saturate, Integer to Accumulator Word PPC_evsubfumiaaw, // Vector Subtract Unsigned, Modulo, Integer to Accumulator Word PPC_evsubfusiaaw, // Vector Subtract Unsigned, Saturate, Integer to Accumulator Word PPC_evsubfw, // Vector Subtract from Word PPC_evsubifw, // Vector Subtract Immediate from Word PPC_evxor, // Vector XOR // SPE.Embedded Float Scalar Double PPC_efdabs, // Floating-Point Double-Precision Absolute Value PPC_efdadd, // Floating-Point Double-Precision Add PPC_efdcfs, // Floating-Point Double-Precision Convert from Single-Precision PPC_efdcfsf, // Convert Floating-Point Double-Precision from Signed Fraction PPC_efdcfsi, // Convert Floating-Point Double-Precision from Signed Integer PPC_efdcfsid, // Convert Floating-Point Double-Precision from Signed Integer Doubleword PPC_efdcfuf, // Convert Floating-Point Double-Precision from Unsigned Fraction PPC_efdcfui, // Convert Floating-Point Double-Precision from Unsigned Integer PPC_efdcfuid, // Convert Floating-Point Double-Precision from Unsigned Integer Doubleword PPC_efdcmpeq, // Floating-Point Double-Precision Compare Equal PPC_efdcmpgt, // Floating-Point Double-Precision Compare Greater Than PPC_efdcmplt, // Floating-Point Double-Precision Compare Less Than PPC_efdctsf, // Convert Floating-Point Double-Precision to Signed Fraction PPC_efdctsi, // Convert Floating-Point Double-Precision to Signed Integer PPC_efdctsidz, // Convert Floating-Point Double-Precision to Signed Integer Doubleword with Round toward Zero PPC_efdctsiz, // Convert Floating-Point Double-Precision to Signed Integer with Round toward Zero PPC_efdctuf, // Convert Floating-Point Double-Precision to Unsigned Fraction PPC_efdctui, // Convert Floating-Point Double-Precision to Unsigned Integer PPC_efdctuidz, // Convert Floating-Point Double-Precision to Unsigned Integer Doubleword with Round toward Zero PPC_efdctuiz, // Convert Floating-Point Double-Precision to Unsigned Integer with Round toward Zero PPC_efddiv, // Floating-Point Double-Precision Divide PPC_efdmul, // Floating-Point Double-Precision Multiply PPC_efdnabs, // Floating-Point Double-Precision Negative Absolute Value PPC_efdneg, // Floating-Point Double-Precision Negate PPC_efdsub, // Floating-Point Double-Precision Subtract PPC_efdtsteq, // Floating-Point Double-Precision Test Equal PPC_efdtstgt, // Floating-Point Double-Precision Test Greater Than PPC_efdtstlt, // Floating-Point Double-Precision Test Less Than PPC_efscfd, // Floating-Point Single-Precision Convert from Double-Precision // SPE.Embedded Float Scalar Single PPC_efsabs, // Floating-Point Single-Precision Absolute Value PPC_efsadd, // Floating-Point Single-Precision Add PPC_efscfsf, // Convert Floating-Point Single-Precision from Signed Fraction PPC_efscfsi, // Convert Floating-Point Single-Precision from Signed Integer PPC_efscfuf, // Convert Floating-Point Single-Precision from Unsigned Fraction PPC_efscfui, // Convert Floating-Point Single-Precision from Unsigned Integer PPC_efscmpeq, // Floating-Point Single-Precision Compare Equal PPC_efscmpgt, // Floating-Point Single-Precision Compare Greater Than PPC_efscmplt, // Floating-Point Single-Precision Compare Less Than PPC_efsctsf, // Convert Floating-Point Single-Precision to Signed Fraction PPC_efsctsi, // Convert Floating-Point Single-Precision to Signed Integer PPC_efsctsiz, // Convert Floating-Point Single-Precision to Signed Integer with Round toward Zero PPC_efsctuf, // Convert Floating-Point Single-Precision to Unsigned Fraction PPC_efsctui, // Convert Floating-Point Single-Precision to Unsigned Integer PPC_efsctuiz, // Convert Floating-Point Single-Precision to Unsigned Integer with Round toward Zero PPC_efsdiv, // Floating-Point Single-Precision Divide PPC_efsmul, // Floating-Point Single-Precision Multiply PPC_efsnabs, // Floating-Point Single-Precision Negative Absolute Value PPC_efsneg, // Floating-Point Single-Precision Negate PPC_efssub, // Floating-Point Single-Precision Subtract PPC_efststeq, // Floating-Point Single-Precision Test Equal PPC_efststgt, // Floating-Point Single-Precision Test Greater Than PPC_efststlt, // Floating-Point Single-Precision Test Less Than // SPE.Embedded Float Vector PPC_evfsabs, // Vector Floating-Point Single-Precision Absolute Value PPC_evfsadd, // Vector Floating-Point Single-Precision Add PPC_evfscfsf, // Vector Convert Floating-Point Single-Precision from Signed Fraction PPC_evfscfsi, // Vector Convert Floating-Point Single-Precision from Signed Integer PPC_evfscfuf, // Vector Convert Floating-Point Single-Precision from Unsigned Fraction PPC_evfscfui, // Vector Convert Floating-Point Single-Precision from Unsigned Integer PPC_evfscmpeq, // Vector Floating-Point Single-Precision Compare Equal PPC_evfscmpgt, // Vector Floating-Point Single-Precision Compare Greater Than PPC_evfscmplt, // Vector Floating-Point Single-Precision Compare Less Than PPC_evfsctsf, // Vector Convert Floating-Point Single-Precision to Signed Fraction PPC_evfsctsi, // Vector Convert Floating-Point Single-Precision to Signed Integer PPC_evfsctsiz, // Vector Convert Floating-Point Single-Precision to Signed Integer with Round toward Zero PPC_evfsctuf, // Vector Convert Floating-Point Single-Precision to Unsigned Fraction PPC_evfsctui, // Vector Convert Floating-Point Single-Precision to Unsigned Integer PPC_evfsctuiz, // Vector Convert Floating-Point Single-Precision to Unsigned Integer with Round toward Zero PPC_evfsdiv, // Vector Floating-Point Single-Precision Divide PPC_evfsmul, // Vector Floating-Point Single-Precision Multiply PPC_evfsnabs, // Vector Floating-Point Single-Precision Negative Absolute Value PPC_evfsneg, // Vector Floating-Point Single-Precision Negate PPC_evfssub, // Vector Floating-Point Single-Precision Subtract PPC_evfststeq, // Vector Floating-Point Single-Precision Test Equal PPC_evfststgt, // Vector Floating-Point Single-Precision Test Greater Than PPC_evfststlt, // Vector Floating-Point Single-Precision Test Less Than // Missing instructions from Power ISA 2.06 // category: 64-bit PPC_bpermd, // Bit Permute Doubleword PPC_divde, // Divide Doubleword Extended PPC_divdeu, // Divide Doubleword Extended Unsigned PPC_ldbrx, // Load Doubleword Byte-Reverse Indexed PPC_prtyd, // Parity Doubleword PPC_stdbrx, // Store Doubleword Byte-Reverse Indexed // category: Base PPC_cmpb, // Compare Bytes PPC_divwe, // Divide Word Extended PPC_divweu, // Divide Word Extended Unsigned PPC_lbarx, // Load Byte and Reserve Indexed PPC_lharx, // Load Halfword and Reserve Indexed PPC_popcntd, // Population Count Doubleword PPC_popcntw, // Population Count Word PPC_prtyw, // Parity Word PPC_stbcx, // Store Byte Conditional Indexed PPC_sthcx, // Store Halfword Conditional Indexed // category: Binary Coded Decimal Assist PPC_addg6s, // Add and Generate Sixes PPC_cbcdtd, // Convert Binary Coded Decimal to Declets PPC_cdtbcd, // Convert Declets To Binary Coded Decimal // category: Decimal Floating-Point PPC_dadd, // DFP Add PPC_daddq, // DFP Add Quad PPC_dcffix, // DFP Convert From Fixed PPC_dcffixq, // DFP Convert From Fixed Quad PPC_dcmpo, // DFP Compare Ordered PPC_dcmpoq, // DFP Compare Ordered Quad PPC_dcmpu, // DFP Compare Unordered PPC_dcmpuq, // DFP Compare Unordered Quad PPC_dctdp, // DFP Convert To DFP Long PPC_dctfix, // DFP Convert To Fixed PPC_dctfixq, // DFP Convert To Fixed Quad PPC_dctqpq, // DFP Convert To DFP Extended PPC_ddedpd, // DFP Decode DPD To BCD PPC_ddedpdq, // DFP Decode DPD To BCD Quad PPC_ddiv, // DFP Divide PPC_ddivq, // DFP Divide Quad PPC_denbcd, // DFP Encode BCD To DPD PPC_denbcdq, // DFP Encode BCD To DPD Quad PPC_diex, // DFP Insert Biased Exponent PPC_diexq, // DFP Insert Biased Exponent Quad PPC_dmul, // DFP Multiply PPC_dmulq, // DFP Multiply Quad PPC_dqua, // DFP Quantize PPC_dquai, // DFP Quantize Immediate PPC_dquaiq, // DFP Quantize Immediate Quad PPC_dquaq, // DFP Quantize Quad PPC_drdpq, // DFP Round To DFP Long PPC_drintn, // DFP Round To FP Integer Without Inexact PPC_drintnq, // DFP Round To FP Integer Without Inexact Quad PPC_drintx, // DFP Round To FP Integer With Inexact PPC_drintxq, // DFP Round To FP Integer With Inexact Quad PPC_drrnd, // DFP Reround PPC_drrndq, // DFP Reround Quad PPC_drsp, // DFP Round To DFP Short PPC_dscli, // DFP Shift Significand Left Immediate PPC_dscliq, // DFP Shift Significand Left Immediate Quad PPC_dscri, // DFP Shift Significand Right Immediate PPC_dscriq, // DFP Shift Significand Right Immediate Quad PPC_dsub, // DFP Subtract PPC_dsubq, // DFP Subtract Quad PPC_dtstdc, // DFP Test Data Class PPC_dtstdcq, // DFP Test Data Class Quad PPC_dtstdg, // DFP Test Data Group PPC_dtstdgq, // DFP Test Data Group Quad PPC_dtstex, // DFP Test Exponent PPC_dtstexq, // DFP Test Exponent Quad PPC_dtstsf, // DFP Test Significance PPC_dtstsfq, // DFP Test Significance Quad PPC_dxex, // DFP Extract Biased Exponent PPC_dxexq, // DFP Extract Biased Exponent Quad // category: Decorated Storage PPC_dsn, // Decorated Storage Notify PPC_lbdx, // Load Byte with Decoration Indexed PPC_lddx, // Load Doubleword with Decoration Indexed PPC_lfddx, // Load Floating Doubleword with Decoration Indexed PPC_lhdx, // Load Halfword with Decoration Indexed PPC_lwdx, // Load Word with Decoration Indexed PPC_stbdx, // Store Byte with Decoration Indexed PPC_stddx, // Store Doubleword with Decoration Indexed PPC_stfddx, // Store Floating Doubleword with Decoration Indexed PPC_sthdx, // Store Halfword with Decoration Indexed PPC_stwdx, // Store Word with Decoration Indexed // category: Embedded PPC_mbar, // Memory Barrier PPC_rfmci, // Return From Machine Check Interrupt PPC_tlbilx, // TLB Invalidate Local PPC_dci, // Data Cache Invalidate PPC_ici, // Instruction Cache Invalidate PPC_mfdcrux, // Move From Device Control Register User-mode Indexed PPC_mfdcrx, // Move From Device Control Register Indexed PPC_mtdcrux, // Move To Device Control Register User-mode Indexed PPC_mtdcrx, // Move To Device Control Register Indexed // category: Embedded.Enhanced Debug PPC_dnh, // Debugger Notify Halt // category: Embedded.Hypervisor PPC_ehpriv, // Embedded Hypervisor Privilege PPC_rfgi, // Return From Guest Interrupt // category: Embedded.Processor Control PPC_msgclr, // Message Clear PPC_msgsnd, // Message Send // category: Embedded.External PID PPC_dcbfep, // Data Cache Block Flush by External PID PPC_dcbstep, // Data Cache Block Store by External PID PPC_dcbtep, // Data Cache Block Touch by External PID PPC_dcbtstep, // Data Cache Block Touch for Store by External PID PPC_dcbzep, // Data Cache Block set to Zero by External PID PPC_evlddepx, // Vector Load Doubleword into Doubleword by External Process ID Indexed PPC_evstddepx, // Vector Store Doubleword into Doubleword by External Process ID Indexed PPC_icbiep, // Instruction Cache Block Invalidate by External PID PPC_lbepx, // Load Byte by External Process ID Indexed PPC_lfdepx, // Load Floating-Point Double by External Process ID Indexed PPC_lhepx, // Load Halfword by External Process ID Indexed PPC_lvepx, // Load Vector by External Process ID Indexed PPC_lvepxl, // Load Vector by External Process ID Indexed LRU PPC_lwepx, // Load Word by External Process ID Indexed PPC_stbepx, // Store Byte by External Process ID Indexed PPC_stfdepx, // Store Floating-Point Double by External Process ID Indexed PPC_sthepx, // Store Halfword by External Process ID Indexed PPC_stvepx, // Store Vector by External Process ID Indexed PPC_stvepxl, // Store Vector by External Process ID Indexed LRU PPC_stwepx, // Store Word by External Process ID Indexed PPC_ldepx, // Load Doubleword by External Process ID Indexed PPC_stdepx, // Store Doubleword by External Process ID Indexed // category: Embedded.Performance Monitor PPC_mfpmr, // Move From Performance Monitor Register PPC_mtpmr, // Move To Performance Monitor Register // category: Embedded.Thread Management PPC_mftmr, // Move From Thread Management Register PPC_mttmr, // Move To Thread Management Register // category: Embedded.TLB Write Conditional PPC_tlbsrx, // TLB Search and Reserve // category: Floating-point PPC_fcfids, // Floating Convert From Integer Doubleword Single PPC_fcfidu, // Floating Convert From Integer Doubleword Unsigned PPC_fcfidus, // Floating Convert From Integer Doubleword Unsigned Single PPC_fctidu, // Floating Convert To Integer Doubleword Unsigned PPC_fctiduz, // Floating Convert To Integer Doubleword Unsigned with round toward Zero PPC_fctiwu, // Floating Convert To Integer Word Unsigned PPC_fctiwuz, // Floating Convert To Integer Word Unsigned with round toward Zero PPC_ftdiv, // Floating Test for software Divide PPC_ftsqrt, // Floating Test for software Square Root PPC_lfiwax, // Load Floating-Point as Integer Word Algebraic Indexed PPC_lfiwzx, // Load Floating-Point as Integer Word and Zero Indexed PPC_lfdp, // Load Floating-Point Double Pair PPC_lfdpx, // Load Floating-Point Double Pair Indexed PPC_stfdp, // Store Floating-Point Double Pair PPC_stfdpx, // Store Floating-Point Double Pair Indexed PPC_fcpsgn, // Floating Copy Sign PPC_fre, // Floating Reciprocal Estimate PPC_frim, // Floating Round to Integer Minus PPC_frin, // Floating Round to Integer Nearest PPC_frip, // Floating Round to Integer Plus PPC_friz, // Floating Round to Integer Toward Zero // category: Legacy Integer Multiply-Accumulate PPC_macchw, // Multiply Accumulate Cross Halfword to Word Modulo Signed PPC_macchws, // Multiply Accumulate Cross Halfword to Word Saturate Signed PPC_macchwsu, // Multiply Accumulate Cross Halfword to Word Saturate Unsigned PPC_macchwu, // Multiply Accumulate Cross Halfword to Word Modulo Unsigned PPC_machhw, // Multiply Accumulate High Halfword to Word Modulo Signed PPC_machhws, // Multiply Accumulate High Halfword to Word Saturate Signed PPC_machhwsu, // Multiply Accumulate High Halfword to Word Saturate Unsigned PPC_machhwu, // Multiply Accumulate High Halfword to Word Modulo Unsigned PPC_maclhw, // Multiply Accumulate Low Halfword to Word Modulo Signed PPC_maclhws, // Multiply Accumulate Low Halfword to Word Saturate Signed PPC_maclhwsu, // Multiply Accumulate Low Halfword to Word Saturate Unsigned PPC_maclhwu, // Multiply Accumulate Low Halfword to Word Modulo Unsigned PPC_mulchw, // Multiply Cross Halfword to Word Signed PPC_mulchwu, // Multiply Cross Halfword to Word Unsigned PPC_mulhhw, // Multiply High Halfword to Word Signed PPC_mulhhwu, // Multiply High Halfword to Word Unsigned PPC_mullhw, // Multiply Low Halfword to Word Signed PPC_mullhwu, // Multiply Low Halfword to Word Unsigned PPC_nmacchw, // Negative Multiply Accumulate Cross Halfword to Word Modulo Signed PPC_nmacchws, // Negative Multiply Accumulate Cross Halfword to Word Saturate Signed PPC_nmachhw, // Negative Multiply Accumulate High Halfword to Word Modulo Signed PPC_nmachhws, // Negative Multiply Accumulate High Halfword to Word Saturate Signed PPC_nmaclhw, // Negative Multiply Accumulate Low Halfword to Word Modulo Signed PPC_nmaclhws, // Negative Multiply Accumulate Low Halfword to Word Saturate Signed // category: Legacy Move Assist PPC_dlmzb, // Determine Leftmost Zero Byte // category: Load/Store Quadword PPC_lq, // Load Quadword PPC_stq, // Store Quadword // category: Server PPC_doze, // Doze PPC_lbzcix, // Load Byte and Zero Caching Inhibited Indexed PPC_ldcix, // Load Doubleword Caching Inhibited Indexed PPC_lhzcix, // Load Halfword and Zero Caching Inhibited Indexed PPC_lwzcix, // Load Word and Zero Caching Inhibited Indexed PPC_nap, // Nap PPC_rvwinkle, // Rip Van Winkle PPC_slbfee, // SLB Find Entry ESID PPC_sleep, // Sleep PPC_stbcix, // Store Byte Caching Inhibited Indexed PPC_stdcix, // Store Doubleword Caching Inhibited Indexed PPC_sthcix, // Store Halfword Caching Inhibited Indexed PPC_stwcix, // Store Word Caching Inhibited Indexed PPC_tlbiel, // TLB Invalidate Entry Local, ISA 3.0 format // category: Vector PPC_lvebx, // Load Vector Element Byte Indexed PPC_lvehx, // Load Vector Element Halfword Indexed PPC_lvewx, // Load Vector Element Word Indexed PPC_lvsl, // Load Vector for Shift Left Indexed PPC_lvsr, // Load Vector for Shift Right Indexed PPC_lvx, // Load Vector Indexed PPC_lvxl, // Load Vector Indexed LRU PPC_mfvscr, // Move From Vector Status and Control Register PPC_mtvscr, // Move To Vector Status and Control Register PPC_stvebx, // Store Vector Element Byte Indexed PPC_stvehx, // Store Vector Element Halfword Indexed PPC_stvewx, // Store Vector Element Word Indexed PPC_stvx, // Store Vector Indexed PPC_stvxl, // Store Vector Indexed LRU PPC_vaddcuw, // Vector Add and Write Carry-Out Unsigned Word PPC_vaddfp, // Vector Add Single-Precision PPC_vaddsbs, // Vector Add Signed Byte Saturate PPC_vaddshs, // Vector Add Signed Halfword Saturate PPC_vaddsws, // Vector Add Signed Word Saturate PPC_vaddubm, // Vector Add Unsigned Byte Modulo PPC_vaddubs, // Vector Add Unsigned Byte Saturate PPC_vadduhm, // Vector Add Unsigned Halfword Modulo PPC_vadduhs, // Vector Add Unsigned Halfword Saturate PPC_vadduwm, // Vector Add Unsigned Word Modulo PPC_vadduws, // Vector Add Unsigned Word Saturate PPC_vand, // Vector Logical AND PPC_vandc, // Vector Logical AND with Complement PPC_vavgsb, // Vector Average Signed Byte PPC_vavgsh, // Vector Average Signed Halfword PPC_vavgsw, // Vector Average Signed Word PPC_vavgub, // Vector Average Unsigned Byte PPC_vavguh, // Vector Average Unsigned Halfword PPC_vavguw, // Vector Average Unsigned Word PPC_vcfsx, // Vector Convert From Signed Fixed-Point Word PPC_vcfux, // Vector Convert From Unsigned Fixed-Point Word PPC_vcmpbfp, // Vector Compare Bounds Single-Precision PPC_vcmpeqfp, // Vector Compare Equal To Single-Precision PPC_vcmpequb, // Vector Compare Equal To Unsigned Byte PPC_vcmpequh, // Vector Compare Equal To Unsigned Halfword PPC_vcmpequw, // Vector Compare Equal To Unsigned Word PPC_vcmpgefp, // Vector Compare Greater Than or Equal To Single-Precision PPC_vcmpgtfp, // Vector Compare Greater Than Single-Precision PPC_vcmpgtsb, // Vector Compare Greater Than Signed Byte PPC_vcmpgtsh, // Vector Compare Greater Than Signed Halfword PPC_vcmpgtsw, // Vector Compare Greater Than Signed Word PPC_vcmpgtub, // Vector Compare Greater Than Unsigned Byte PPC_vcmpgtuh, // Vector Compare Greater Than Unsigned Halfword PPC_vcmpgtuw, // Vector Compare Greater Than Unsigned Word PPC_vctsxs, // Vector Convert To Signed Fixed-Point Word Saturate PPC_vctuxs, // Vector Convert To Unsigned Fixed-Point Word Saturate PPC_vexptefp, // Vector 2 Raised to the Exponent Estimate FloatingPoint PPC_vlogefp, // Vector Log Base 2 Estimate Floating-Point PPC_vmaddfp, // Vector Multiply-Add Single-Precision PPC_vmaxfp, // Vector Maximum Single-Precision PPC_vmaxsb, // Vector Maximum Signed Byte PPC_vmaxsh, // Vector Maximum Signed Halfword PPC_vmaxsw, // Vector Maximum Signed Word PPC_vmaxub, // Vector Maximum Unsigned Byte PPC_vmaxuh, // Vector Maximum Unsigned Halfword PPC_vmaxuw, // Vector Maximum Unsigned Word PPC_vmhaddshs, // Vector Multiply-High-Add Signed Halfword Saturate PPC_vmhraddshs, // Vector Multiply-High-Round-Add Signed Halfword Saturate PPC_vminfp, // Vector Minimum Single-Precision PPC_vminsb, // Vector Minimum Signed Byte PPC_vminsh, // Vector Minimum Signed Halfword PPC_vminsw, // Vector Minimum Signed Word PPC_vminub, // Vector Minimum Unsigned Byte PPC_vminuh, // Vector Minimum Unsigned Halfword PPC_vminuw, // Vector Minimum Unsigned Word PPC_vmladduhm, // Vector Multiply-Low-Add Unsigned Halfword Modulo PPC_vmrghb, // Vector Merge High Byte PPC_vmrghh, // Vector Merge High Halfword PPC_vmrghw, // Vector Merge High Word PPC_vmrglb, // Vector Merge Low Byte PPC_vmrglh, // Vector Merge Low Halfword PPC_vmrglw, // Vector Merge Low Word PPC_vmsummbm, // Vector Multiply-Sum Mixed Byte Modulo PPC_vmsumshm, // Vector Multiply-Sum Signed Halfword Modulo PPC_vmsumshs, // Vector Multiply-Sum Signed Halfword Saturate PPC_vmsumubm, // Vector Multiply-Sum Unsigned Byte Modulo PPC_vmsumuhm, // Vector Multiply-Sum Unsigned Halfword Modulo PPC_vmsumuhs, // Vector Multiply-Sum Unsigned Halfword Saturate PPC_vmulesb, // Vector Multiply Even Signed Byte PPC_vmulesh, // Vector Multiply Even Signed Halfword PPC_vmuleub, // Vector Multiply Even Unsigned Byte PPC_vmuleuh, // Vector Multiply Even Unsigned Halfword PPC_vmulosb, // Vector Multiply Odd Signed Byte PPC_vmulosh, // Vector Multiply Odd Signed Halfword PPC_vmuloub, // Vector Multiply Odd Unsigned Byte PPC_vmulouh, // Vector Multiply Odd Unsigned Halfword PPC_vnmsubfp, // Vector Negative Multiply-Subtract Single-Precision PPC_vnor, // Vector Logical NOR PPC_vor, // Vector Logical OR PPC_vperm, // Vector Permute PPC_vpkpx, // Vector Pack Pixel PPC_vpkshss, // Vector Pack Signed Halfword Signed Saturate PPC_vpkshus, // Vector Pack Signed Halfword Unsigned Saturate PPC_vpkswss, // Vector Pack Signed Word Signed Saturate PPC_vpkswus, // Vector Pack Signed Word Unsigned Saturate PPC_vpkuhum, // Vector Pack Unsigned Halfword Unsigned Modulo PPC_vpkuhus, // Vector Pack Unsigned Halfword Unsigned Saturate PPC_vpkuwum, // Vector Pack Unsigned Word Unsigned Modulo PPC_vpkuwus, // Vector Pack Unsigned Word Unsigned Saturate PPC_vrefp, // Vector Reciprocal Estimate Single-Precision PPC_vrfim, // Vector Round to Single-Precision Integer toward -Infinity PPC_vrfin, // Vector Round to Single-Precision Integer Nearest PPC_vrfip, // Vector Round to Single-Precision Integer toward +Infinity PPC_vrfiz, // Vector Round to Single-Precision Integer toward Zero PPC_vrlb, // Vector Rotate Left Byte PPC_vrlh, // Vector Rotate Left Halfword PPC_vrlw, // Vector Rotate Left Word PPC_vrsqrtefp, // Vector Reciprocal Square Root Estimate Single-Precision PPC_vsel, // Vector Select PPC_vsl, // Vector Shift Left PPC_vslb, // Vector Shift Left Byte PPC_vsldoi, // Vector Shift Left Double by Octet Immediate PPC_vslh, // Vector Shift Left Halfword PPC_vslo, // Vector Shift Left by Octet PPC_vslw, // Vector Shift Left Word PPC_vspltb, // Vector Splat Byte PPC_vsplth, // Vector Splat Halfword PPC_vspltisb, // Vector Splat Immediate Signed Byte PPC_vspltish, // Vector Splat Immediate Signed Halfword PPC_vspltisw, // Vector Splat Immediate Signed Word PPC_vspltw, // Vector Splat Word PPC_vsr, // Vector Shift Right PPC_vsrab, // Vector Shift Right Algebraic Byte PPC_vsrah, // Vector Shift Right Algebraic Halfword PPC_vsraw, // Vector Shift Right Algebraic Word PPC_vsrb, // Vector Shift Right Byte PPC_vsrh, // Vector Shift Right Halfword PPC_vsro, // Vector Shift Right by Octet PPC_vsrw, // Vector Shift Right Word PPC_vsubcuw, // Vector Subtract and Write Carry-Out Unsigned Word PPC_vsubfp, // Vector Subtract Single-Precision PPC_vsubsbs, // Vector Subtract Signed Byte Saturate PPC_vsubshs, // Vector Subtract Signed Halfword Saturate PPC_vsubsws, // Vector Subtract Signed Word Saturate PPC_vsububm, // Vector Subtract Unsigned Byte Modulo PPC_vsububs, // Vector Subtract Unsigned Byte Saturate PPC_vsubuhm, // Vector Subtract Unsigned Halfword Modulo PPC_vsubuhs, // Vector Subtract Unsigned Halfword Saturate PPC_vsubuwm, // Vector Subtract Unsigned Word Modulo PPC_vsubuws, // Vector Subtract Unsigned Word Saturate PPC_vsum2sws, // Vector Sum across Half Signed Word Saturate PPC_vsum4sbs, // Vector Sum across Quarter Signed Byte Saturate PPC_vsum4shs, // Vector Sum across Quarter Signed Halfword Saturate PPC_vsum4ubs, // Vector Sum across Quarter Unsigned Byte Saturate PPC_vsumsws, // Vector Sum across Signed Word Saturate PPC_vupkhpx, // Vector Unpack High Pixel PPC_vupkhsb, // Vector Unpack High Signed Byte PPC_vupkhsh, // Vector Unpack High Signed Halfword PPC_vupklpx, // Vector Unpack Low Pixel PPC_vupklsb, // Vector Unpack Low Signed Byte PPC_vupklsh, // Vector Unpack Low Signed Halfword PPC_vxor, // Vector Logical XOR // category: Vector-Scalar Floating-Point PPC_lxsdx, // Load VSR Scalar Doubleword Indexed PPC_lxvd2x, // Load VSR Vector Doubleword*2 Indexed PPC_lxvdsx, // Load VSR Vector Doubleword & Splat Indexed PPC_lxvw4x, // Load VSR Vector Word*4 Indexed PPC_stxsdx, // Store VSR Scalar Doubleword Indexed PPC_stxvd2x, // Store VSR Vector Doubleword*2 Indexed PPC_stxvw4x, // Store VSR Vector Word*4 Indexed PPC_xsabsdp, // VSX Scalar Absolute Value Double-Precision PPC_xsadddp, // VSX Scalar Add Double-Precision PPC_xscmpodp, // VSX Scalar Compare Ordered Double-Precision PPC_xscmpudp, // VSX Scalar Compare Unordered Double-Precision PPC_xscpsgndp, // VSX Scalar Copy Sign Double-Precision PPC_xscvdpsp, // VSX Scalar Convert Double-Precision to SinglePrecision PPC_xscvdpsxds, // VSX Scalar truncate Double-Precision to integer and Convert to Signed Fixed-Point Doubleword format with Saturate PPC_xscvdpsxws, // VSX Scalar truncate Double-Precision to integer and Convert to Signed Fixed-Point Word format with Saturate PPC_xscvdpuxds, // VSX Scalar truncate Double-Precision to integer and Convert to Unsigned Fixed-Point Doubleword format with Saturate PPC_xscvdpuxws, // VSX Scalar truncate Double-Precision to integer and Convert to Unsigned Fixed-Point Word format with Saturate PPC_xscvspdp, // VSX Scalar Convert Single-Precision to DoublePrecision format PPC_xscvsxddp, // VSX Scalar Convert and round Signed Fixed-Point Doubleword to Double-Precision format PPC_xscvuxddp, // VSX Scalar Convert and round Unsigned Fixed-Point Doubleword to Double-Precision format PPC_xsdivdp, // VSX Scalar Divide Double-Precision PPC_xsmaddadp, // VSX Scalar Multiply-Add Type-A Double-Precision PPC_xsmaddmdp, // VSX Scalar Multiply-Add Type-M Double-Precision PPC_xsmaxdp, // VSX Scalar Maximum Double-Precision PPC_xsmindp, // VSX Scalar Minimum Double-Precision PPC_xsmsubadp, // VSX Scalar Multiply-Subtract Type-A Double-Precision PPC_xsmsubmdp, // VSX Scalar Multiply-Subtract Type-M Double-Precision PPC_xsmuldp, // VSX Scalar Multiply Double-Precision PPC_xsnabsdp, // VSX Scalar Negative Absolute Value Double-Precision PPC_xsnegdp, // VSX Scalar Negate Double-Precision PPC_xsnmaddadp, // VSX Scalar Negative Multiply-Add Type-A DoublePrecision PPC_xsnmaddmdp, // VSX Scalar Negative Multiply-Add Type-M DoublePrecision PPC_xsnmsubadp, // VSX Scalar Negative Multiply-Subtract Type-A DoublePrecision PPC_xsnmsubmdp, // VSX Scalar Negative Multiply-Subtract Type-M DoublePrecision PPC_xsrdpi, // VSX Scalar Round to Double-Precision Integer PPC_xsrdpic, // VSX Scalar Round to Double-Precision Integer using Current rounding mode PPC_xsrdpim, // VSX Scalar Round to Double-Precision Integer toward Infinity PPC_xsrdpip, // VSX Scalar Round to Double-Precision Integer toward + Infinity PPC_xsrdpiz, // VSX Scalar Round to Double-Precision Integer toward Zero PPC_xsredp, // VSX Scalar Reciprocal Estimate Double-Precision PPC_xsrsqrtedp, // VSX Scalar Reciprocal Square Root Estimate DoublePrecision PPC_xssqrtdp, // VSX Scalar Square Root Double-Precision PPC_xssubdp, // VSX Scalar Subtract Double-Precision PPC_xstdivdp, // VSX Scalar Test for software Divide Double-Precision PPC_xstsqrtdp, // VSX Scalar Test for software Square Root DoublePrecision PPC_xvabsdp, // VSX Vector Absolute Value Double-Precision PPC_xvabssp, // VSX Vector Absolute Value Single-Precision PPC_xvadddp, // VSX Vector Add Double-Precision PPC_xvaddsp, // VSX Vector Add Single-Precision PPC_xvcmpeqdp, // VSX Vector Compare Equal To Double-Precision PPC_xvcmpeqsp, // VSX Vector Compare Equal To Single-Precision PPC_xvcmpgedp, // VSX Vector Compare Greater Than or Equal To Double-Precision PPC_xvcmpgesp, // VSX Vector Compare Greater Than or Equal To SinglePrecision PPC_xvcmpgtdp, // VSX Vector Compare Greater Than Double-Precision PPC_xvcmpgtsp, // VSX Vector Compare Greater Than Single-Precision PPC_xvcpsgndp, // VSX Vector Copy Sign Double-Precision PPC_xvcpsgnsp, // VSX Vector Copy Sign Single-Precision PPC_xvcvdpsp, // VSX Vector round and Convert Double-Precision to Single-Precision format PPC_xvcvdpsxds, // VSX Vector truncate Double-Precision to integer and Convert to Signed Fixed-Point Doubleword Saturate PPC_xvcvdpsxws, // VSX Vector truncate Double-Precision to integer and Convert to Signed Fixed-Point Word Saturate PPC_xvcvdpuxds, // VSX Vector truncate Double-Precision to integer and Convert to Unsigned Fixed-Point Doubleword format with Saturate PPC_xvcvdpuxws, // VSX Vector truncate Double-Precision to integer and Convert to Unsigned Fixed-Point Word format with Saturate PPC_xvcvspdp, // VSX Vector Convert Single-Precision to DoublePrecision PPC_xvcvspsxds, // VSX Vector truncate Single-Precision to integer and Convert to Signed Fixed-Point Doubleword format with Saturate PPC_xvcvspsxws, // VSX Vector truncate Single-Precision to integer and Convert to Signed Fixed-Point Word format with Saturate PPC_xvcvspuxds, // VSX Vector truncate Single-Precision to integer and Convert to Unsigned Fixed-Point Doubleword format with Saturate PPC_xvcvspuxws, // VSX Vector truncate Single-Precision to integer and Convert to Unsigned Fixed-Point Word Saturate PPC_xvcvsxddp, // VSX Vector Convert and round Signed Fixed-Point Doubleword to Double-Precision format PPC_xvcvsxdsp, // VSX Vector Convert and round Signed Fixed-Point Doubleword to Single-Precision format PPC_xvcvsxwdp, // VSX Vector Convert Signed Fixed-Point Word to Double-Precision format PPC_xvcvsxwsp, // VSX Vector Convert and round Signed Fixed-Point Word to Single-Precision format PPC_xvcvuxddp, // VSX Vector Convert and round Unsigned Fixed-Point Doubleword to Double-Precision format PPC_xvcvuxdsp, // VSX Vector Convert and round Unsigned Fixed-Point Doubleword to Single-Precision format PPC_xvcvuxwdp, // VSX Vector Convert Unsigned Fixed-Point Word to Double-Precision format PPC_xvcvuxwsp, // VSX Vector Convert and round Unsigned Fixed-Point Word to Single-Precision format PPC_xvdivdp, // VSX Vector Divide Double-Precision PPC_xvdivsp, // VSX Vector Divide Single-Precision PPC_xvmaddadp, // VSX Vector Multiply-Add Type-A Double-Precision PPC_xvmaddasp, // VSX Vector Multiply-Add Type-A Single-Precision PPC_xvmaddmdp, // VSX Vector Multiply-Add Type-M Double-Precision PPC_xvmaddmsp, // VSX Vector Multiply-Add Type-M Single-Precision PPC_xvmaxdp, // VSX Vector Maximum Double-Precision PPC_xvmaxsp, // VSX Vector Maximum Single-Precision PPC_xvmindp, // VSX Vector Minimum Double-Precision PPC_xvminsp, // VSX Vector Minimum Single-Precision PPC_xvmsubadp, // VSX Vector Multiply-Subtract Type-A Double-Precision PPC_xvmsubasp, // VSX Vector Multiply-Subtract Type-A Single-Precision PPC_xvmsubmdp, // VSX Vector Multiply-Subtract Type-M Double-Precision PPC_xvmsubmsp, // VSX Vector Multiply-Subtract Type-M Single-Precision PPC_xvmuldp, // VSX Vector Multiply Double-Precision PPC_xvmulsp, // VSX Vector Multiply Single-Precision PPC_xvnabsdp, // VSX Vector Negative Absolute Value Double-Precision PPC_xvnabssp, // VSX Vector Negative Absolute Value Single-Precision PPC_xvnegdp, // VSX Vector Negate Double-Precision PPC_xvnegsp, // VSX Vector Negate Single-Precision PPC_xvnmaddadp, // VSX Vector Negative Multiply-Add Type-A DoublePrecision PPC_xvnmaddasp, // VSX Vector Negative Multiply-Add Type-A SinglePrecision PPC_xvnmaddmdp, // VSX Vector Negative Multiply-Add Type-M DoublePrecision PPC_xvnmaddmsp, // VSX Vector Negative Multiply-Add Type-M SinglePrecision PPC_xvnmsubadp, // VSX Vector Negative Multiply-Subtract Type-A DoublePrecision PPC_xvnmsubasp, // VSX Vector Negative Multiply-Subtract Type-A SinglePrecision PPC_xvnmsubmdp, // VSX Vector Negative Multiply-Subtract Type-M DoublePrecision PPC_xvnmsubmsp, // VSX Vector Negative Multiply-Subtract Type-M SinglePrecision PPC_xvrdpi, // VSX Vector Round to Double-Precision Integer PPC_xvrdpic, // VSX Vector Round to Double-Precision Integer using Current rounding mode PPC_xvrdpim, // VSX Vector Round to Double-Precision Integer toward Infinity PPC_xvrdpip, // VSX Vector Round to Double-Precision Integer toward + Infinity PPC_xvrdpiz, // VSX Vector Round to Double-Precision Integer toward Zero PPC_xvredp, // VSX Vector Reciprocal Estimate Double-Precision PPC_xvresp, // VSX Vector Reciprocal Estimate Single-Precision PPC_xvrspi, // VSX Vector Round to Single-Precision Integer PPC_xvrspic, // VSX Vector Round to Single-Precision Integer using Current rounding mode PPC_xvrspim, // VSX Vector Round to Single-Precision Integer toward Infinity PPC_xvrspip, // VSX Vector Round to Single-Precision Integer toward + Infinity PPC_xvrspiz, // VSX Vector Round to Single-Precision Integer toward Zero PPC_xvrsqrtedp, // VSX Vector Reciprocal Square Root Estimate DoublePrecision PPC_xvrsqrtesp, // VSX Vector Reciprocal Square Root Estimate SinglePrecision PPC_xvsqrtdp, // VSX Vector Square Root Double-Precision PPC_xvsqrtsp, // VSX Vector Square Root Single-Precision PPC_xvsubdp, // VSX Vector Subtract Double-Precision PPC_xvsubsp, // VSX Vector Subtract Single-Precision PPC_xvtdivdp, // VSX Vector Test for software Divide Double-Precision PPC_xvtdivsp, // VSX Vector Test for software Divide Single-Precision PPC_xvtsqrtdp, // VSX Vector Test for software Square Root DoublePrecision PPC_xvtsqrtsp, // VSX Vector Test for software Square Root SinglePrecision PPC_xxland, // VSX Logical AND PPC_xxlandc, // VSX Logical AND with Complement PPC_xxlnor, // VSX Logical NOR PPC_xxlor, // VSX Logical OR PPC_xxlxor, // VSX Logical XOR PPC_xxmrghw, // VSX Merge High Word PPC_xxmrglw, // VSX Merge Low Word PPC_xxpermdi, // VSX Permute Doubleword Immediate PPC_xxsel, // VSX Select PPC_xxsldwi, // VSX Shift Left Double by Word Immediate PPC_xxspltw, // VSX Splat Word // category: Wait PPC_wait, // Wait // Obsolete AltiVec instructions PPC_dss, // Data Stream Stop PPC_dssall, // Data Stream Stop All PPC_dst, // Data Stream Touch PPC_dstt, // Data Stream Touch Transient PPC_dstst, // Data Stream Touch for Store PPC_dststt, // Data Stream Touch for Store Transient // Cell BE AltiVec extension PPC_lvlx, // Load Vector Left Indexed PPC_lvlxl, // Load Vector Left Indexed Last PPC_lvrx, // Load Vector Right Indexed PPC_lvrxl, // Load Vector Right Indexed Last PPC_stvlx, // Store Vector Left Indexed PPC_stvlxl, // Store Vector Left Indexed Last PPC_stvrx, // Store Vector Right Indexed PPC_stvrxl, // Store Vector Right Indexed Last // VLE instructions that don't have matching mnemonics PPC_add16i, // [e_add16i] Add Immediate PPC_add2i, // [e_add2i] Add (2 operand) Immediate and Record PPC_add2is, // [e_add2is] Add (2 operand) Immediate Shifted PPC_and2i, // [e_and2i] AND (two operand) Immediate PPC_and2is, // [e_and2is] AND (2 operand) Immediate Shifted PPC_cmp16i, // [e_cmp16i] Compare Immediate Word PPC_cmph, // [e_cmph] Compare Halfword PPC_cmph16i, // [e_cmph16i] Compare Halfword Immediate PPC_cmphl, // [e_cmphl] Compare Halfword Logical PPC_cmphl16i, // [e_cmphl16i] Compare Halfword Logical Immediate PPC_cmpl16i, // [e_cmpl16i] Compare Logical Immediate Word PPC_mull2i, // [e_mull2i] Multiply (2 operand) Low Immediate PPC_or2i, // [e_or2i] OR (two operand) Immediate PPC_or2is, // [e_or2is] OR (2 operand) Immediate Shifted PPC_rlw, // [e_rlw] Rotate Left Word PPC_rlwi, // [e_rlwi] Rotate Left Word Immediate PPC_bclri, // [se_bclri] Bit Clear Immediate // PPC_bctr, // [se_bctr] Branch to Count Register // PPC_bctrl, // [se_bctrl] Branch to Count Register and Link PPC_bgeni, // [se_bgeni] Bit Generate Immediate PPC_bmaski, // [se_bmaski] Bit Mask Generate Immediate PPC_bseti, // [se_bseti] Bit Set Immediate PPC_btsti, // [se_btsti] Bit Test Immediate PPC_extzb, // [se_extzb] Extend Zero Byte PPC_extzh, // [se_extzh] Extend Zero Halfword PPC_illegal, // [se_illegal] Illegal PPC_mfar, // [se_mfar] Move from Alternate Register PPC_mtar, // [se_mtar] Move To Alternate Register PPC_sub, // [se_sub] Subtract // simplified VLE mnemonics PPC_sub16i, // [e_sub16i] Subtract Immediate PPC_sub2i, // [e_sub2i] Subtract (2 operand) Immediate PPC_sub2is, // [e_sub2is] Subtract (2 operand) Immediate Shifted // misc extended mnemonics PPC_extldi, // Extract and Left Justify Immediate PPC_extrdi, // Extract and Right Justify Immediate PPC_insrdi, // Insert from Right Immediate PPC_rotldi, // Rotate Left Immediate PPC_rotrdi, // Rotate Right Immediate PPC_rotld, // Rotate Left PPC_sldi, // Shift Left Immediate PPC_srdi, // Shift Right Immediate PPC_clrldi, // Clear Left Immediate PPC_clrrdi, // Clear Right Immediate PPC_clrlsldi, // Clear Left and Shift Left Immediate PPC_xnop, // Extended No Operation PPC_hnop, // Reserved no-op hint PPC_dcbfl, // Data Cache Block Flush Local PPC_dcbflp, // Data Cache Block Flush Local Primary PPC_dcbtt, // Data Cache Block Touch PPC_dcbtstt, // Data Cache Block Touch for Store PPC_lwsync, // Lightweight Sync PPC_ptesync, // Page Table Entry Sync PPC_waitrsv, // Wait For Reservation Loss PPC_waitimpl, // Wait For Implementation-specific Condition PPC_evmr, // Vector Move PPC_evnot, // Vector Not PPC_mtcr, // Move to Condition Register PPC_xvmovdp, // VSX Vector Copy Double-Precision PPC_xvmovsp, // VSX Vector Copy Single-Precision PPC_xxspltd, // VSX Splat Doubleword PPC_xxmrghd, // VSX Merge High Doubleword PPC_xxmrgld, // VSX Merge Low Doubleword PPC_xxswapd, // VSX Swap Doubleword // Xbox 360 specific PPC_dcbz128, // Data Cache Block Clear to Zero (128 bytes) PPC_mtmsree, // Move to Machine State Register EE // new Xbox 360 instructions (VMX128) PPC_vcfpsxws, // Vector Convert From Single-Precision to Signed Fixed-point Word Saturate PPC_vcfpuxws, // Vector Convert From Single-Precision to Unsigned Fixed-point Word Saturate PPC_vcsxwfp, // Vector Convert from Signed Fixed-point Word to Single-Precision PPC_vcuxwfp, // Vector Convert from Unsigned Fixed-point Word to Single-Precision PPC_vmaddcfp, // Vector Convert from Unsigned Fixed-point Word to Single-Precision PPC_vmsum3fp, // Vector Multiply-Sum 3-way Single-Precision PPC_vmsum4fp, // Vector Multiply-Sum 4-way Single-Precision PPC_vmulfp, // Vector Multiply Single-Precision PPC_vpermwi, // Vector Permute Word Immediate PPC_vpkd3d, // Vector Pack D3Dtype, Rotate Left Immediate and Mask Insert PPC_vrlimi, // Vector Rotate Left Immediate and Mask Insert PPC_vupkd3d, // Vector Unpack D3Dtype // Paired Singles (750CL/Gekko/Broadway) PPC_ps_cmpu0, // Paired Single Compare Unordered High PPC_psq_lx, // Paired Single Quantized Load Indexed PPC_psq_stx, // Paired Single Quantized Store Indexed PPC_ps_sum0, // Paired Single Vector Sum High PPC_ps_sum1, // Paired Single Vector Sum Low PPC_ps_muls0, // Paired Single Multiply Scalar High PPC_ps_muls1, // Paired Single Multiply Scalar Low PPC_ps_madds0, // Paired Single Multiply-Add Scalar High PPC_ps_madds1, // Paired Single Multiply-Add Scalar Low PPC_ps_div, // Paired Single Divide PPC_ps_sub, // Paired Single Subtract PPC_ps_add, // Paired Single Add PPC_ps_sel, // Paired Single Select PPC_ps_res, // Paired Single Reciprocal Estimate PPC_ps_mul, // Paired Single Multiply PPC_ps_rsqrte, // Paired Single Reciprocal Square Root Estimate PPC_ps_msub, // Paired Single Multiply-Subtract PPC_ps_madd, // Paired Single Multiply-Add PPC_ps_nmsub, // Paired Single Negative Multiply-Subtract PPC_ps_nmadd, // Paired Single Negative Multiply-Add PPC_ps_cmpo0, // Paired Single Compare Ordered High PPC_psq_lux, // Paired Single Quantized Load with update Indexed PPC_psq_stux, // Paired Single Quantized Store with update Indexed PPC_ps_neg, // Paired Single Negate PPC_ps_cmpu1, // Paired Single Compare Unordered Low PPC_ps_mr, // Paired Single Move Register PPC_ps_cmpo1, // Paired Single Compare Ordered Low PPC_ps_nabs, // Paired Single Negative Absolute Value PPC_ps_abs, // Paired Single Absolute Value PPC_ps_merge00, // Paired Single Merge High PPC_ps_merge01, // Paired Single Merge Direct PPC_ps_merge10, // Paired Single Merge Swapped PPC_ps_merge11, // Paired Single Merge Low PPC_dcbz_l, // Data Cache Block Set to Zero Locked PPC_psq_l, // Paired Single Quantized Load PPC_psq_lu, // Paired Single Quantized Load update PPC_psq_st, // Paired Single Quantized Store PPC_psq_stu, // Paired Single Quantized Store update // additional SPE/EFPU2 instructions PPC_evfsmadd, // Vector Floating-Point Single-Precision Multiply-Add PPC_evfsmsub, // Vector Floating-Point Single-Precision Multiply-Subtract PPC_evfssqrt, // Vector Floating-Point Single-Precision Square Root PPC_evfsnmadd, // Vector Floating-Point Single-Precision Negative Multiply-Add PPC_evfsnmsub, // Vector Floating-Point Single-Precision Negative Multiply-Subtract PPC_evfsmax, // Vector Floating-Point Single-Precision Maximum PPC_evfsmin, // Vector Floating-Point Single-Precision Minimum PPC_evfsaddsub, // Vector Floating-Point Single-Precision Add / Subtract PPC_evfssubadd, // Vector Floating-Point Single-Precision Subtract / Add PPC_evfssum, // Vector Floating-Point Single-Precision Sums PPC_evfsdiff, // Vector Floating-Point Single-Precision Differences PPC_evfssumdiff,// Vector Floating-Point Single-Precision Sum / Difference PPC_evfsdiffsum,// Vector Floating-Point Single-Precision Difference / Sum PPC_evfsaddx, // Vector Floating-Point Single-Precision Add Exchanged PPC_evfssubx, // Vector Floating-Point Single-Precision Subtract Exchanged PPC_evfsaddsubx,// Vector Floating-Point Single-Precision Add / Subtract Exchanged PPC_evfssubaddx,// Vector Floating-Point Single-Precision Subtract / Add Exchanged PPC_evfsmulx, // Vector Floating-Point Single-Precision Multiply Exchanged PPC_evfsmule, // Vector Floating-Point Single-Precision Multiply By Even Element PPC_evfsmulo, // Vector Floating-Point Single-Precision Multiply By Odd Element PPC_evfscfh, // Vector Convert Floating-Point Single-Precision from Half-Precision PPC_evfscth, // Vector Convert Floating-Point Single-Precision to Half-Precision PPC_efsmax, // Floating-Point Single-Precision Maximum PPC_efsmin, // Floating-Point Single-Precision Minimum PPC_efsmadd, // Floating-Point Single-Precision Multiply-Add PPC_efsmsub, // Floating-Point Single-Precision Multiply-Subtract PPC_efssqrt, // Floating-Point Single-Precision Square Root PPC_efsnmadd, // Floating-Point Single-Precision Negative Multiply-Add PPC_efsnmsub, // Floating-Point Single-Precision Negative Multiply-Subtract PPC_efscfh, // Convert Floating-Point Single-Precision from Half-Precision PPC_efscth, // Convert Floating-Point Single-Precision to Half-Precision // Volatile Context Save/Restore APU PPC_lmvgprw, // Load Multiple Volatile GPR Word PPC_stmvgprw, // Store Multiple Volatile GPR Word PPC_lmvsprw, // Load Multiple Volatile SPR Word PPC_stmvsprw, // Store Multiple Volatile SPR Word PPC_lmvsrrw, // Load Multiple Volatile SRR Word PPC_stmvsrrw, // Store Multiple Volatile SRR Word PPC_lmvcsrrw, // Load Multiple Volatile CSRR Word PPC_stmvcsrrw, // Store Multiple Volatile CSRR Word PPC_lmvdsrrw, // Load Multiple Volatile DSRR Word PPC_stmvdsrrw, // Store Multiple Volatile DSRR Word PPC_lmvmcsrrw, // Load Multiple Volatile MCSRR Word PPC_stmvmcsrrw, // Store Multiple Volatile MCSRR Word // SPE2 (Signal Processing Engine 2) instructions PPC_evdotpwcssi, // Vector Dot Product of Words, Complex, Signed, Saturate, Integer (to Accumulator) PPC_evdotpwcsmi, // Vector Dot Product of Words, Complex, Signed, Modulo, Integer (to Accumulator) PPC_evdotpwcssfr, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotpwcssf, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional (to Accumulator) PPC_evdotpwgasmf, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwxgasmf, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwgasmfr, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwxgasmfr, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwgssmf, // Vector Dot Product of Words Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwxgssmf, // Vector Dot Product of Words Exchanged, Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwgssmfr, // Vector Dot Product of Words Guarded, Subtract, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwxgssmfr, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwcssiaaw3, // Vector Dot Product of Words, Complex, Signed, Saturate, Integer and Accumulate into Words 3 operand PPC_evdotpwcsmiaaw3, // Vector Dot Product of Words, Complex, Signed, Modulo, Integer and Accumulate into Words 3 operand PPC_evdotpwcssfraaw3, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional, Round and Accumulate into Words 3 operand PPC_evdotpwcssfaaw3, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional and Accumulate into Words 3 operand PPC_evdotpwgasmfaa3, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotpwxgasmfaa3, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotpwgasmfraa3, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional, Round and Accumulate 3 operand PPC_evdotpwxgasmfraa3, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional, Round and Accumulate 3 operand PPC_evdotpwgssmfaa3, // Vector Multiply Word Complex, Real, Guarded, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotpwxgssmfaa3, // Vector Dot Product of Words Exchanged, Guarded, Subtract, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotpwgssmfraa3, // Vector Dot Product of Words Guarded, Subtract, Signed, Modulo, Fractional, Round and Accumulate 3 operand PPC_evdotpwxgssmfraa3, // Vector Dot Product of Words Exchanged, Guarded, Subtract, Signed, Modulo, Fractional, Round and Accumulate 3 operand PPC_evdotpwcssia, // Vector Dot Product of Words, Complex, Signed, Saturate, Integer (to Accumulator) PPC_evdotpwcsmia, // Vector Dot Product of Words, Complex, Signed, Modulo, Integer (to Accumulator) PPC_evdotpwcssfra, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotpwcssfa, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional (to Accumulator) PPC_evdotpwgasmfa, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwxgasmfa, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwgasmfra, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwxgasmfra, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwgssmfa, // Vector Dot Product of Words Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwxgssmfa, // Vector Dot Product of Words Exchanged, Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpwgssmfra, // Vector Dot Product of Words Guarded, Subtract, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwxgssmfra, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evdotpwcssiaaw, // Vector Dot Product of Words, Complex, Signed, Saturate, Integer and Accumulate into Words PPC_evdotpwcsmiaaw, // Vector Dot Product of Words, Complex, Signed, Modulo, Integer and Accumulate into Words PPC_evdotpwcssfraaw, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional, Round and Accumulate into Words PPC_evdotpwcssfaaw, // Vector Dot Product of Words, Complex, Signed, Saturate, Fractional and Accumulate into Words PPC_evdotpwgasmfaa, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional and Accumulate PPC_evdotpwxgasmfaa, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional and Accumulate PPC_evdotpwgasmfraa, // Vector Dot Product of Words Guarded, Add, Signed, Modulo, Fractional, Round and Accumulate PPC_evdotpwxgasmfraa, // Vector Dot Product of Words Exchanged, Guarded, Add, Signed, Modulo, Fractional, Round and Accumulate PPC_evdotpwgssmfaa, // Vector Multiply Word Complex, Real, Guarded, Signed, Modulo, Fractional and Accumulate PPC_evdotpwxgssmfaa, // Vector Dot Product of Words Exchanged, Guarded, Subtract, Signed, Modulo, Fractional and Accumulate PPC_evdotpwgssmfraa, // Vector Dot Product of Words Guarded, Subtract, Signed, Modulo, Fractional, Round and Accumulate PPC_evdotpwxgssmfraa, // Vector Dot Product of Words Exchanged, Guarded, Subtract, Signed, Modulo, Fractional, Round and Accumulate PPC_evdotphihcssi, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Integer (to Accumulator) PPC_evdotplohcssi, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Integer (to Accumulator) PPC_evdotphihcssf, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional (to Accumulator) PPC_evdotplohcssf, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional (to Accumulator) PPC_evdotphihcsmi, // Vector Dot Product of High Halfwords, Complex, Signed, Modulo, Integer (to Accumulator) PPC_evdotplohcsmi, // Vector Dot Product of Low Halfwords, Complex, Signed, Modulo, Integer (to Accumulator) PPC_evdotphihcssfr, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotplohcssfr, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotphihcssiaaw3, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Integer and Accumulate into Words, 3 operand PPC_evdotplohcssiaaw3, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Integer and Accumulate into Words, 3 operand PPC_evdotphihcssfaaw3, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional and Accumulate into Words, 3 operand PPC_evdotplohcssfaaw3, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional and Accumulate into Words, 3 operand PPC_evdotphihcsmiaaw3, // Vector Dot Product of High Halfwords, Complex, Signed, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotplohcsmiaaw3, // Vector Dot Product of Low Halfwords, Complex, Signed, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotphihcssfraaw3, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional, Round and Accumulate into Words, 3 operand PPC_evdotplohcssfraaw3, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional, Round and Accumulate into Words, 3 operand PPC_evdotphihcssia, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Integer (to Accumulator) PPC_evdotplohcssia, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Integer (to Accumulator) PPC_evdotphihcssfa, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional (to Accumulator) PPC_evdotplohcssfa, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional (to Accumulator) PPC_evdotphihcsmia, // Vector Dot Product of High Halfwords, Complex, Signed, Modulo, Integer (to Accumulator) PPC_evdotplohcsmia, // Vector Dot Product of Low Halfwords, Complex, Signed, Modulo, Integer (to Accumulator) PPC_evdotphihcssfra, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotplohcssfra, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotphihcssiaaw, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Integer and Accumulate into Words PPC_evdotplohcssiaaw, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Integer and Accumulate into Words PPC_evdotphihcssfaaw, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional and Accumulate into Words PPC_evdotplohcssfaaw, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional and Accumulate into Words PPC_evdotphihcsmiaaw, // Vector Dot Product of High Halfwords, Complex, Signed, Modulo, Integer and Accumulate into Words PPC_evdotplohcsmiaaw, // Vector Dot Product of Low Halfwords, Complex, Signed, Modulo, Integer and Accumulate into Words PPC_evdotphihcssfraaw, // Vector Dot Product of High Halfwords, Complex, Signed, Saturate, Fractional, Round and Accumulate into Words PPC_evdotplohcssfraaw, // Vector Dot Product of Low Halfwords, Complex, Signed, Saturate, Fractional, Round and Accumulate into Words PPC_evdotphausi, // Vector Dot Product of Halfwords, Add, Unsigned, Saturate, Integer (to Accumulator) PPC_evdotphassi, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Integer (to Accumulator) PPC_evdotphasusi, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Saturate, Integer (to Accumulator) PPC_evdotphassf, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional (to Accumulator) PPC_evdotphsssf, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional (to Accumulator) PPC_evdotphaumi, // Vector Dot Product of Halfwords, Add, Unsigned, Modulo, Integer (to Accumulator) PPC_evdotphasmi, // Vector Dot Product of Halfwords, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotphasumi, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evdotphassfr, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotphssmi, // Vector Dot Product of Halfwords, Subtract, Signed, Modulo, Integer (to Accumulator) PPC_evdotphsssfr, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotphausiaaw3, // Vector Dot Product of Halfwords, Add, Unsigned, Saturate, Integer and Accumulate into Words, 3 operand PPC_evdotphassiaaw3, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Integer and Accumulate into Words, 3 operand PPC_evdotphasusiaaw3, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Saturate, Integer and Accumulate into Words, 3 operand PPC_evdotphassfaaw3, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional and Accumulate into Words, 3 operand PPC_evdotphsssiaaw3, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Integer and Accumulate into Words, 3 operand PPC_evdotphsssfaaw3, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional and Accumulate into Words, 3 operand PPC_evdotphaumiaaw3, // Vector Dot Product of Halfwords, Add, Unsigned, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotphasmiaaw3, // Vector Dot Product of Halfwords, Add, Signed, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotphasumiaaw3, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotphassfraaw3, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional, Round and Accumulate into Words, 3 operand PPC_evdotphssmiaaw3, // Vector Dot Product of Halfwords, Subtract, Signed, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotphsssfraaw3, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional, Round and Accumulate into Words, 3 operand PPC_evdotphausia, // Vector Dot Product of Halfwords, Add, Unsigned, Saturate, Integer (to Accumulator) PPC_evdotphassia, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Integer (to Accumulator) PPC_evdotphasusia, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Saturate, Integer (to Accumulator) PPC_evdotphassfa, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional (to Accumulator) PPC_evdotphsssfa, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional (to Accumulator) PPC_evdotphaumia, // Vector Dot Product of Halfwords, Add, Unsigned, Modulo, Integer (to Accumulator) PPC_evdotphasmia, // Vector Dot Product of Halfwords, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotphasumia, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evdotphassfra, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotphssmia, // Vector Dot Product of Halfwords, Subtract, Signed, Modulo, Integer (to Accumulator) PPC_evdotphsssfra, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional, Round (to Accumulator) PPC_evdotphausiaaw, // Vector Dot Product of Halfwords, Add, Unsigned, Saturate, Integer and Accumulate into Words PPC_evdotphassiaaw, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Integer and Accumulate into Words PPC_evdotphasusiaaw, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Saturate, Integer and Accumulate into Words PPC_evdotphassfaaw, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional and Accumulate into Words PPC_evdotphsssiaaw, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Integer and Accumulate into Words PPC_evdotphsssfaaw, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional and Accumulate into Words PPC_evdotphaumiaaw, // Vector Dot Product of Halfwords, Add, Unsigned, Modulo, Integer and Accumulate into Words PPC_evdotphasmiaaw, // Vector Dot Product of Halfwords, Add, Signed, Modulo, Integer and Accumulate into Words PPC_evdotphasumiaaw, // Vector Dot Product of Halfwords, Add, Signed by Unsigned, Modulo, Integer and Accumulate into Words PPC_evdotphassfraaw, // Vector Dot Product of Halfwords, Add, Signed, Saturate, Fractional, Round and Accumulate into Words PPC_evdotphssmiaaw, // Vector Dot Product of Halfwords, Subtract, Signed, Modulo, Integer and Accumulate into Words PPC_evdotphsssfraaw, // Vector Dot Product of Halfwords, Subtract, Signed, Saturate, Fractional, Round and Accumulate into Words PPC_evdotp4hgaumi, // Vector Dot Product of Four Halfwords, Guarded, Add, Unsigned, Modulo, Integer (to Accumulator) PPC_evdotp4hgasmi, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hgasumi, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evdotp4hgasmf, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotp4hgssmi, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hgssmf, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotp4hxgasmi, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hxgasmf, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpbaumi, // Vector Dot Product of Bytes, Add, Unsigned, Modulo, Integer (to Accumulator) PPC_evdotpbasmi, // Vector Dot Product of Bytes, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotpbasumi, // Vector Dot Product of Bytes, Add, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evdotp4hxgssmi, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hxgssmf, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotp4hgaumiaa3, // Vector Dot Product of Four Halfwords, Guarded, Add, Unsigned, Modulo, Integer and Accumulate, 3 operand PPC_evdotp4hgasmiaa3, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Integer and Accumulate, 3 operand PPC_evdotp4hgasumiaa3, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed by Unsigned, Modulo, Integer and Accumulate, 3 operand PPC_evdotp4hgasmfaa3, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Fractional and Accumulate, 3 operand PPC_evdotp4hgssmiaa3, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Integer and Accumulate 3 operand PPC_evdotp4hgssmfaa3, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotp4hxgasmiaa3, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Integer and Accumulate 3 operand PPC_evdotp4hxgasmfaa3, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotpbaumiaaw3, // Vector Dot Product of Bytes, Add, Unsigned, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotpbasmiaaw3, // Vector Dot Product of Bytes, Add, Signed, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotpbasumiaaw3, // Vector Dot Product of Bytes, Add, Signed by Unsigned, Modulo, Integer and Accumulate into Words, 3 operand PPC_evdotp4hxgssmiaa3, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Integer and Accumulate 3 operand PPC_evdotp4hxgssmfaa3, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Fractional and Accumulate 3 operand PPC_evdotp4hgaumia, // Vector Dot Product of Four Halfwords, Guarded, Add, Unsigned, Modulo, Integer (to Accumulator) PPC_evdotp4hgasmia, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hgasumia, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evdotp4hgasmfa, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotp4hgssmia, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hgssmfa, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotp4hxgasmia, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hxgasmfa, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Fractional (to Accumulator) PPC_evdotpbaumia, // Vector Dot Product of Bytes, Add, Unsigned, Modulo, Integer (to Accumulator) PPC_evdotpbasmia, // Vector Dot Product of Bytes, Add, Signed, Modulo, Integer (to Accumulator) PPC_evdotpbasumia, // Vector Dot Product of Bytes, Add, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evdotp4hxgssmia, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Integer (to Accumulator) PPC_evdotp4hxgssmfa, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Fractional (to Accumulator) PPC_evdotp4hgaumiaa, // Vector Dot Product of Four Halfwords, Guarded, Add, Unsigned, Modulo, Integer and Accumulate PPC_evdotp4hgasmiaa, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Integer and Accumulate PPC_evdotp4hgasumiaa, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed by Unsigned, Modulo, Integer and Accumulate PPC_evdotp4hgasmfaa, // Vector Dot Product of Four Halfwords, Guarded, Add, Signed, Modulo, Fractional and Accumulate PPC_evdotp4hgssmiaa, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Integer and Accumulate PPC_evdotp4hgssmfaa, // Vector Dot Product of Four Halfwords, Guarded, Subtract, Signed, Modulo, Fractional and Accumulate PPC_evdotp4hxgasmiaa, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Integer and Accumulate PPC_evdotp4hxgasmfaa, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Add, Signed, Modulo, Fractional and Accumulate PPC_evdotpbaumiaaw, // Vector Dot Product of Bytes, Add, Unsigned, Modulo, Integer and Accumulate into Words PPC_evdotpbasmiaaw, // Vector Dot Product of Bytes, Add, Signed, Modulo, Integer and Accumulate into Words PPC_evdotpbasumiaaw, // Vector Dot Product of Bytes, Add, Signed by Unsigned, Modulo, Integer and Accumulate into Words PPC_evdotp4hxgssmiaa, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Integer and Accumulate PPC_evdotp4hxgssmfaa, // Vector Dot Product of Four Halfwords Exchanged, Guarded, Subtract, Signed, Modulo, Fractional and Accumulate PPC_evdotpwausi, // Vector Dot Product of Words, Add, Unsigned, Saturate, integer (to Accumulator) PPC_evdotpwassi, // Vector Dot Product of Words, Add, Signed, Saturate, integer (to Accumulator) PPC_evdotpwasusi, // Vector Dot Product of Words, Add, Signed by Unsigned, Saturate, integer (to Accumulator) PPC_evdotpwaumi, // Vector Dot Product of Words, Add, Unsigned, Modulo, integer (to Accumulator) PPC_evdotpwasmi, // Vector Dot Product of Words, Add, Signed, Modulo, integer (to Accumulator) PPC_evdotpwasumi, // Vector Dot Product of Words, Add, Signed by Unsigned, Modulo, integer (to Accumulator) PPC_evdotpwssmi, // Vector Dot Product of Words, Subtract, Signed, Modulo, integer (to Accumulator) PPC_evdotpwausiaa3, // Vector Dot Product of Words, Add, Unsigned, Saturate, Integer and Accumulate, 3 operand PPC_evdotpwassiaa3, // Vector Dot Product of Words, Add, Signed, Saturate, Integer and Accumulate, 3 operand PPC_evdotpwasusiaa3, // Vector Dot Product of Words, Add, Signed by Unsigned, Saturate, Integer and Accumulate, 3 operand PPC_evdotpwsssiaa3, // Vector Dot Product of Words, Subtract, Signed, Saturate, Integer and Accumulate, 3 operand PPC_evdotpwaumiaa3, // Vector Dot Product of Words, Add, Unsigned, Modulo, Integer and Accumulate, 3 operand PPC_evdotpwasmiaa3, // Vector Dot Product of Words, Add, Signed, Modulo, Integer and Accumulate, 3 operand PPC_evdotpwasumiaa3, // Vector Dot Product of Words, Add, Signed by Unsigned, Modulo, Integer and Accumulate, 3 operand PPC_evdotpwssmiaa3, // Vector Dot Product of Words, Subtract, Signed, Modulo, Integer and Accumulate, 3 operand PPC_evdotpwausia, // Vector Dot Product of Words, Add, Unsigned, Saturate, integer (to Accumulator) PPC_evdotpwassia, // Vector Dot Product of Words, Add, Signed, Saturate, integer (to Accumulator) PPC_evdotpwasusia, // Vector Dot Product of Words, Add, Signed by Unsigned, Saturate, integer (to Accumulator) PPC_evdotpwaumia, // Vector Dot Product of Words, Add, Unsigned, Modulo, integer (to Accumulator) PPC_evdotpwasmia, // Vector Dot Product of Words, Add, Signed, Modulo, integer (to Accumulator) PPC_evdotpwasumia, // Vector Dot Product of Words, Add, Signed by Unsigned, Modulo, integer (to Accumulator) PPC_evdotpwssmia, // Vector Dot Product of Words, Subtract, Signed, Modulo, integer (to Accumulator) PPC_evdotpwausiaa, // Vector Dot Product of Words, Add, Unsigned, Saturate, Integer and Accumulate PPC_evdotpwassiaa, // Vector Dot Product of Words, Add, Signed, Saturate, Integer and Accumulate PPC_evdotpwasusiaa, // Vector Dot Product of Words, Add, Signed by Unsigned, Saturate, Integer and Accumulate PPC_evdotpwsssiaa, // Vector Dot Product of Words, Subtract, Signed, Saturate, Integer and Accumulate PPC_evdotpwaumiaa, // Vector Dot Product of Words, Add, Unsigned, Modulo, Integer and Accumulate PPC_evdotpwasmiaa, // Vector Dot Product of Words, Add, Signed, Modulo, Integer and Accumulate PPC_evdotpwasumiaa, // Vector Dot Product of Words, Add, Signed by Unsigned, Modulo, Integer and Accumulate PPC_evdotpwssmiaa, // Vector Dot Product of Words, Subtract, Signed, Modulo, Integer and Accumulate PPC_evaddih, // Vector Add Immediate Halfword PPC_evaddib, // Vector Add Immediate Byte PPC_evsubifh, // Vector Subtract Immediate from Halfword PPC_evsubifb, // Vector Subtract Immediate from Byte PPC_evabsb, // Vector Absolute Value Byte PPC_evabsh, // Vector Absolute Value Halfword PPC_evabsd, // Vector Absolute Value Doubleword PPC_evabss, // Vector Absolute Value (Word) and Saturate PPC_evabsbs, // Vector Absolute Value Byte and Saturate PPC_evabshs, // Vector Absolute Value Halfword and Saturate PPC_evabsds, // Vector Absolute Value Doubleword and Saturate PPC_evnegwo, // Vector Negate Word Odd PPC_evnegb, // Vector Negate Byte PPC_evnegbo, // Vector Negate Byte Odd PPC_evnegh, // Vector Negate Halfword PPC_evnegho, // Vector Negate Halfwords Odd PPC_evnegd, // Vector Negate Doubleword PPC_evnegs, // Vector Negate (Word) and Saturate PPC_evnegwos, // Vector Negate Word Odd and Saturate PPC_evnegbs, // Vector Negate Byte and Saturate PPC_evnegbos, // Vector Negate Byte Odd and Saturate PPC_evneghs, // Vector Negate Halfword and Saturate PPC_evneghos, // Vector Negate Halfwords Odd and Saturate PPC_evnegds, // Vector Negate Doubleword and Saturate PPC_evextzb, // Vector Extend Zero Byte PPC_evextsbh, // Vector Extend Sign of Bytes (Odd) to Halfwords PPC_evextsw, // Vector Extend Sign Word PPC_evrndhb, // Vector Round Halfword to Byte PPC_evrnddw, // Vector Round Doubleword to Word PPC_evrndwhus, // Vector Round Word to Halfword Unsigned and Saturate PPC_evrndwhss, // Vector Round Word to Halfword Signed and Saturate PPC_evrndhbus, // Vector Round Halfword to Byte Unsigned and Saturate PPC_evrndhbss, // Vector Round Halfword to Byte Signed and Saturate PPC_evrnddwus, // Vector Round Doubleword to Word Unsigned and Saturate PPC_evrnddwss, // Vector Round Doubleword to Word Signed and Saturate PPC_evrndwnh, // Vector Round Word to Nearest Even Halfword PPC_evrndhnb, // Vector Round Halfword to Nearest Even Byte PPC_evrnddnw, // Vector Round Doubleword to Nearest Even Word PPC_evrndwnhus, // Vector Round Word to Nearest Even Halfword Unsigned and Saturate PPC_evrndwnhss, // Vector Round Word to Nearest Even Halfword Signed and Saturate PPC_evrndhnbus, // Vector Round Halfword to Nearest Byte Unsigned and Saturate PPC_evrndhnbss, // Vector Round Halfword to Nearest Even Byte Signed and Saturate PPC_evrnddnwus, // Vector Round Doubleword to Nearest Even Word Unsigned and Saturate PPC_evrnddnwss, // Vector Round Doubleword to Nearest Even Word Signed and Saturate PPC_evcntlzh, // Vector Count Leading Zeros Halfword PPC_evcntlsh, // Vector Count Leading Signed Bits Halfword PPC_evpopcntb, // Vector Population Count Byte PPC_circinc, // Circular Increment PPC_evunpkhibui, // Vector Unpack High Bytes as Unsigned Integers PPC_evunpkhibsi, // Vector Unpack High Bytes as Signed Integers PPC_evunpkhihui, // Vector Extract High Halfwords as Unsigned Integers PPC_evunpkhihsi, // Vector Extract High Halfwords as Signed Integers PPC_evunpklobui, // Vector Unpack Low Bytes Unsigned Integers PPC_evunpklobsi, // Vector Unpack Low Bytes as Signed Integers PPC_evunpklohui, // Vector Unpack Low Halfwords as Unsigned Integers PPC_evunpklohsi, // Vector Unpack Low Halfwords as Signed Integers PPC_evunpklohf, // Vector Unpack Low Halfwords as Fractional PPC_evunpkhihf, // Vector Unpack High Halfwords as Fractional PPC_evunpklowgsf, // Vector Unpack Low Word to Guarded Signed Fraction PPC_evunpkhiwgsf, // Vector Unpack High Word to Guarded Signed Fraction PPC_evsatsduw, // Vector Saturate Signed Doubleword to Unsigned Word Range PPC_evsatsdsw, // Vector Saturate Signed Doubleword to Signed Word Range PPC_evsatshub, // Vector Saturate Signed Halfwords to Unsigned Byte Range PPC_evsatshsb, // Vector Saturate Signed Halfwords to Signed Byte Range PPC_evsatuwuh, // Vector Saturate Unsigned Words to Unsigned Halfword Range PPC_evsatswsh, // Vector Saturate Signed Words to Signed Halfword Range PPC_evsatswuh, // Vector Pack Signed Words to Unsigned Halfword Range PPC_evsatuhub, // Vector Saturate Unsigned Halfwords to Unsigned Byte Range PPC_evsatuduw, // Vector Saturate Unsigned Doubleword to Unsigned Word Range PPC_evsatuwsw, // Vector Saturate Unsigned Words to Signed Word Range PPC_evsatshuh, // Vector Saturate Signed Halfwords to Unsigned Halfword Range PPC_evsatuhsh, // Vector Saturate Unsigned Halfwords to Signed Halfword Range PPC_evsatswuw, // Vector Pack Signed Words to Unsigned Word Range PPC_evsatswgsdf, // Vector Saturate Signed Word Guarded to Signed Doubleword Fractional PPC_evsatsbub, // Vector Saturate Signed Bytes to Unsigned Byte Range PPC_evsatubsb, // Vector Saturate Unsigned Bytes to Signed Byte Range PPC_evmaxhpuw, // Vector Maximum of Halfword Pairs Unsigned to Word PPC_evmaxhpsw, // Vector Maximum of Halfword Pairs Signed to Word PPC_evmaxbpuh, // Vector Maximum of Byte Pairs Unsigned to Halfword PPC_evmaxbpsh, // Vector Maximum of Byte Pairs Signed to Halfword PPC_evmaxwpud, // Vector Maximum of Word Pair Unsigned to Doubleword PPC_evmaxwpsd, // Vector Maximum of Word Pair Signed to Doubleword PPC_evminhpuw, // Vector Minimum of Halfword Pairs Unsigned to Word PPC_evminhpsw, // Vector Minimum of Halfword Pairs Signed to Word PPC_evminbpuh, // Vector Minimum of Byte Pairs Unsigned to Halfword PPC_evminbpsh, // Vector Minimum of Byte Pairs Signed to Halfword PPC_evminwpud, // Vector Minimum of Word Pair Unsigned to Doubleword PPC_evminwpsd, // Vector Minimum of Word Pair Signed to Doubleword PPC_evmaxmagws, // Vector Maximum Magnitude Word Signed PPC_evsl, // Vector Shift Left PPC_evsli, // Vector Shift Left Immediate PPC_evsplatie, // Vector Splat Immediate Even (to Accumulator) PPC_evsplatib, // Vector Splat Immediate Byte (to Accumulator) PPC_evsplatibe, // Vector Splat Immediate Byte Even (to Accumulator) PPC_evsplatih, // Vector Splat Immediate Halfword (to Accumulator) PPC_evsplatihe, // Vector Splat Immediate Halfword Even (to Accumulator) PPC_evsplatid, // Vector Splat Immediate Doubleword (to Accumulator) PPC_evsplatia, // Vector Splat Immediate (to Accumulator) PPC_evsplatiea, // Vector Splat Immediate Even (to Accumulator) PPC_evsplatiba, // Vector Splat Immediate Byte (to Accumulator) PPC_evsplatibea, // Vector Splat Immediate Byte Even (to Accumulator) PPC_evsplatiha, // Vector Splat Immediate Halfword (to Accumulator) PPC_evsplatihea, // Vector Splat Immediate Halfword Even (to Accumulator) PPC_evsplatida, // Vector Splat Immediate Doubleword (to Accumulator) PPC_evsplatfio, // Vector Splat Fractional Immediate Odd (to Accumulator) PPC_evsplatfib, // Vector Splat Fractional Immediate Byte (to Accumulator) PPC_evsplatfibo, // Vector Splat Fractional Immediate Byte Odd (to Accumulator) PPC_evsplatfih, // Vector Splat Fractional Immediate Halfword (to Accumulator) PPC_evsplatfiho, // Vector Splat Fractional Immediate Halfword Odd (to Accumulator) PPC_evsplatfid, // Vector Splat Fractional Immediate Doubleword (to Accumulator) PPC_evsplatfia, // Vector Splat Fractional Immediate (to Accumulator) PPC_evsplatfioa, // Vector Splat Fractional Immediate Odd (to Accumulator) PPC_evsplatfiba, // Vector Splat Fractional Immediate Byte (to Accumulator) PPC_evsplatfiboa, // Vector Splat Fractional Immediate Byte Odd (to Accumulator) PPC_evsplatfiha, // Vector Splat Fractional Immediate Halfword (to Accumulator) PPC_evsplatfihoa, // Vector Splat Fractional Immediate Halfword Odd (to Accumulator) PPC_evsplatfida, // Vector Splat Fractional Immediate Doubleword (to Accumulator) PPC_evcmpgtdu, // Vector Compare Greater Than Doubleword Unsigned PPC_evcmpgtds, // Vector Compare Greater Than Doubleword Signed PPC_evcmpltdu, // Vector Compare Less Than Doubleword Unsigned PPC_evcmpltds, // Vector Compare Less Than Doubleword Signed PPC_evcmpeqd, // Vector Compare Equal Doubleword PPC_evswapbhilo, // Vector Swap Bytes High/Low PPC_evswapblohi, // Vector Swap Bytes Low/High PPC_evswaphhilo, // Vector Swap Halfwords High/Low PPC_evswaphlohi, // Vector Swap Halfwords Low/High PPC_evswaphe, // Vector Swap Halfwords Even PPC_evswaphhi, // Vector Swap Halfwords High PPC_evswaphlo, // Vector Swap Halfwords Low PPC_evswapho, // Vector Swap Halfwords Odd PPC_evinsb, // Vector Insert Byte PPC_evxtrb, // Vector Extract Byte PPC_evsplath, // Vector Splat Halfword PPC_evsplatb, // Vector Splat Byte PPC_evinsh, // Vector Insert Halfword PPC_evclrbe, // Vector Clear Bytes Even PPC_evclrbo, // Vector Clear Bytes Odd PPC_evxtrh, // Vector Extract Halfword PPC_evclrh, // Vector Clear Halfwords PPC_evselbitm0, // Vector Select Bit if Mask is 0 PPC_evselbitm1, // Vector Select Bit if Mask is 1 PPC_evselbit, // Vector Select Bit PPC_evperm, // Vector Permute PPC_evperm2, // Vector Permute (form 2) PPC_evperm3, // Vector Permute (form 3) PPC_evxtrd, // Vector Extract Doubleword PPC_evsrbu, // Vector Shift Right Byte Unsigned PPC_evsrbs, // Vector Shift Right Byte Signed PPC_evsrbiu, // Vector Shift Right Byte Immediate Unsigned PPC_evsrbis, // Vector Shift Right Byte Immediate Signed PPC_evslb, // Vector Shift Left Byte PPC_evrlb, // Vector Rotate Left Byte PPC_evslbi, // Vector Shift Left Byte Immediate PPC_evrlbi, // Vector Rotate Left Byte Immediate PPC_evsrhu, // Vector Shift Right Halfword Unsigned PPC_evsrhs, // Vector Shift Right Halfword Signed PPC_evsrhiu, // Vector Shift Right Halfword Immediate Unsigned PPC_evsrhis, // Vector Shift Right Halfword Immediate Signed PPC_evslh, // Vector Shift Left Halfword PPC_evrlh, // Vector Rotate Left Halfword PPC_evslhi, // Vector Shift Left Halfword Immediate PPC_evrlhi, // Vector Rotate Left Halfword Immediate PPC_evsru, // Vector Shift Right Unsigned PPC_evsrs, // Vector Shift Right Signed PPC_evsriu, // Vector Shift Right Immediate Unsigned PPC_evsris, // Vector Shift Right Immediate Signed PPC_evlvsl, // Load Vector for Shift Left PPC_evlvsr, // Load Vector for Shift Right PPC_evsroiu, // Vector Shift Right by Octet Immediate Unsigned PPC_evsloi, // Vector Shift Left by Octet Immediate PPC_evsrois, // Vector Shift Right by Octet Immediate Signed PPC_evldbx, // Vector Load Double into Eight Bytes [with Modify] Indexed PPC_evldb, // Vector Load Double into Eight Bytes [with Update] PPC_evlhhsplathx, // Vector Load Halfword into Halfword and Splat Halfwords [with Modify] Indexed PPC_evlhhsplath, // Vector Load Halfword into Halfword and Splat Halfwords [with Update] PPC_evlwbsplatwx, // Vector Load Word as Bytes and Splat Words [with Modify] Indexed PPC_evlwbsplatw, // Vector Load Word as Bytes and Splat Words [with Update] PPC_evlwhsplatwx, // Vector Load Word as Halfwords and Splat Words [with Modify] Indexed PPC_evlwhsplatw, // Vector Load Word as Halfwords and Splat Words [with Update] PPC_evlbbsplatbx, // Vector Load Byte into Byte and Splat Bytes [with Modify] Indexed PPC_evlbbsplatb, // Vector Load Byte into Byte and Splat Bytes [with Update] PPC_evstdbx, // Vector Store Double of Eight Bytes [with Modify] Indexed PPC_evstdb, // Vector Store Double of Eight Bytes [with Update] PPC_evlwbex, // Vector Load Word into Four Bytes Even [with Modify] Indexed PPC_evlwbe, // Vector Load Word into Four Bytes Even [with Update] PPC_evlwboux, // Vector Load Word into Four Bytes Odd Unsigned [with Modify] Indexed PPC_evlwbou, // Vector Load Word into Four Bytes Odd Unsigned [with Update] PPC_evlwbosx, // Vector Load Word into Two Halfwords Odd Signed [with Modify] Indexed PPC_evlwbos, // Vector Load Word into Four Bytes Odd Signed [with Update] PPC_evstwbex, // Vector Store Word of Four Bytes from Even [with Modify] Indexed PPC_evstwbe, // Vector Store Word of Four Bytes from Even [with Update] PPC_evstwbox, // Vector Store Word of Four Bytes from Odd [with Modify] Indexed PPC_evstwbo, // Vector Store Word of Four Bytes from Odd [with Update] PPC_evstwbx, // Vector Store Word of Four Bytes [with Modify] Indexed PPC_evstwb, // Vector Store Word of Four Bytes [with Update] PPC_evsthbx, // Vector Store Halfword of Two Bytes [with Modify] Indexed PPC_evsthb, // Vector Store Halfword of Two Bytes [with Update] PPC_evlddmx, // Vector Load Double Word into Double Word [with Modify] Indexed PPC_evlddu, // Vector Load Double Word into Double Word [with Update] PPC_evldwmx, // Vector Load Double into Two Words [with Modify] Indexed PPC_evldwu, // Vector Load Double into Two Words [with Update] PPC_evldhmx, // Vector Load Double into Four Halfwords [with Modify] Indexed PPC_evldhu, // Vector Load Double into Four Halfwords [with Update] PPC_evldbmx, // Vector Load Double into Eight Bytes [with Modify] Indexed PPC_evldbu, // Vector Load Double into Eight Bytes [with Update] PPC_evlhhesplatmx, // Vector Load Halfword into Halfwords Even and Splat [with Modify] Indexed PPC_evlhhesplatu, // Vector Load Halfword into Halfwords Even and Splat [with Update] PPC_evlhhsplathmx, // Vector Load Halfword into Halfword and Splat Halfwords [with Modify] Indexed PPC_evlhhsplathu, // Vector Load Halfword into Halfword and Splat Halfwords [with Update] PPC_evlhhousplatmx, // Vector Load Halfword into Halfword Odd Unsigned and Splat [with Modify] Indexed PPC_evlhhousplatu, // Vector Load Halfword into Halfword Odd Unsigned and Splat [with Update] PPC_evlhhossplatmx, // Vector Load Halfword into Halfword Odd Signed and Splat [with Modify] Indexed PPC_evlhhossplatu, // Vector Load Halfword into Halfword Odd Signed and Splat [with Update] PPC_evlwhemx, // Vector Load Word into Two Halfwords Even [with Modify] Indexed PPC_evlwheu, // Vector Load Word into Two Halfwords Even [with Update] PPC_evlwbsplatwmx, // Vector Load Word as Bytes and Splat Words [with Modify] Indexed PPC_evlwbsplatwu, // Vector Load Word as Bytes and Splat Words [with Update] PPC_evlwhoumx, // Vector Load Word into Two Halfwords Odd Unsigned [with Modify] Indexed (zero-extended) PPC_evlwhouu, // Vector Load Word into Two Halfwords Odd Unsigned (zero-extended) [with Update] PPC_evlwhosmx, // Vector Load Word into Two Halfwords Odd Signed [with Modify] Indexed (with sign extension) PPC_evlwhosu, // Vector Load Word into Two Halfwords Odd Signed (with sign extension) [with Update] PPC_evlwwsplatmx, // Vector Load Word into Word and Splat [with Modify] Indexed PPC_evlwwsplatu, // Vector Load Word into Word and Splat [with Update] PPC_evlwhsplatwmx, // Vector Load Word as Halfwords and Splat Words [with Modify] Indexed PPC_evlwhsplatwu, // Vector Load Word as Halfwords and Splat Words [with Update] PPC_evlwhsplatmx, // Vector Load Word into Two Halfwords and Splat [with Modify] Indexed PPC_evlwhsplatu, // Vector Load Word into Two Halfwords and Splat [with Update] PPC_evlbbsplatbmx, // Vector Load Byte into Byte and Splat Bytes [with Modify] Indexed PPC_evlbbsplatbu, // Vector Load Byte into Byte and Splat Bytes [with Update] PPC_evstddmx, // Vector Store Double of Double [with Modify] Indexed PPC_evstddu, // Vector Store Double of Double [with Update] PPC_evstdwmx, // Vector Store Double of Two Words [with Modify] Indexed PPC_evstdwu, // Vector Store Double of Two Words [with Update] PPC_evstdhmx, // Vector Store Double of Four Halfwords [with Modify] Indexed PPC_evstdhu, // Vector Store Double of Four Halfwords [with Update] PPC_evstdbmx, // Vector Store Double of Eight Bytes [with Modify] Indexed PPC_evstdbu, // Vector Store Double of Eight Bytes [with Update] PPC_evlwbemx, // Vector Load Word into Four Bytes Even [with Modify] Indexed PPC_evlwbeu, // Vector Load Word into Four Bytes Even [with Update] PPC_evlwboumx, // Vector Load Word into Four Bytes Odd Unsigned [with Modify] Indexed PPC_evlwbouu, // Vector Load Word into Four Bytes Odd Unsigned [with Update] PPC_evlwbosmx, // Vector Load Word into Two Halfwords Odd Signed [with Modify] Indexed PPC_evlwbosu, // Vector Load Word into Four Bytes Odd Signed [with Update] PPC_evstwhemx, // Vector Store Word of Two Halfwords from Even [with Modify] Indexed PPC_evstwheu, // Vector Store Word of Two Halfwords from Even [with Update] PPC_evstwbemx, // Vector Store Word of Four Bytes from Even [with Modify] Indexed PPC_evstwbeu, // Vector Store Word of Four Bytes from Even [with Update] PPC_evstwhomx, // Vector Store Word of Two Halfwords from Odd [with Modify] Indexed PPC_evstwhou, // Vector Store Word of Two Halfwords from Odd [with Update] PPC_evstwbomx, // Vector Store Word of Four Bytes from Odd [with Modify] Indexed PPC_evstwbou, // Vector Store Word of Four Bytes from Odd [with Update] PPC_evstwwemx, // Vector Store Word of Word from Even [with Modify] Indexed PPC_evstwweu, // Vector Store Word of Word from Even [with Update] PPC_evstwbmx, // Vector Store Word of Four Bytes [with Modify] Indexed PPC_evstwbu, // Vector Store Word of Four Bytes [with Update] PPC_evstwwomx, // Vector Store Word of Word from Odd [with Modify] Indexed PPC_evstwwou, // Vector Store Word of Word from Odd [with Update] PPC_evsthbmx, // Vector Store Halfword of Two Bytes [with Modify] Indexed PPC_evsthbu, // Vector Store Halfword of Two Bytes [with Update] PPC_evmhusi, // Vector Multiply Halfword Unsigned, Saturate, Integer PPC_evmhssi, // Vector Multiply Halfword Signed, Saturate, Integer PPC_evmhsusi, // Vector Multiply Halfword Signed by Unsigned, Saturate, Integer PPC_evmhssf, // Vector Multiply Halfword Signed, Saturate, Fractional PPC_evmhumi, // Vector Multiply Halfword Unsigned, Modulo, Integer PPC_evmhssfr, // Vector Multiply Halfword Signed, Saturate, Fractional and Round PPC_evmhesumi, // Vector Multiply Halfwords, Even, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmhosumi, // Vector Multiply Halfwords, Odd, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmbeumi, // Vector Multiply Bytes Even, Unsigned, Modulo, Integer (to Accumulator) PPC_evmbesmi, // Vector Multiply Bytes Even, Signed, Modulo, Integer (to Accumulator) PPC_evmbesumi, // Vector Multiply Bytes Even, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmboumi, // Vector Multiply Bytes Odd, Unsigned, Modulo, Integer (to Accumulator) PPC_evmbosmi, // Vector Multiply Bytes Odd, Signed, Modulo, Integer (to Accumulator) PPC_evmbosumi, // Vector Multiply Bytes Odd, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmhesumia, // Vector Multiply Halfwords, Even, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmhosumia, // Vector Multiply Halfwords, Odd, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmbeumia, // Vector Multiply Bytes Even, Unsigned, Modulo, Integer (to Accumulator) PPC_evmbesmia, // Vector Multiply Bytes Even, Signed, Modulo, Integer (to Accumulator) PPC_evmbesumia, // Vector Multiply Bytes Even, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmboumia, // Vector Multiply Bytes Odd, Unsigned, Modulo, Integer (to Accumulator) PPC_evmbosmia, // Vector Multiply Bytes Odd, Signed, Modulo, Integer (to Accumulator) PPC_evmbosumia, // Vector Multiply Bytes Odd, Signed by Unsigned, Modulo, Integer (to Accumulator) PPC_evmwusiw, // Vector Multiply Word Unsigned, Saturate, Integer Word PPC_evmwssiw, // Vector Multiply Word Signed, Saturate, Integer Word PPC_evmwhssfr, // Vector Multiply Word High Signed, Saturate, Fractional and Round (to Accumulator) PPC_evmwehgsmfr, // Vector Multiply Word Even High Guarded Signed, Modulo, Fractional, Round (to Accumulator) PPC_evmwehgsmf, // Vector Multiply Word Even High Guarded Signed, Modulo, Fractional (to Accumulator) PPC_evmwohgsmfr, // Vector Multiply Word Odd, High, Guarded, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evmwohgsmf, // Vector Multiply Word Odd, High, Guarded, Signed, Modulo, Fractional (to Accumulator) PPC_evmwhssfra, // Vector Multiply Word High Signed, Saturate, Fractional and Round (to Accumulator) PPC_evmwehgsmfra, // Vector Multiply Word Even High Guarded Signed, Modulo, Fractional, Round (to Accumulator) PPC_evmwehgsmfa, // Vector Multiply Word Even High Guarded Signed, Modulo, Fractional (to Accumulator) PPC_evmwohgsmfra, // Vector Multiply Word Odd, High, Guarded, Signed, Modulo, Fractional, Round (to Accumulator) PPC_evmwohgsmfa, // Vector Multiply Word Odd, High, Guarded, Signed, Modulo, Fractional (to Accumulator) PPC_evaddusiaa, // Vector Add Unsigned, Saturate, Integer to Accumulator PPC_evaddssiaa, // Vector Add Signed, Saturate, Integer to Accumulator PPC_evsubfusiaa, // Vector Subtract from (Accumulator) Unsigned, Saturate, Integer to Accumulator PPC_evsubfssiaa, // Vector Subtract from Signed, Saturate, Integer to Accumulator PPC_evaddsmiaa, // Vector Add to Accumulator PPC_evsubfsmiaa, // Vector Subtract from Accumulator to Accumulator PPC_evaddh, // Vector Add Halfwords PPC_evaddhss, // Vector Add Halfwords Signed and Saturate PPC_evsubfh, // Vector Subtract from Halfword PPC_evsubfhss, // Vector Subtract from Halfwords Signed and Saturate PPC_evaddhx, // Vector Add Halfwords Exchanged PPC_evaddhxss, // Vector Add Halfwords Exchanged, Signed and Saturate PPC_evsubfhx, // Vector Subtract from Halfwords Exchanged PPC_evsubfhxss, // Vector Subtract from Halfwords Exchanged, Signed and Saturate PPC_evaddd, // Vector Add Doubleword PPC_evadddss, // Vector Add Doubleword Signed and Saturate PPC_evsubfd, // Vector Subtract from Doubleword PPC_evsubfdss, // Vector Subtract from Doubleword Signed and Saturate PPC_evaddb, // Vector Add Bytes PPC_evaddbss, // Vector Add Bytes Signed and Saturate PPC_evsubfb, // Vector Subtract from Byte PPC_evsubfbss, // Vector Subtract from Byte Signed and Saturate PPC_evaddsubfh, // Vector Add / Subtract from Halfword PPC_evaddsubfhss, // Vector Add / Subtract from Halfword Signed and Saturate PPC_evsubfaddh, // Vector Subtract from / Add Halfwords PPC_evsubfaddhss, // Vector Subtract from / Add Halfwords Signed and Saturate PPC_evaddsubfhx, // Vector Add / Subtract from Halfword Exchanged PPC_evaddsubfhxss, // Vector Add / Subtract from Halfword Exchanged, Signed and Saturate PPC_evsubfaddhx, // Vector Subtract from / Add Halfwords Exchanged PPC_evsubfaddhxss, // Vector Subtract from / Add Halfwords Exchanged, Signed and Saturate PPC_evadddus, // Vector Add Doubleword Unsigned and Saturate PPC_evaddbus, // Vector Add Bytes Unsigned and Saturate PPC_evsubfdus, // Vector Subtract from Doubleword Unsigned and Saturate PPC_evsubfbus, // Vector Subtract from Byte Unsigned and Saturate PPC_evaddwus, // Vector Add Word Unsigned and Saturate PPC_evaddwxus, // Vector Add Word Exchanged Unsigned and Saturate PPC_evsubfwus, // Vector Subtract from Word Unsigned and Saturate PPC_evsubfwxus, // Vector Subtract from Word Exchanged Unsigned and Saturate PPC_evadd2subf2h, // Vector Add Upper 2 and Subtract from Lower 2 Halfwords PPC_evadd2subf2hss, // Vector Add Upper 2 and Subtract from Lower 2 Halfwords Signed and Saturate PPC_evsubf2add2h, // Vector Subtract from Upper 2 / Add Lower 2 Halfwords PPC_evsubf2add2hss, // Vector Subtract from Upper 2 / Add Lower 2 Halfwords Signed and Saturate PPC_evaddhus, // Vector Add Halfwords Unsigned and Saturate PPC_evaddhxus, // Vector Add Halfwords Exchanged, Unsigned and Saturate PPC_evsubfhus, // Vector Subtract from Halfwords Unsigned and Saturate PPC_evsubfhxus, // Vector Subtract from Halfwords Exchanged, Unsigned and Saturate PPC_evaddwss, // Vector Add Word Signed and Saturate PPC_evsubfwss, // Vector Subtract from Word Signed and Saturate PPC_evaddwx, // Vector Add Word Exchanged PPC_evaddwxss, // Vector Add Word Exchanged Signed and Saturate PPC_evsubfwx, // Vector Subtract from Word Exchanged PPC_evsubfwxss, // Vector Subtract from Word Exchanged Signed and Saturate PPC_evaddsubfw, // Vector Add / Subtract from Word PPC_evaddsubfwss, // Vector Add / Subtract from Word Signed and Saturate PPC_evsubfaddw, // Vector Subtract from / Add Word PPC_evsubfaddwss, // Vector Subtract from / Add Word Signed and Saturate PPC_evaddsubfwx, // Vector Add / Subtract from Word Exchanged PPC_evaddsubfwxss, // Vector Add / Subtract from Word Exchanged Signed and Saturate PPC_evsubfaddwx, // Vector Subtract from / Add Word Exchanged PPC_evsubfaddwxss, // Vector Subtract from / Add Word Exchanged Signed and Saturate PPC_evmar, // Store Accumulator PPC_evsumwu, // Vector Sum of Words Unsigned (to Accumulator) PPC_evsumws, // Vector Sum of Words Signed (to Accumulator) PPC_evsum4bu, // Vector Sum of 4 Bytes UnsIgned (to Accumulator) PPC_evsum4bs, // Vector Sum of 4 Bytes SIgned (to Accumulator) PPC_evsum2hu, // Vector Sum of 2 Halfwords Unsigned (to Accumulator) PPC_evsum2hs, // Vector Sum of 2 Halfwords Signed (to Accumulator) PPC_evdiff2his, // Vector Difference of 2 Halfwords Interleaved Signed (to Accumulator) PPC_evsum2his, // Vector Sum of 2 Halfwords Interleaved Signed (to Accumulator) PPC_evsumwua, // Vector Sum of Words Unsigned (to Accumulator) PPC_evsumwsa, // Vector Sum of Words Signed (to Accumulator) PPC_evsum4bua, // Vector Sum of 4 Bytes UnsIgned (to Accumulator) PPC_evsum4bsa, // Vector Sum of 4 Bytes SIgned (to Accumulator) PPC_evsum2hua, // Vector Sum of 2 Halfwords Unsigned (to Accumulator) PPC_evsum2hsa, // Vector Sum of 2 Halfwords Signed (to Accumulator) PPC_evdiff2hisa, // Vector Difference of 2 Halfwords Interleaved Signed (to Accumulator) PPC_evsum2hisa, // Vector Sum of 2 Halfwords Interleaved Signed (to Accumulator) PPC_evsumwuaa, // Vector Sum of Words Unsigned and Accumulate PPC_evsumwsaa, // Vector Sum of Words Signed and Accumulate PPC_evsum4buaaw, // Vector Sum of 4 Bytes Unsigned and Accumulate into Words PPC_evsum4bsaaw, // Vector Sum of 4 Bytes Signed and Accumulate into Words PPC_evsum2huaaw, // Vector Sum of 2 Halfwords Unsigned and Accumulate into Words PPC_evsum2hsaaw, // Vector Sum of 2 Halfwords Signed and Accumulate into Words PPC_evdiff2hisaaw, // Vector Difference of 2 Halfwords Interleaved Signed and Accumulate into Words PPC_evsum2hisaaw, // Vector Sum of 2 Halfwords Interleaved Signed and Accumulate into Words PPC_evdivwsf, // Vector Divide Word Signed Fractional PPC_evdivwuf, // Vector Divide Word Unsigned Fractional PPC_evdivs, // Vector Divide Signed PPC_evdivu, // Vector Divide Unsigned PPC_evaddwegsi, // Vector Add Word Even Guarded Signed Integer PPC_evaddwegsf, // Vector Add Word Even Guarded Signed Fraction PPC_evsubfwegsi, // Vector Subtract from Word Even Guarded Signed Integer PPC_evsubfwegsf, // Vector Subtract from Word Even Guarded Signed Fraction PPC_evaddwogsi, // Vector Add Word Odd Guarded Signed Integer PPC_evaddwogsf, // Vector Add Word Odd Guarded Signed Fraction PPC_evsubfwogsi, // Vector Subtract from Word Odd Guarded Signed Integer PPC_evsubfwogsf, // Vector Subtract from Word Odd Guarded Signed Fraction PPC_evaddhhiuw, // Vector Add Halfwords High Unsigned to Words PPC_evaddhhisw, // Vector Add Halfwords High Signed to Words PPC_evsubfhhiuw, // Vector Subtract from Halfwords High Unsigned to Words PPC_evsubfhhisw, // Vector Subtract from Halfwords High Signed to Words PPC_evaddhlouw, // Vector Add Halfwords Low Unsigned to Words PPC_evaddhlosw, // Vector Add Halfwords Low Signed to Words PPC_evsubfhlouw, // Vector Subtract from Halfwords Low Unsigned to Words PPC_evsubfhlosw, // Vector Subtract from Halfwords Low Signed to Words PPC_evmhesusiaaw, // Vector Multiply Halfwords, Even, Signed by Unsigned, Saturate, Integer and Accumulate into Words PPC_evmhosusiaaw, // Vector Multiply Halfwords, Odd, Signed by Unsigned, Saturate, Integer and Accumulate into Words PPC_evmhesumiaaw, // Vector Multiply Halfwords, Even, Signed by Unsigned, Modulo, Integer and Accumulate into Words PPC_evmhosumiaaw, // Vector Multiply Halfwords, Odd, Signed by Unsigned, Modulo, Integer and Accumulate into Words PPC_evmbeusiaah, // Vector Multiply Byte Even, Unsigned, Saturate, Integer and Accumulate Halfwords PPC_evmbessiaah, // Vector Multiply Byte Even, Signed, Saturate, Integer and Accumulate Halfwords PPC_evmbesusiaah, // Vector Multiply Byte Even, Signed by Unsigned, Saturate, Integer and Accumulate Halfwords PPC_evmbousiaah, // Vector Multiply Byte Odd, Unsigned, Saturate, Integer and Accumulate Halfwords PPC_evmbossiaah, // Vector Multiply Byte Odd, Signed, Saturate, Integer and Accumulate Halfwords PPC_evmbosusiaah, // Vector Multiply Byte Odd, Signed by Unsigned, Saturate, Integer and Accumulate Halfwords PPC_evmbeumiaah, // Vector Multiply Byte Even, Unsigned, Modulo, Integer and Accumulate Halfwords PPC_evmbesmiaah, // Vector Multiply Byte Even, Signed, Modulo, Integer and Accumulate Halfwords PPC_evmbesumiaah, // Vector Multiply Byte Even, Signed by Unsigned, Modulo, Integer and Accumulate Halfwords PPC_evmboumiaah, // Vector Multiply Byte Odd, Unsigned, Modulo, Integer and Accumulate Halfwords PPC_evmbosmiaah, // Vector Multiply Byte Odd, Signed, Modulo, Integer and Accumulate Halfwords PPC_evmbosumiaah, // Vector Multiply Byte Odd, Signed by Unsigned, Modulo, Integer and Accumulate Halfwords PPC_evmwlusiaaw3, // Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate in Words 3 operand PPC_evmwlssiaaw3, // Vector Multiply Word Low Signed, Saturate, Integer and Accumulate in Words PPC_evmwhssfraaw3, // Vector Multiply Word High Signed, Saturate, Fractional, Round and Accumulate into Words 3 operand PPC_evmwhssfaaw3, // Vector Multiply Word High Signed, Saturate, Fractional and Accumulate into Words 3 operand PPC_evmwhssfraaw, // Vector Multiply Word High Signed, Saturate, Fractional, Round and Accumulate into Words PPC_evmwhssfaaw, // Vector Multiply Word High Signed, Saturate, Fractional and Accumulate into Words PPC_evmwlumiaaw3, // Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate in Words 3 operand PPC_evmwlsmiaaw3, // Vector Multiply Word Low Signed, Modulo, Integer and Accumulate in Words 3 operand PPC_evmwusiaa, // Vector Multiply Word Unsigned, Saturate, Integer and Accumulate PPC_evmwssiaa, // Vector Multiply Word Signed, Saturate, Integer and Accumulate PPC_evmwehgsmfraa, // Vector Multiply Word Even High Guarded Signed, Modulo, Fractional, Round and Accumulate PPC_evmwehgsmfaa, // Vector Multiply Word Even High Guarded Signed, Modulo, Fractional and Accumulate PPC_evmwohgsmfraa, // Vector Multiply Word Odd High Guarded Signed, Modulo, Fractional, Round and Accumulate PPC_evmwohgsmfaa, // Vector Multiply Word Odd High Guarded Signed, Modulo, Fractional and Accumulate PPC_evmhesusianw, // Vector Multiply Halfwords, Even, Signed by Unsigned, Saturate, Integer and Accumulate Negative into Words PPC_evmhosusianw, // Vector Multiply Halfwords, Odd, Signed by Unsigned, Saturate, Integer and Accumulate Negative into Words PPC_evmhesumianw, // Vector Multiply Halfwords, Even, Signed by Unsigned, Modulo, Integer and Accumulate Negative into Words PPC_evmhosumianw, // Vector Multiply Halfwords, Odd, Signed by Unsigned, Modulo, Integer and Accumulate Negative into Words PPC_evmbeusianh, // Vector Multiply Byte Even, Unsigned, Saturate, Integer and Accumulate Negative Halfwords PPC_evmbessianh, // Vector Multiply Byte Even, Signed, Saturate, Integer and Accumulate Negative Halfwords PPC_evmbesusianh, // Vector Multiply Byte Even, Signed by Unsigned, Saturate, Integer and Accumulate Negative Halfwords PPC_evmbousianh, // Vector Multiply Byte Odd, Unsigned, Saturate, Integer and Accumulate Negative Halfwords PPC_evmbossianh, // Vector Multiply Byte Odd, Signed, Saturate, Integer and Accumulate Negative Halfwords PPC_evmbosusianh, // Vector Multiply Byte Odd, Signed by Unsigned, Saturate, Integer and Accumulate Negative Halfwords PPC_evmbeumianh, // Vector Multiply Byte Even, Unsigned, Modulo, Integer and Accumulate Negative Halfwords PPC_evmbesmianh, // Vector Multiply Byte Even, Signed, Modulo, Integer and Accumulate Negative Halfwords PPC_evmbesumianh, // Vector Multiply Byte Even, Signed by Unsigned, Modulo, Integer and Accumulate Negative Halfwords PPC_evmboumianh, // Vector Multiply Byte Odd, Unsigned, Modulo, Integer and Accumulate Negative Halfwords PPC_evmbosmianh, // Vector Multiply Byte Odd, Signed, Modulo, Integer and Accumulate Negative Halfwords PPC_evmbosumianh, // Vector Multiply Byte Odd, Signed by Unsigned, Modulo, Integer and Accumulate Negative Halfwords PPC_evmwlusianw3, // Vector Multiply Word Low Unsigned, Saturate, Integer and Accumulate Negative in Words 3 operand PPC_evmwlssianw3, // Vector Multiply Word Low Signed, Saturate, Integer and Accumulate Negative in Words 3 operand PPC_evmwhssfranw3, // Vector Multiply Word High Signed, Saturate, Fractional, Round, and Accumulate Negative into Words 3 operand PPC_evmwhssfanw3, // Vector Multiply Word High Signed, Saturate, Fractional and Accumulate Negative into Words 3 operand PPC_evmwhssfranw, // Vector Multiply Word High Signed, Saturate, Fractional, Round, and Accumulate Negative into Words PPC_evmwhssfanw, // Vector Multiply Word High Signed, Saturate, Fractional and Accumulate Negative into Words PPC_evmwlumianw3, // Vector Multiply Word Low Unsigned, Modulo, Integer and Accumulate Negative in Words 3 operand PPC_evmwlsmianw3, // Vector Multiply Word Low Signed, Modulo, Integer and Accumulate Negative in Words 3 operand PPC_evmwusian, // Vector Multiply Word Unsigned, Saturate, Integer and Accumulate Negative PPC_evmwssian, // Vector Multiply Word Signed, Saturate, Integer and Accumulate Negative PPC_evmwehgsmfran, // Vector Multiply Word Even High, Guarded, Signed, Modulo, Fractional, Round and Accumulate Negative PPC_evmwehgsmfan, // Vector Multiply Word Even High, Guarded, Signed, Modulo, Fractional and Accumulate Negative PPC_evmwohgsmfran, // Vector Multiply Word Odd, High, Guarded, Signed, Modulo, Fractional, Round and Accumulate Negative PPC_evmwohgsmfan, // Vector Multiply Word Odd, High, Guarded, Signed, Modulo, Fractional and Accumulate Negative PPC_evseteqb, // Vector Set if Equal Byte [and Record] PPC_evseteqh, // Vector Set if Equal Halfword [and Record] PPC_evseteqw, // Vector Set if Equal Word [and Record] PPC_evsetgthu, // Vector Set if Greater Than Halfword UnsIgned [and Record] PPC_evsetgths, // Vector Set if Greater Than Halfword SIgned [and Record] PPC_evsetgtwu, // Vector Set if Greater Than Word Unsigned [and Record] PPC_evsetgtws, // Vector Set if Greater Than Word Signed [and Record] PPC_evsetgtbu, // Vector Set if Greater Than Byte Unsigned [and Record] PPC_evsetgtbs, // Vector Set if Greater Than Byte SIgned [and Record] PPC_evsetltbu, // Vector Set if Less Than Byte Unsigned [and Record] PPC_evsetltbs, // Vector Set if Less Than Byte SIgned [and Record] PPC_evsetlthu, // Vector Set if Less Than Halfword UnsIgned [and Record] PPC_evsetlths, // Vector Set if Less Than Halfword SIgned [and Record] PPC_evsetltwu, // Vector Set if Less Than Word Unsigned [and Record] PPC_evsetltws, // Vector Set if Less Than Word Signed [and Record] PPC_evsaduw, // Vector Sum of Absolute Differences of Unsigned Words (to Accumulator) PPC_evsadsw, // Vector Sum of Absolute Differences of Signed Words (to Accumulator) PPC_evsad4ub, // Vector Sum of Absolute Differences of 4 Unsigned Bytes (to Accumulator) PPC_evsad4sb, // Vector Sum of Absolute Differences of 4 Signed Bytes (to Accumulator) PPC_evsad2uh, // Vector Sum of Absolute Differences of 2 Unsigned Halfwords (to Accumulator) PPC_evsad2sh, // Vector Sum of Absolute Differences of 2 Signed Halfwords (to Accumulator) PPC_evsaduwa, // Vector Sum of Absolute Differences of Unsigned Words (to Accumulator) PPC_evsadswa, // Vector Sum of Absolute Differences of Signed Words (to Accumulator) PPC_evsad4uba, // Vector Sum of Absolute Differences of 4 Unsigned Bytes (to Accumulator) PPC_evsad4sba, // Vector Sum of Absolute Differences of 4 Signed Bytes (to Accumulator) PPC_evsad2uha, // Vector Sum of Absolute Differences of 2 Unsigned Halfwords (to Accumulator) PPC_evsad2sha, // Vector Sum of Absolute Differences of 2 Signed Halfwords (to Accumulator) PPC_evabsdifuw, // Vector Absolute Difference of Unsigned Words PPC_evabsdifsw, // Vector Absolute Difference of Signed Words PPC_evabsdifub, // Vector Absolute Difference of Unsigned Bytes PPC_evabsdifsb, // Vector Absolute Difference of Signed Bytes PPC_evabsdifuh, // Vector Absolute Difference of Unsigned Halfwords PPC_evabsdifsh, // Vector Absolute Difference of Signed Halfwords PPC_evsaduwaa, // Vector Sum of Absolute Differences of Unsigned Words and Accumulate PPC_evsadswaa, // Vector Sum of Absolute Differences of Signed Words and Accumulate PPC_evsad4ubaaw, // Vector Sum of Absolute Differences of 4 Unsigned Bytes and Accumulate into Words PPC_evsad4sbaaw, // Vector Sum of Absolute Differences of 4 Signed Bytes and Accumulate into Words PPC_evsad2uhaaw, // Vector Sum of Absolute Differences of 2 Unsigned Halfwords and Accumulate into Words PPC_evsad2shaaw, // Vector Sum of Absolute Differences of 2 Signed Halfwords and Accumulate into Words PPC_evpkshubs, // Vector Pack Signed Halfwords to Unsigned Bytes and Saturate PPC_evpkshsbs, // Vector Pack Signed Halfwords to Signed Bytes and Saturate PPC_evpkswuhs, // Vector Pack Signed Words to Unsigned Halfwords and Saturate PPC_evpkswshs, // Vector Pack Signed Words to Signed Halfwords and Saturate PPC_evpkuhubs, // Vector Pack Unsigned Halfwords to Unsigned Bytes and Saturate PPC_evpkuwuhs, // Vector Pack Unsigned Words to Unsigned Halfwords and Saturate PPC_evpkswshilvs, // Vector Pack Signed Words to Signed Halfwords Interleaved and Saturate PPC_evpkswgshefrs, // Vector Pack Signed Words Guarded to Signed Halfwords Even Fractional Round and Saturate PPC_evpkswshfrs, // Vector Pack Signed Words to Signed Halfwords Fractional, Round and Saturate PPC_evpkswshilvfrs, // Vector Pack Signed Words to Signed Halfwords Interleaved, Fractional, Round and Saturate PPC_evpksdswfrs, // Vector Pack Signed Doublewords to Signed Words Fractional, Round and Saturate PPC_evpksdshefrs, // Vector Pack Signed Doublewords to Signed Halfwords Even, Fractional, Round, and Saturate PPC_evpkuduws, // Vector Pack Unsigned Doublewords to Unsigned Words and Saturate PPC_evpksdsws, // Vector Pack Signed Doublewords to Signed Words and Saturate PPC_evpkswgswfrs, // Vector Pack Signed Words Guarded to Signed Words Fractional Round and Saturate PPC_evilveh, // Vector Interleave Even Halfwords PPC_evilveoh, // Vector Interleave Even/Odd Halfwords PPC_evilvhih, // Vector Interleave High Halfwords PPC_evilvhiloh, // Vector Interleave High/Low Halfwords PPC_evilvloh, // Vector Interleave Low Halfwords PPC_evilvlohih, // Vector Interleave Low/High Halfwords PPC_evilvoeh, // Vector Interleave Odd/Even Halfwords PPC_evilvoh, // Vector Interleave Odd Halfwords PPC_evdlveb, // Vector De-interleave Even Bytes PPC_evdlveh, // Vector De-interleave Even Halfwords PPC_evdlveob, // Vector De-interleave Even/Odd Bytes PPC_evdlveoh, // Vector De-interleave Even/Odd Halfwords PPC_evdlvob, // Vector De-interleave Odd Bytes PPC_evdlvoh, // Vector De-interleave Odd Halfwords PPC_evdlvoeb, // Vector De-interleave Odd/Even Bytes PPC_evdlvoeh, // Vector De-interleave Odd/Even Halfwords PPC_evmaxbu, // Vector Maximum Byte Unsigned PPC_evmaxbs, // Vector Maximum Byte Signed PPC_evmaxhu, // Vector Maximum Halfword Unsigned PPC_evmaxhs, // Vector Maximum Halfword Signed PPC_evmaxwu, // Vector Maximum Word Unsigned PPC_evmaxws, // Vector Maximum Word Signed PPC_evmaxdu, // Vector Maximum Doubleword Unsigned PPC_evmaxds, // Vector Maximum Doubleword Signed PPC_evminbu, // Vector Minimum Byte Unsigned PPC_evminbs, // Vector Minimum Byte Signed PPC_evminhu, // Vector Minimum Halfword Unsigned PPC_evminhs, // Vector Minimum Halfword Signed PPC_evminwu, // Vector Minimum Word Unsigned PPC_evminws, // Vector Minimum Word Signed PPC_evmindu, // Vector Minimum Doubleword Unsigned PPC_evminds, // Vector Minimum Doubleword Signed PPC_evavgwu, // Vector Average Word Unsigned PPC_evavgws, // Vector Average Word Signed PPC_evavgbu, // Vector Average Byte Unsigned PPC_evavgbs, // Vector Average Byte Signed PPC_evavghu, // Vector Average Halfword Unsigned PPC_evavghs, // Vector Average Halfword Signed PPC_evavgdu, // Vector Average Doubleword Unsigned PPC_evavgds, // Vector Average Doubleword Signed PPC_evavgwur, // Vector Average Word Unsigned with Round PPC_evavgwsr, // Vector Average Word Signed with Round PPC_evavgbur, // Vector Average Byte Unsigned with Round PPC_evavgbsr, // Vector Average Byte Signed with Round PPC_evavghur, // Vector Average Halfword Unsigned with Round PPC_evavghsr, // Vector Average Halfword Signed with Round PPC_evavgdur, // Vector Average Doubleword Unsigned with Round PPC_evavgdsr, // Vector Average Doubleword Signed with Round // Some simplifications that were missed previously PPC_tdui, // Trap Doubleword Unconditionally with Immediate PPC_tdu, // Trap Doubleword Unconditionally PPC_twui, // Trap Word Unconditionally with Immediate PPC_twu, // Trap Word Unconditionally // Power ISA 2.07 PPC_bctar, // Branch Conditional to Branch Target Address Register PPC_clrbhrb, // Clear BHRB PPC_mfbhrbe, // Move From Branch History Rolling Buffer PPC_mtsle, // Move To Split Little Endian PPC_mfvsrd, // Move From VSR Doubleword PPC_mfvsrwz, // Move From VSR Word and Zero PPC_mtvsrd, // Move To VSR Doubleword PPC_mtvsrwa, // Move To VSR Word Algebraic PPC_mtvsrwz, // Move To VSR Word and Zero PPC_fmrgew, // Floating Merge Even Word PPC_fmrgow, // Floating Merge Odd Word PPC_vpksdss, // Vector Pack Signed Doubleword Signed Saturate PPC_vpksdus, // Vector Pack Signed Doubleword Unsigned Saturate PPC_vpkudus, // Vector Pack Unsigned Doubleword Unsigned Saturate PPC_vpkudum, // Vector Pack Unsigned Doubleword Unsigned Modulo PPC_vupkhsw, // Vector Unpack High Signed Word PPC_vupklsw, // Vector Unpack Low Signed Word PPC_vmrgew, // Vector Merge Even Word PPC_vmrgow, // Vector Merge Odd Word PPC_vaddudm, // Vector Add Unsigned Doubleword Modulo PPC_vadduqm, // Vector Add Unsigned Quadword Modulo PPC_vaddeuqm, // Vector Add Extended Unsigned Quadword Modulo PPC_vaddcuq, // Vector Add & write Carry Unsigned Quadword PPC_vaddecuq, // Vector Add Extended & write Carry Unsigned Quadword PPC_vsubudm, // Vector Subtract Unsigned Doubleword Modulo PPC_vsubuqm, // Vector Subtract Unsigned Quadword Modulo PPC_vsubeuqm, // Vector Subtract Extended Unsigned Quadword Modulo PPC_vsubcuq, // Vector Subtract & write Carry Unsigned Quadword PPC_vsubecuq, // Vector Subtract Extended & write Carry Unsigned Quadword PPC_vmulesw, // Vector Multiply Even Signed Word PPC_vmuleuw, // Vector Multiply Even Unsigned Word PPC_vmulosw, // Vector Multiply Odd Signed Word PPC_vmulouw, // Vector Multiply Odd Unsigned Word PPC_vmuluwm, // Vector Multiply Unsigned Word Modulo PPC_vmaxsd, // Vector Maximum Signed Doubleword PPC_vmaxud, // Vector Maximum Unsigned Doubleword PPC_vminsd, // Vector Minimum Signed Doubleword PPC_vminud, // Vector Minimum Unsigned Doubleword PPC_vcmpequd, // Vector Compare Equal To Unsigned Doubleword PPC_vcmpgtsd, // Vector Compare Greater Than Signed Doubleword PPC_vcmpgtud, // Vector Compare Greater Than Unsigned Doubleword PPC_veqv, // Vector Equivalence PPC_vnand, // Vector NAND PPC_vorc, // Vector OR with Complement PPC_vrld, // Vector Rotate Left Doubleword PPC_vsld, // Vector Shift Left Doubleword PPC_vsrd, // Vector Shift Right Doubleword PPC_vsrad, // Vector Shift Right Algebraic Doubleword PPC_vcipher, // Vector AES Cipher PPC_vcipherlast, // Vector AES Cipher Last PPC_vncipher, // Vector AES Inverse Cipher PPC_vncipherlast, // Vector AES Inverse Cipher Last PPC_vsbox, // Vector AES S-Box PPC_vshasigmad, // Vector SHA-512 Sigma Doubleword PPC_vshasigmaw, // Vector SHA-256 Sigma Word PPC_vpmsumb, // Vector Polynomial Multiply-Sum Byte PPC_vpmsumd, // Vector Polynomial Multiply-Sum Doubleword PPC_vpmsumh, // Vector Polynomial Multiply-Sum Halfword PPC_vpmsumw, // Vector Polynomial Multiply-Sum Word PPC_vpermxor, // Vector Permute and Exclusive-OR PPC_vgbbd, // Vector Gather Bits by Byte by Doubleword PPC_vclzb, // Vector Count Leading Zeros Byte PPC_vclzh, // Vector Count Leading Zeros Halfword PPC_vclzw, // Vector Count Leading Zeros Word PPC_vclzd, // Vector Count Leading Zeros Doubleword PPC_vpopcntb, // Vector Population Count Byte PPC_vpopcntd, // Vector Population Count Doubleword PPC_vpopcnth, // Vector Population Count Halfword PPC_vpopcntw, // Vector Population Count Word PPC_vbpermq, // Vector Bit Permute Quadword PPC_bcdadd, // Decimal Add Modulo PPC_bcdsub, // Decimal Subtract Modulo PPC_lxsiwax, // Load VSX Scalar as Integer Word Algebraic Indexed PPC_lxsspx, // Load VSX Scalar Single-Precision Indexed PPC_lxsiwzx, // Load VSX Scalar as Integer Word and Zero Indexed PPC_stxsiwx, // Store VSX Scalar as Integer Word Indexed PPC_stxsspx, // Store VSR Scalar Word Indexed PPC_xsaddsp, // VSX Scalar Add Single-Precision PPC_xscvdpspn, // VSX Scalar Convert Double-Precision to Single-Precision format Non-signalling PPC_xscvspdpn, // Scalar Convert Single-Precision to Double-Precision format Non-signalling PPC_xscvsxdsp, // VSX Scalar Convert Signed Fixed-Point Doubleword to Single-Precision PPC_xscvuxdsp, // VSX Scalar Convert Unsigned Fixed-Point Doubleword to Single-Precision PPC_xsdivsp, // VSX Scalar Divide Single-Precision PPC_xsmaddasp, // VSX Scalar Multiply-Add Type-A Single-Precision PPC_xsmaddmsp, // VSX Scalar Multiply-Add Type-M Single-Precision PPC_xsmsubasp, // VSX Scalar Multiply-Subtract Type-A Single-Precision PPC_xsmsubmsp, // VSX Scalar Multiply-Subtract Type-M Single-Precision PPC_xsmulsp, // VSX Scalar Multiply Single-Precision PPC_xsnmaddasp, // VSX Scalar Negative Multiply-Add Type-A Single-Precision PPC_xsnmaddmsp, // VSX Scalar Negative Multiply-Add Type-M Single-Precision PPC_xsnmsubasp, // VSX Scalar Negative Multiply-Subtract Type-A Single-Precision PPC_xsnmsubmsp, // VSX Scalar Negative Multiply-Subtract Type-M Single-Precision PPC_xsresp, // VSX Scalar Reciprocal Estimate Single-Precision PPC_xsrsp, // VSX Scalar Round to Single-Precision PPC_xsrsqrtesp, // VSX Scalar Reciprocal Square Root Estimate Single-Precision PPC_xssqrtsp, // VSX Scalar Square Root Single-Precision PPC_xssubsp, // VSX Scalar Subtract Single-Precision PPC_xxleqv, // VSX Logical Equivalence PPC_xxlnand, // VSX Logical NAND PPC_xxlorc, // VSX Logical OR with Complement PPC_lqarx, // Load Quadword And Reserve Indexed PPC_stqcx, // Store Quadword Conditional Indexed and record CR0 PPC_tbegin, // Transaction Begin PPC_tend, // Transaction End PPC_tabort, // Transaction Abort PPC_tabortwc, // Transaction Abort Word Conditional PPC_tabortwci, // Transaction Abort Word Conditional Immediate PPC_tabortdc, // Transaction Abort Doubleword Conditional PPC_tabortdci, // Transaction Abort Doubleword Conditional Immediate PPC_tsr, // Transaction Suspend or Resume PPC_tcheck, // Transaction Check PPC_rfebb, // Return from Event Based Branch PPC_treclaim, // Transaction Reclaim PPC_trechkpt, // Transaction Recheckpoint PPC_msgsndp, // Message Send Privileged PPC_msgclrp, // Message Clear Privileged PPC_dcblq, // Data Cache Block Lock Query PPC_icblq, // Instruction Cache Block Lock Query // Simplifications for Power ISA 2.07 PPC_vmr, // Vector Move Register PPC_vnot, // Vector Complement Register PPC_tendall, // Transaction End All PPC_tsuspend, // Transaction Suspend PPC_tresume, // Transaction Resume PPC_mtppr, // Move To Program Priority Register PPC_mfppr, // Move From Program Priority Register PPC_mtppr32, // Move To Program Priority Register 32-Bit PPC_mfppr32, // Move From Program Priority Register 32-Bit PPC_mtic, // Move To IC PPC_mfic, // Move From IC PPC_mtvtb, // Move to VTB PPC_mfvtb, // Move From VTB PPC_miso, // "or" Cache Control Hint PPC_mdoio, // "or" Shared Resource Hint PPC_mdoom, // "or" Shared Resource Hint PPC_yield, // "or" Shared Resource Hint // these are mentioned in the Power ISA 2.07 document but not implemented by // binutils; since they are just simplifications better to ignore them than to // emit "weird" mnemonics // PPC_mtuamr, // Move To Authority Mask Register // PPC_mfuamr, // Move From Authority Mask Register // PPC_dcbtct, // Data Cache Block Touch // PPC_dcbtds, // Data Cache Block Touch // PPC_dcbna, // Data Cache Block Touch // PPC_dcbtctep, // Data Cache Block Touch by External PID // PPC_dcbtdsep, // Data Cache Block Touch by External PID // PPC_dcbflep, // Data Cache Block Flush by External PID // PPC_dcbflpep, // Data Cache Block Flush by External PID // PPC_dcbtstctep, // Data Cache Block Touch for Store by External PID // // these are only needed by assemblers // PPC_lxvx, // Load VSX Vector Doubleword*2 Indexed // PPC_stxvx, // Store VSX Vector Doubleword*2 Indexed // PPC_mffprd, // Move From FPR Doubleword // PPC_mfvrd, // Move From VR Doubleword // PPC_mffprwz, // Move From FPR Word and Zero // PPC_mfvrwz, // Move From VR Word and Zero // PPC_mtfprd, // Move To FPR Doubleword // PPC_mtvrd, // Move To VR Doubleword // PPC_mtfprwa, // Move To FPR Word Algebraic // PPC_mtvrwa, // Move To VR Word Algebraic // PPC_mtfprwz, // Move To FPR Word and Zero // PPC_mtvrwz, // Move To VR Word and Zero // e500 core family, category ISAT, valid for VLE // EREF_RM Rev. 1 (EIS 2.1) 06/2014 PPC_addbss, // Add Byte Signed Saturate PPC_addhss, // Add Halfword Signed Saturate PPC_addwss, // Add Word Signed Saturate PPC_addbus, // Add Byte Unsigned Saturate PPC_addhus, // Add Halfword Unsigned Saturate PPC_addwus, // Add Word Unsigned Saturate PPC_mulhss, // Multiply Halfword SIgned Saturate PPC_mulwss, // Multiply Word SIgned Saturate PPC_mulhus, // Multiply Halfword Unsigned Saturate PPC_mulwus, // Multiply Word Unsigned Saturate PPC_sat, // Saturate PPC_subfbss, // Subtract From Byte Signed Saturate PPC_subfhss, // Subtract From Halfword Signed Saturate PPC_subfwss, // Subtract From Word Signed Saturate PPC_subfbus, // Subtract From Byte Unsigned Saturate PPC_subfhus, // Subtract From Halfword Unsigned Saturate PPC_subfwus, // Subtract From Word Unsigned Saturate // simplified mnemonics for PPC_sat PPC_satsbs, // Saturate PPC_satubs, // Saturate PPC_satsbu, // Saturate PPC_satubu, // Saturate PPC_abssb, // Saturate PPC_absub, // Saturate PPC_satshs, // Saturate PPC_satuhs, // Saturate PPC_satshu, // Saturate PPC_satuhu, // Saturate PPC_abssh, // Saturate PPC_absuh, // Saturate PPC_satsws, // Saturate PPC_satuws, // Saturate PPC_satswu, // Saturate PPC_satuwu, // Saturate PPC_abssw, // Saturate PPC_absuw, // Saturate // e200 Enhanced Debug extension PPC_dni, // Debugger Notify Interrupt // Power ISA Version 3.0 PPC_slbieg, // SLB Invalidate Entry Global PPC_slbiag, // SLB Invalidate All Global PPC_slbsync, // SLB Synchronize PPC_addpcis, // Add PC Immediate Shifted PPC_lnia, // Add PC Immediate Shifted PPC_subpcis, // Add PC Immediate Shifted PPC_cmpeqb, // Compare Equal Byte PPC_cmprb, // Compare Ranged Byte PPC_cnttzw, // Count Trailing Zeros Word PPC_cnttzd, // Count Trailing Zeros Dword PPC_darn, // Deliver A Random Number PPC_extswsli, // Extend-Sign Word and Shift Left PPC_maddhd, // Multiply-Add High Doublewor PPC_maddhdu, // Multiply-Add High Doubleword Unsigned PPC_maddld, // Multiply-Add Low Doubleword PPC_mcrxrx, // Move to CR from XER Extended, PPC_mcrxr disappeared PPC_setb, // Set Boolean PPC_modsd, // Modulo Signed Dword PPC_modud, // Modulo Unsigned Dword PPC_modsw, // Modulo Signed Word PPC_moduw, // Modulo Unsigned Word PPC_mfvsrld, // Move From VSR Lower Doubleword PPC_mtvsrdd, // Move To VSR Double Dword PPC_mtvsrws, // Move To VSR Word & Splat PPC_scv, // System Call Vectored PPC_rfscv, // Return From System Call Vectored PPC_stop, // Stop PPC_copy, // Copy PPC_paste, // Paste PPC_ldat, // Load Dword ATomic PPC_lwat, // Load Word ATomic PPC_stdat, // Store Dword ATomic PPC_stwat, // Store Word ATomic PPC_cpabort, // Copy-Paste Abort PPC_wait30, // Wait for Interrupt PPC_dtstsfi, // DFP Test Significance Immediate PPC_dtstsfiq, // DFP Test Significance Immediate Quad PPC_bcdcfn, // Decimal Convert From National & record PPC_bcdcfz, // Decimal Convert From Zoned & record PPC_bcdctn, // Decimal Convert To National & record PPC_bcdctz, // Decimal Convert To Zoned & record PPC_bcdctsq, // Decimal Convert To Signed Qword & record PPC_bcdcfsq, // Decimal Convert From Signed Qword & record PPC_bcdsetsgn, // Decimal Set Sign & record PPC_bcdcpsgn, // Decimal CopySign & record PPC_bcds, // Decimal Shift & record PPC_bcdus, // Decimal Unsigned Shift & record PPC_bcdsr, // Decimal Shift & Round & record PPC_bcdtrunc, // Decimal Truncate & record PPC_bcdutrunc, // Decimal Unsigned Truncate & record PPC_vabsdub, // Vector Absolute Difference Unsigned Byte PPC_vabsduh, // Vector Absolute Difference Unsigned Hword PPC_vabsduw, // Vector Absolute Difference Unsigned Word PPC_vbpermd, // Vector Bit Permute Dword PPC_vclzlsbb, // Vector Count Leading Zero Least-Significant Bits Byte PPC_vctzlsbb, // Vector Count Trailing Zero Least-Significant Bits Byte PPC_vcmpneb, // Vector Compare Not Equal Byte PPC_vcmpnezb, // Vector Compare Not Equal or Zero Byte PPC_vcmpneh, // Vector Compare Not Equal Hword PPC_vcmpnezh, // Vector Compare Not Equal or Zero Hword PPC_vcmpnew, // Vector Compare Not Equal Word PPC_vcmpnezw, // Vector Compare Not Equal or Zero Word PPC_vctzb, // Vector Count Trailing Zeros Byte PPC_vctzh, // Vector Count Trailing Zeros Hword PPC_vctzw, // Vector Count Trailing Zeros Word PPC_vctzd, // Vector Count Trailing Zeros Dword PPC_vextractub, // Vector Extract Unsigned Byte PPC_vextractuh, // Vector Extract Unsigned Hword PPC_vextractuw, // Vector Extract Unsigned Word PPC_vextractd, // Vector Extract Dword PPC_vextsb2w, // Vector Extend Sign Byte to Word PPC_vextsb2d, // Vector Extend Sign Byte to Dword PPC_vextsh2w, // Vector Extend Sign Hword to Word PPC_vextsh2d, // Vector Extend Sign Hword to Dword PPC_vextsw2d, // Vector Extend Sign Word to Dword PPC_vextublx, // Vector Extract Unsigned Byte Left-Indexed PPC_vextubrx, // Vector Extract Unsigned Byte Right-Indexed PPC_vextuhlx, // Vector Extract Unsigned Hword Left-Indexed PPC_vextuhrx, // Vector Extract Unsigned Hword Right-Indexed PPC_vextuwlx, // Vector Extract Unsigned Word Left-Indexed PPC_vextuwrx, // Vector Extract Unsigned Word Right-Indexed PPC_vinsertb, // Vector Insert Byte PPC_vinserth, // Vector Insert Hword PPC_vinsertw, // Vector Insert Word PPC_vinsertd, // Vector Insert Dword PPC_vmul10uq, // Vector Multiply-by-10 Unsigned Qword PPC_vmul10euq, // Vector Multiply-by-10 Extended Unsigned Qword PPC_vmul10cuq, // Vector Multiply-by-10 & write Carry Unsigned Qword PPC_vmul10ecuq, // Vector Multiply-by-10 Extended & write Carry Unsigned Qword PPC_vnegw, // Vector Negate Word PPC_vnegd, // Vector Negate Dword PPC_vpermr, // Vector Permute Right-indexed PPC_vprtybw, // Vector Parity Byte Word PPC_vprtybd, // Vector Parity Byte Dword PPC_vprtybq, // Vector Parity Byte Qword PPC_vrlwnm, // Vector Rotate Left Word then AND with Mask PPC_vrlwmi, // Vector Rotate Left Word then Mask Insert PPC_vrldnm, // Vector Rotate Left Dword then AND with Mask PPC_vrldmi, // Vector Rotate Left Dword then Mask Insert PPC_vslv, // Vector Shift Left Variable PPC_vsrv, // Vector Shift Right Variable PPC_lxsd, // Load VSX Scalar Dword PPC_lxssp, // Load VSX Scalar Single PPC_lxsibzx, // Load VSX Scalar as Integer Byte & Zero Indexed PPC_lxsihzx, // Load VSX Scalar as Integer Hword & Zero Indexed PPC_lxv, // Load VSX Vector PPC_lxvb16x, // Load VSX Vector Byte*16 Indexed PPC_lxvh8x, // Load VSX Vector Hword*8 Indexed PPC_lxvl, // Load VSX Vector with Length PPC_lxvll, // Load VSX Vector Left-justified with Length PPC_lxvwsx, // Load VSX Vector Word & Splat Indexed PPC_lxvx, // Load VSX Vector Indexed PPC_stxsd, // Store VSX Scalar Dword PPC_stxsibx, // Store VSX Scalar as Integer Byte Indexed PPC_stxsihx, // Store VSX Scalar as Integer Hword Indexed PPC_stxssp, // Store VSX Scalar SP PPC_stxv, // Store VSX Vector PPC_stxvb16x, // Store VSX Vector Byte*16 Indexed PPC_stxvh8x, // Store VSX Vector Hword*8 Indexed PPC_stxvl, // Store VSX Vector with Length PPC_stxvll, // Store VSX Vector Left-justified with Length PPC_stxvx, // Store VSX Vector Indexed PPC_xsabsqp, // VSX Scalar Absolute QP PPC_xsaddqp, // VSX Scalar Add QP PPC_xscmpexpqp, // VSX Scalar Compare Exponents QP PPC_xscmpoqp, // VSX Scalar Compare Ordered QP PPC_xscmpuqp, // VSX Scalar Compare Unordered QP PPC_xscpsgnqp, // VSX Scalar Copy Sign QP PPC_xscvdpqp, // VSX Scalar Convert DP to QP PPC_xscvqpdp, // VSX Scalar Convert QP to DP PPC_xscvqpsdz, // VSX Scalar Convert QP to Signed Dword truncate PPC_xscvqpswz, // VSX Scalar Convert QP to Signed Word truncate PPC_xscvqpudz, // VSX Scalar Convert QP to Unsigned Dword truncate PPC_xscvqpuwz, // VSX Scalar Convert QP to Unsigned Word truncate PPC_xscvsdqp, // VSX Scalar Convert Signed Dword to QP PPC_xscvudqp, // VSX Scalar Convert Unsigned Dword to QP PPC_xsdivqp, // VSX Scalar Divide QP PPC_xsiexpqp, // VSX Scalar Insert Exponent QP PPC_xsmaddqp, // VSX Scalar Multiply-Add QP PPC_xsmsubqp, // VSX Scalar Multiply-Subtract QP PPC_xsmulqp, // VSX Scalar Multiply QP PPC_xsnabsqp, // VSX Scalar Negative Absolute QP PPC_xsnegqp, // VSX Scalar Negate QP PPC_xsnmaddqp, // VSX Scalar Negative Multiply-Add QP PPC_xsnmsubqp, // VSX Scalar Negative Multiply-Subtract QP PPC_xssqrtqp, // VSX Scalar Square Root QP PPC_xssubqp, // VSX Scalar Subtract QP PPC_xsxexpqp, // VSX Scalar Extract Exponent QP PPC_xsxsigqp, // VSX Scalar Extract Significand QP PPC_xststdcqp, // VSX Scalar Test Data Class QP PPC_xsrqpxp, // VSX Scalar Round QP to XP PPC_xsrqpi, // VSX Scalar Round QP to Integral [with Inexact] PPC_xscmpeqdp, // VSX Scalar Compare Equal Double-Precision PPC_xscmpexpdp, // VSX Scalar Compare Exponents DP PPC_xscmpgedp, // VSX Scalar Compare Greater Than or Equal Double-Precision PPC_xscmpgtdp, // VSX Scalar Compare Greater Than Double-Precision PPC_xsiexpdp, // VSX Scalar Insert Exponent DP PPC_xsmaxcdp, // VSX Scalar Maximum Type-C Double-Precision PPC_xsmaxjdp, // VSX Scalar Maximum Type-J Double-Precision PPC_xsmincdp, // VSX Scalar Minimum Type-C Double-Precision PPC_xsminjdp, // VSX Scalar Minimum Type-J Double-Precision PPC_xviexpdp, // VSX Vector Insert Exponent DP PPC_xviexpsp, // VSX Vector Insert Exponent SP PPC_xxextractuw,// VSX Vector Extract Unsigned Word PPC_xxinsertw, // VSX Vector Insert Word PPC_xxperm, // VSX Vector Permute PPC_xxpermr, // VSX Vector Permute Right-indexed PPC_xxspltib, // VSX Vector Splat Immediate Byte PPC_xststdcdp, // VSX Scalar Test Data Class DP PPC_xststdcsp, // VSX Scalar Test Data Class SP PPC_xvtstdcdp, // VSX Vector Test Data Class DP PPC_xvtstdcsp, // VSX Vector Test Data Class SP PPC_xsxexpdp, // VSX Scalar Extract Exponent DP PPC_xsxsigdp, // VSX Scalar Extract Significand DP PPC_xscvdphp, // VSX Scalar Convert DP to HP PPC_xscvhpdp, // VSX Scalar Convert HP to DP PPC_xvxexpdp, // VSX Vector Extract Exponent DP PPC_xvxexpsp, // VSX Vector Extract Exponent SP PPC_xvxsigdp, // VSX Vector Extract Significand DP PPC_xvxsigsp, // VSX Vector Extract Significand SP PPC_xxbrd, // VSX Vector Byte-Reverse Dword PPC_xxbrh, // VSX Vector Byte-Reverse Hword PPC_xxbrq, // VSX Vector Byte-Reverse Qword PPC_xxbrw, // VSX Vector Byte-Reverse Word PPC_xvcvhpsp, // VSX Vector Convert HP to SP PPC_xvcvsphp, // VSX Vector Convert SP to HP PPC_msgsync, // Message Synchronize // Instructions introduced in ISA 3.0 and withdrawn in ISA 3.0B : // ldmx "Load Dword Monitored Indexed" // xscmpnedp "VSX Scalar Compare Not Equal Double-Precision" // xvcmpnedp[.] "VSX Vector Compare Not Equal Double-Precision" // xvcmpnesp[.] "VSX Vector Compare Not Equal Single-Precision" // Power ISA Version 3.0 B PPC_addex, // Add Extended using alternate carry PPC_vmsumudm, // Vector Multiply-Sum Unsigned Doubleword Modulo PPC_mffsce, // Move From FPSCR & Clear Enables PPC_mffscdrn, // Move From FPSCR Control & set DRN PPC_mffscdrni, // Move From FPSCR Control & set DRN Immediate PPC_mffscrn, // Move From FPSCR Control & set RN PPC_mffscrni, // Move From FPSCR Control & set RN Immediate PPC_mffsl, // Move From FPSCR Lightweight // Cache Bypass Storage APU PPC_lbdcbx, // Load Byte with Decoration Indexed Cache Bypass PPC_lhdcbx, // Load Halfword with Decoration Indexed Cache Bypass PPC_lwdcbx, // Load Word with Decoration Indexed Cache Bypass PPC_stbdcbx, // Store Byte with Decoration Indexed Cache Bypass PPC_sthdcbx, // Store Halfword with Decoration Indexed Cache Bypass PPC_stwdcbx, // Store Word with Decoration Indexed Cache Bypass PPC_lbcbx, // Load Byte Indexed Cache Bypass PPC_lhcbx, // Load Halfword Indexed Cache Bypass PPC_lwcbx, // Load Word Indexed Cache Bypass PPC_stbwtx, // Store Byte Indexed Cache Bypass PPC_sthwtx, // Store Halfword Indexed Cache Bypass PPC_stwwtx, // Store Word Indexed Cache Bypass PPC_dsncb, // Decorated Storage Notify Cache Bypass // AIOP (E200Z490) PPC_ldw, // Load Doubleword PPC_stdw, // Store Doubleword PPC_lqw, // Load Quadword PPC_stqw, // Store Quadword PPC_ldwcb, // Load Doubleword Cache Bypassed PPC_ldbrw, // Load Byte Reversed Doubleword PPC_ldwbrw, // Load Two Byte Reversed Words PPC_stdwwt, // Store Doubleword with Write-Through PPC_stdbrw, // Store Doubleword Bytes Reversed PPC_stdwbrw, // Store Doubleword Byte Reversed in Word PPC_lqdbrw, // Load Quadword Byte Reversed PPC_stqdbrw, // Store Quadword Byte Reversed PPC_lwbr, // Load Word Byte Reversed PPC_lhbr, // Load Halfword Byte Reversed PPC_stwbr, // Store Word Byte Reversed PPC_sthbr, // Store Halfword Byte Reversed PPC_ldwar, // Load Doubleword and reserve PPC_stdwc, // Store Doubleword conditional on reservation PPC_addb, // Add Two Bytes PPC_addbu, // Add Two Unsigned Bytes PPC_addh, // Add Two Halfwords PPC_addhu, // Add Two Unsigned Halfwords PPC_subfb, // Signed Byte One's Complement Add PPC_subfbu, // Unsigned Byte One's Complement Add PPC_subfh, // Signed Halfword One's Complement Subtract PPC_subfhu, // Unsigned Halfword One's Complement Subtract PPC_byterevw, // Reverse bytes in a word PPC_byterevh, // Reverse bytes in each halfword PPC_hwaccel, // Hardware Acceleration Request PPC_hwacceli, // Hardware Acceleration Request PPC_ordhwaccel, // Ordered Hardware Acceleration Request PPC_ordhwacceli,// Ordered Hardware Acceleration Request PPC_osmcmd, // Ordered Scope Management Command Request PPC_mpure, // MPU Read Entry Instruction PPC_mpuwe, // MPU Write Entry Instruction PPC_mpusync, // MPU Synchronize Instruction // EFP 2.0 instructions PPC_efdmax, // Floating-Point Double-Precision Maximum PPC_efdmin, // Floating-Point Double-Precision Minimum PPC_efdsqrt, // Floating-Point Double-Precision Square Root PPC_efdcfh, // Convert Floating-Point Double-Precision from Half-Precision PPC_efdcth, // Convert Floating-Point Double-Precision to Half-Precision PPC_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ //---------------------------------------------------------------------- enum NEC850_Instructions { NEC850_NULL = 0, NEC850_BREAKPOINT, NEC850_XORI, NEC850_XOR, NEC850_TST1, NEC850_TST, NEC850_TRAP, NEC850_SUBR, NEC850_SUB, NEC850_STSR, NEC850_ST_B, NEC850_ST_H, NEC850_ST_W, NEC850_SST_B, NEC850_SST_H, NEC850_SST_W, NEC850_SLD_B, NEC850_SLD_H, NEC850_SLD_W, NEC850_SHR, NEC850_SHL, NEC850_SET1, NEC850_SETF, NEC850_SATSUBR, NEC850_SATSUBI, NEC850_SATSUB, NEC850_SATADD, NEC850_SAR, NEC850_RETI, NEC850_ORI, NEC850_OR, NEC850_NOT1, NEC850_NOT, NEC850_NOP, NEC850_MULHI, NEC850_MULH, NEC850_MOVHI, NEC850_MOVEA, NEC850_MOV, NEC850_LDSR, NEC850_LD_B, NEC850_LD_H, NEC850_LD_W, NEC850_JR, NEC850_JMP, NEC850_JARL, NEC850_HALT, NEC850_EI, NEC850_DIVH, NEC850_DI, NEC850_CMP, NEC850_CLR1, NEC850_BV, NEC850_BL, NEC850_BZ, NEC850_BNH, NEC850_BN, NEC850_BR, NEC850_BLT, NEC850_BLE, NEC850_BNV, NEC850_BNC, NEC850_BNZ, NEC850_BH, NEC850_BP, NEC850_BSA, NEC850_BGE, NEC850_BGT, NEC850_ANDI, NEC850_AND, NEC850_ADDI, NEC850_ADD, // // V850E/E1/ES // NEC850_SWITCH, NEC850_ZXB, NEC850_SXB, NEC850_ZXH, NEC850_SXH, NEC850_DISPOSE_r0, NEC850_DISPOSE_r, NEC850_CALLT, NEC850_DBTRAP, NEC850_DBRET, NEC850_CTRET, NEC850_SASF, NEC850_PREPARE_sp, NEC850_PREPARE_i, NEC850_MUL, NEC850_MULU, NEC850_DIVH_r3, NEC850_DIVHU, NEC850_DIV, NEC850_DIVU, NEC850_BSW, NEC850_BSH, NEC850_HSW, NEC850_CMOV, NEC850_SLD_BU, NEC850_SLD_HU, NEC850_LD_BU, NEC850_LD_HU, // // V850E2 // NEC850_ADF, // Add on condition flag NEC850_HSH, // Halfword swap halfword NEC850_MAC, // Multiply and add word NEC850_MACU, // Multiply and add word unsigned NEC850_SBF, // Subtract on condition flag NEC850_SCH0L, // Search zero from left NEC850_SCH0R, // Search zero from right NEC850_SCH1L, // Search one from left NEC850_SCH1R, // Search one from right // // V850E2M // NEC850_CAXI, // Compare and exchange for interlock NEC850_DIVQ, // Divide word quickly NEC850_DIVQU, // Divide word unsigned quickly NEC850_EIRET, // Return from EI level exception NEC850_FERET, // Return from FE level exception NEC850_FETRAP, // FE-level Trap NEC850_RMTRAP, // Runtime monitor trap NEC850_RIE, // Reserved instruction exception NEC850_SYNCE, // Synchronize exceptions NEC850_SYNCM, // Synchronize memory NEC850_SYNCP, // Synchronize pipeline NEC850_SYSCALL, // System call // floating point (E1F only) NEC850_CVT_SW, // Real to integer conversion NEC850_TRNC_SW, // Real to integer conversion NEC850_CVT_WS, // Integer to real conversion NEC850_LDFC, // Load to Floating Controls NEC850_LDFF, // Load to Floating Flags NEC850_STFC, // Store Floating Controls NEC850_STFF, // Store Floating Flags NEC850_TRFF, // Transfer Floating Flags // floating point (E2M) NEC850_ABSF_D, // Floating-point Absolute Value (Double) NEC850_ABSF_S, // Floating-point Absolute Value (Single) NEC850_ADDF_D, // Floating-point Add (Double) NEC850_ADDF_S, // Floating-point Add (Single) NEC850_DIVF_D, // Floating-point Divide (Double) NEC850_DIVF_S, // Floating-point Divide (Single) NEC850_MAXF_D, // Floating-point Maximum (Double) NEC850_MAXF_S, // Floating-point Maximum (Single) NEC850_MINF_D, // Floating-point Minimum (Double) NEC850_MINF_S, // Floating-point Minimum (Single) NEC850_MULF_D, // Floating-point Multiply (Double) NEC850_MULF_S, // Floating-point Multiply (Single) NEC850_NEGF_D, // Floating-point Negate (Double) NEC850_NEGF_S, // Floating-point Negate (Single) NEC850_RECIPF_D, // Reciprocal of a floating-point value (Double) NEC850_RECIPF_S, // Reciprocal of a floating-point value (Single NEC850_RSQRTF_D, // Reciprocal of the square root of a floating-point value (Double) NEC850_RSQRTF_S, // Reciprocal of the square root of a floating-point value (Single) NEC850_SQRTF_D, // Floating-point Square Root (Double) NEC850_SQRTF_S, // Floating-point Square Root (Single) NEC850_SUBF_D, // Floating-point Subtract (Double) NEC850_SUBF_S, // Floating-point Subtract (Single) NEC850_MADDF_S, // Floating-point Multiply-Add (Single) NEC850_MSUBF_S, // Floating-point Multiply-Subtract (Single) NEC850_NMADDF_S, // Floating-point Negate Multiply-Add (Single) NEC850_NMSUBF_S, // Floating-point Negate Multiply-Subtract (Single) NEC850_CEILF_DL, // Floating-point Truncate to Long Fixed-point Format, rounded toward +inf (Double) NEC850_CEILF_DW, // Floating-point Truncate to Single Fixed-point Format, rounded toward +inf (Double) NEC850_CEILF_SL, // Floating-point Truncate to Long Fixed-point Format, rounded toward +inf (Single) NEC850_CEILF_SW, // Floating-point Truncate to Single Fixed-point Format, rounded toward +inf (Single) NEC850_CEILF_DUL, // Floating-point Truncate to Unsigned Long, rounded toward +inf (Double) NEC850_CEILF_DUW, // Floating-point Truncate to Unsigned Word, rounded toward +inf (Double) NEC850_CEILF_SUL, // Floating-point Truncate to Unsigned Long, rounded toward +inf (Single) NEC850_CEILF_SUW, // Floating-point Truncate to Unsigned Word, rounded toward +inf (Single) NEC850_CVTF_DL, // Floating-point Convert to Long Fixed-point Format (Double) NEC850_CVTF_DS, // Floating-point Convert to Single Floating-point Format (Double) NEC850_CVTF_DUL, // Floating-point Convert Double to Unsigned-Long (Double) NEC850_CVTF_DUW, // Floating-point Convert Double to Unsigned-Word (Double) NEC850_CVTF_DW, // Floating-point Convert to Single Fixed-point Format (Double) NEC850_CVTF_LD, // Floating-point Convert to Single Floating-point Format (Double) NEC850_CVTF_LS, // Floating-point Convert to Single Floating-point Format (Single) NEC850_CVTF_SD, // Floating-point Convert to Double Floating-point Format (Double) NEC850_CVTF_SL, // Floating-point Convert to Long Fixed-point Format (Single) NEC850_CVTF_SUL, // Floating-point Convert Single to Unsigned-Long (Single) NEC850_CVTF_SUW, // Floating-point Convert Single to Unsigned-Word (Single) NEC850_CVTF_SW, // Floating-point Convert to Single Fixed-point Format (Single) NEC850_CVTF_ULD, // Floating-point Convert Unsigned-Long to Double (Double) NEC850_CVTF_ULS, // Floating-point Convert Unsigned-Long to Single (Single) NEC850_CVTF_UWD, // Floating-point Convert Unsigned-Word to Double (Double) NEC850_CVTF_UWS, // Floating-point Convert Unsigned-Word to Single (Single) NEC850_CVTF_WD, // Floating-point Convert to Single Floating-point Format (Double) NEC850_CVTF_WS, // Floating-point Convert to Single Floating-point Format (Single) NEC850_FLOORF_DL, // Floating-point Truncate to Long Fixed-point Format, rounded toward -inf (Double) NEC850_FLOORF_DW, // Floating-point Truncate to Single Fixed-point Format, rounded toward -inf (Double) NEC850_FLOORF_SL, // Floating-point Truncate to Long Fixed-point Format, rounded toward -inf (Single) NEC850_FLOORF_SW, // Floating-point Truncate to Single Fixed-point Format, rounded toward -inf (Single) NEC850_FLOORF_DUL, // Floating-point Truncate to Unsigned Long, rounded toward -inf (Double) NEC850_FLOORF_DUW, // Floating-point Truncate to Unsigned Word, rounded toward -inf (Double) NEC850_FLOORF_SUL, // Floating-point Truncate to Unsigned Long, rounded toward -inf (Single) NEC850_FLOORF_SUW, // Floating-point Truncate to Unsigned Word, rounded toward -inf (Single) NEC850_TRNCF_DL, // Floating-point Truncate to Long Fixed-point Format, rounded to zero (Double) NEC850_TRNCF_DUL, // Floating-point Truncate Double to Unsigned-Long (Double) NEC850_TRNCF_DUW, // Floating-point Truncate Double to Unsigned-Word (Double) NEC850_TRNCF_DW, // Floating-point Truncate to Single Fixed-point Format, rounded to zero (Double) NEC850_TRNCF_SL, // Floating-point Truncate to Long Fixed-point Format, rounded to zero (Single) NEC850_TRNCF_SUL, // Floating-point Truncate Single to Unsigned-Long (Single) NEC850_TRNCF_SUW, // Floating-point Truncate Single to Unsigned-Word (Single) NEC850_TRNCF_SW, // Floating-point Truncate to Single Fixed-point Format, rounded to zero (Single) NEC850_CMPF_S, // Compares floating-point values (Single) NEC850_CMPF_D, // Compares floating-point values (Double) NEC850_CMOVF_S, // Floating-point conditional move (Single) NEC850_CMOVF_D, // Floating-point conditional move (Double) NEC850_TRFSR, // Transfers specified CC bit to Zero flag in PSW (Single) // // RH850 // NEC850_SYNCI, // Synchronize instruction pipeline NEC850_SNOOZE, // Snooze NEC850_BINS, // Bitfield Insert NEC850_ROTL, // Rotate Left NEC850_LOOP, // Loop NEC850_LD_DW, // Load Double Word NEC850_ST_DW, // Store Double Word NEC850_LDL_W, // Load Linked NEC850_STC_W, // Store Conditional NEC850_CLL, // Clear Load Link NEC850_CACHE, // Cache operation NEC850_PREF, // Prefetch NEC850_PUSHSP, // Push registers to Stack NEC850_POPSP, // Pop registers from Stack // new RH850 FP instructions NEC850_CVTF_HS, // Floating-point Convert Half to Single (Single) NEC850_CVTF_SH, // Floating-point Convert Single to Half (Single) NEC850_FMAF_S, // Floating-point Fused-Multiply-add (Single) NEC850_FMSF_S, // Floating-point Fused-Multiply-subtract (Single) NEC850_FNMAF_S, // Floating-point Fused-Negate-Multiply-add (Single) NEC850_FNMSF_S, // Floating-point Fused-Negate-Multiply-subtract (Single) // debug instructions NEC850_DBPUSH, // NEC850_DBCP, // NEC850_DBTAG, // NEC850_DBHVTRAP, // // virtualization instructions NEC850_EST, // NEC850_DST, // NEC850_HVTRAP, // NEC850_HVCALL, // NEC850_LDVC_SR, // NEC850_STVC_SR, // NEC850_LDTC_GR, // NEC850_STTC_GR, // NEC850_LDTC_PC, // NEC850_STTC_PC, // NEC850_LDTC_SR, // NEC850_STTC_SR, // NEC850_LDTC_VR, // NEC850_STTC_VR, // // TLB instructions NEC850_TLBAI, // NEC850_TLBR, // NEC850_TLBS, // NEC850_TLBVI, // NEC850_TLBW, // NEC850_LAST_INSTRUCTION }; /* * Tricore Disassembly Module * Version 1.0 * Copyright (c) 2000 by Juergen Krumm * ALL RIGHTS RESERVED * * */ enum { TRICORE_null = 0, // Unknown Operation TRICORE_abs, TRICORE_abs_b, TRICORE_abs_h, TRICORE_absdif, TRICORE_absdif_b, TRICORE_absdif_h, TRICORE_absdifs, TRICORE_absdifs_h, TRICORE_abss, TRICORE_abss_h, TRICORE_add_b, TRICORE_add_f, TRICORE_add_h, TRICORE_add16, TRICORE_add16_a, TRICORE_add32, TRICORE_add32_a, TRICORE_addc, TRICORE_addi, TRICORE_addih, TRICORE_addih_a, TRICORE_adds, TRICORE_adds_h, TRICORE_adds_hu, TRICORE_adds_u, TRICORE_adds16, TRICORE_addsc_at, TRICORE_addsc16_a, TRICORE_addsc32_a, TRICORE_addx, TRICORE_and_and_t, TRICORE_and_andn_t, TRICORE_and_eq, TRICORE_and_ge, TRICORE_and_ge_u, TRICORE_and_lt, TRICORE_and_lt_u, TRICORE_and_ne, TRICORE_and_nor_t, TRICORE_and_or_t, TRICORE_and_t, TRICORE_and16, TRICORE_and32, TRICORE_andn, TRICORE_andn_t, TRICORE_bisr16, TRICORE_bisr32, TRICORE_bmerge, TRICORE_bsplit, TRICORE_cachea_i, TRICORE_cachea_w, TRICORE_cachea_wi, TRICORE_cadd16, TRICORE_cadd32, TRICORE_caddn16, TRICORE_caddn32, TRICORE_call16, TRICORE_call32, TRICORE_calla, TRICORE_calli, TRICORE_clo, TRICORE_clo_h, TRICORE_cls, TRICORE_cls_h, TRICORE_clz, TRICORE_clz_h, TRICORE_cmov16, TRICORE_cmovn16, TRICORE_cmp_f, TRICORE_csub, TRICORE_csubn, TRICORE_debug16, TRICORE_debug32, TRICORE_dextr, TRICORE_disable, TRICORE_div_f, TRICORE_dsync, TRICORE_dvadj, TRICORE_dvinit, TRICORE_dvinit_b, TRICORE_dvinit_bu, TRICORE_dvinit_h, TRICORE_dvinit_hu, TRICORE_dvinit_u, TRICORE_dvstep, TRICORE_dvstep_u, TRICORE_enable, TRICORE_eq_a, TRICORE_eq_b, TRICORE_eq_h, TRICORE_eq_w, TRICORE_eq16, TRICORE_eq32, TRICORE_eqany_b, TRICORE_eqany_h, TRICORE_eqz_a, TRICORE_extr, TRICORE_extr_u, TRICORE_ftoi, TRICORE_ftoq31, TRICORE_ftou, TRICORE_ge, TRICORE_ge_a, TRICORE_ge_u, TRICORE_imask, TRICORE_ins_t, TRICORE_insert, TRICORE_insn_t, TRICORE_isync, TRICORE_itof, TRICORE_ixmax, TRICORE_ixmax_u, TRICORE_ixmin, TRICORE_ixmin_u, TRICORE_j16, TRICORE_j32, TRICORE_ja, TRICORE_jeq_a, TRICORE_jeq16, TRICORE_jeq32, TRICORE_jge, TRICORE_jge_u, TRICORE_jgez16, TRICORE_jgtz16, TRICORE_ji16, TRICORE_ji32, TRICORE_jl, TRICORE_jla, TRICORE_jlez16, TRICORE_jli, TRICORE_jlt, TRICORE_jlt_u, TRICORE_jltz16, TRICORE_jne_a, TRICORE_jne16, TRICORE_jne32, TRICORE_jned, TRICORE_jnei, TRICORE_jnz16, TRICORE_jnz16_a, TRICORE_jnz16_t, TRICORE_jnz32_a, TRICORE_jnz32_t, TRICORE_jz16, TRICORE_jz16_a, TRICORE_jz16_t, TRICORE_jz32_a, TRICORE_jz32_t, TRICORE_ld_b, TRICORE_ld_d, TRICORE_ld_da, TRICORE_ld_hu, TRICORE_ld_q, TRICORE_ld16_a, TRICORE_ld16_bu, TRICORE_ld16_h, TRICORE_ld16_w, TRICORE_ld32_a, TRICORE_ld32_bu, TRICORE_ld32_h, TRICORE_ld32_w, TRICORE_ldlcx, TRICORE_ldmst, TRICORE_lducx, TRICORE_lea, TRICORE_loop16, TRICORE_loop32, TRICORE_loopu, TRICORE_lt_a, TRICORE_lt_b, TRICORE_lt_bu, TRICORE_lt_h, TRICORE_lt_hu, TRICORE_lt_u, TRICORE_lt_w, TRICORE_lt_wu, TRICORE_lt16, TRICORE_lt32, TRICORE_madd, TRICORE_madd_f, TRICORE_madd_h, TRICORE_madd_q, TRICORE_madd_u, TRICORE_maddm_h, TRICORE_maddms_h, TRICORE_maddr_h, TRICORE_maddr_q, TRICORE_maddrs_h, TRICORE_maddrs_q, TRICORE_madds, TRICORE_madds_h, TRICORE_madds_q, TRICORE_madds_u, TRICORE_maddsu_h, TRICORE_maddsum_h, TRICORE_maddsums_h, TRICORE_maddsur_h, TRICORE_maddsurs_h, TRICORE_maddsus_h, TRICORE_max, TRICORE_max_b, TRICORE_max_bu, TRICORE_max_h, TRICORE_max_hu, TRICORE_max_u, TRICORE_mfcr, TRICORE_min, TRICORE_min_b, TRICORE_min_bu, TRICORE_min_h, TRICORE_min_hu, TRICORE_min_u, TRICORE_mov_u, TRICORE_mov16, TRICORE_mov16_a, TRICORE_mov16_aa, TRICORE_mov16_d, TRICORE_mov32, TRICORE_mov32_a, TRICORE_mov32_aa, TRICORE_mov32_d, TRICORE_movh, TRICORE_movh_a, TRICORE_msub, TRICORE_msub_f, TRICORE_msub_h, TRICORE_msub_q, TRICORE_msub_u, TRICORE_msubad_h, TRICORE_msubadm_h, TRICORE_msubadms_h, TRICORE_msubadr_h, TRICORE_msubadrs_h, TRICORE_msubads_h, TRICORE_msubm_h, TRICORE_msubms_h, TRICORE_msubr_h, TRICORE_msubr_q, TRICORE_msubrs_h, TRICORE_msubrs_q, TRICORE_msubs, TRICORE_msubs_h, TRICORE_msubs_q, TRICORE_msubs_u, TRICORE_mtcr, TRICORE_mul_f, TRICORE_mul_h, TRICORE_mul_q, TRICORE_mul_u, TRICORE_mul16, TRICORE_mul32, TRICORE_mulm_h, TRICORE_mulms_h, TRICORE_mulr_h, TRICORE_mulr_q, TRICORE_muls, TRICORE_muls_u, TRICORE_nand, TRICORE_nand_t, TRICORE_ne, TRICORE_ne_a, TRICORE_nez_a, TRICORE_nop16, TRICORE_nop32, TRICORE_nor_t, TRICORE_nor16, TRICORE_nor32, TRICORE_or_and_t, TRICORE_or_andn_t, TRICORE_or_eq, TRICORE_or_ge, TRICORE_or_ge_u, TRICORE_or_lt, TRICORE_or_lt_u, TRICORE_or_ne, TRICORE_or_nor_t, TRICORE_or_or_t, TRICORE_or_t, TRICORE_or16, TRICORE_or32, TRICORE_orn, TRICORE_orn_t, TRICORE_pack, TRICORE_parity, TRICORE_q31tof, TRICORE_qseed_f, TRICORE_ret16, TRICORE_ret32, TRICORE_rfe16, TRICORE_rfe32, TRICORE_rfm, TRICORE_rslcx, TRICORE_rstv, TRICORE_rsub16, TRICORE_rsub32, TRICORE_rsubs, TRICORE_rsubs_u, TRICORE_sat16_b, TRICORE_sat16_bu, TRICORE_sat16_h, TRICORE_sat16_hu, TRICORE_sat32_b, TRICORE_sat32_bu, TRICORE_sat32_h, TRICORE_sat32_hu, TRICORE_sel, TRICORE_seln, TRICORE_sh_and_t, TRICORE_sh_andn_t, TRICORE_sh_eq, TRICORE_sh_ge, TRICORE_sh_ge_u, TRICORE_sh_h, TRICORE_sh_lt, TRICORE_sh_lt_u, TRICORE_sh_nand_t, TRICORE_sh_ne, TRICORE_sh_nor_t, TRICORE_sh_or_t, TRICORE_sh_orn_t, TRICORE_sh_xnor_t, TRICORE_sh_xor_t, TRICORE_sh16, TRICORE_sh32, TRICORE_sha_h, TRICORE_sha16, TRICORE_sha32, TRICORE_shas, TRICORE_st_d, TRICORE_st_da, TRICORE_st_q, TRICORE_st_t, TRICORE_st16_a, TRICORE_st16_b, TRICORE_st16_h, TRICORE_st16_w, TRICORE_st32_a, TRICORE_st32_b, TRICORE_st32_h, TRICORE_st32_w, TRICORE_stlcx, TRICORE_stucx, TRICORE_sub_b, TRICORE_sub_f, TRICORE_sub_h, TRICORE_sub16, TRICORE_sub16_a, TRICORE_sub32, TRICORE_sub32_a, TRICORE_subc, TRICORE_subs_h, TRICORE_subs_hu, TRICORE_subs_u, TRICORE_subs16, TRICORE_subs32, TRICORE_subx, TRICORE_svlcx, TRICORE_swap_w, TRICORE_syscall, TRICORE_tlbdemap, TRICORE_tlbflush_a, TRICORE_tlbflush_b, TRICORE_tlbmap, TRICORE_tlbprobe_a, TRICORE_tlbprobe_i, TRICORE_trapsv, TRICORE_trapv, TRICORE_unpack, TRICORE_updfl, TRICORE_utof, TRICORE_xnor, TRICORE_xnor_t, TRICORE_xor_eq, TRICORE_xor_ge, TRICORE_xor_ge_u, TRICORE_xor_lt, TRICORE_xor_lt_u, TRICORE_xor_ne, TRICORE_xor_t, TRICORE_xor16, TRICORE_xor32, // new v1.6 instructions TRICORE_cachei_i, TRICORE_cachei_w, TRICORE_cachei_wi, TRICORE_div, TRICORE_div_u, TRICORE_fcall, TRICORE_fcalla, TRICORE_fcalli, TRICORE_fret16, TRICORE_fret32, TRICORE_ftoiz, TRICORE_ftoq31z, TRICORE_ftouz, TRICORE_restore, // new v1.6.1 instructions TRICORE_crc32, // Calculate CRC32 TRICORE_wait, // Suspend execution until the next enabled interrupt or asynchronous trap event TRICORE_cmpswap_w, // Compare and swap TRICORE_swapmsk_w, // Swap under mask // new v1.6.2 instructions TRICORE_crc32_b, // CRC32 for big endian data TRICORE_crc32l_w, // CRC32 for little endian data TRICORE_crcn, // Arbitrary width and polynomial CRC calculation TRICORE_shuffle, // Reorder bytes within word TRICORE_popcnt_w, // Count number of bits set in word TRICORE_lha, // Load high bits of address value TRICORE_last }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { ARC_null = 0, // Unknown Operation ARC_ld, // Load ARC_lr, // Load from auxiliary register ARC_st, // Store ARC_sr, // Store to auxiliary register ARC_store_instructions = ARC_sr, ARC_flag, // Set flags ARC_asr, // Arithmetic shift right ARC_lsr, // Logical shift right ARC_sexb, // Sign extend byte ARC_sexw, // Sign extend word ARC_sexh = ARC_sexw, ARC_extb, // Zero extend byte ARC_extw, // Zero extend word ARC_exth = ARC_extw, ARC_ror, // Rotate right ARC_rrc, // Rotate right through carry ARC_b, // Branch ARC_bl, // Branch and link ARC_lp, // Zero-overhead loop setup ARC_j, // Jump ARC_jl, // Jump and link ARC_add, // Add ARC_adc, // Add with carry ARC_sub, // Subtract ARC_sbc, // Subtract with carry ARC_and, // Logical bitwise AND ARC_or, // Logical bitwise OR ARC_bic, // Logical bitwise AND with invert ARC_xor, // Logical bitwise exclusive-OR // pseudo instructions ARC_mov, // Move ARC_nop, // No operation ARC_lsl, // Logical shift left ARC_rlc, // Rotate left through carry // arc7 ARC_brk, // Breakpoint ARC_sleep, // Sleep until interrupt or restart // arc8 ARC_swi, // Software interrupt // extra optional instrutions ARC_asl, // Arithmetic shift left ARC_mul64, // Signed 32x32 multiply ARC_mulu64, // Unsigned 32x32 multiply ARC_max, // Maximum of two signed integers ARC_min, // Minimum of two signed integers ARC_swap, // Exchange upper and lower 16 bits ARC_norm, // Normalize (find-first-bit) // ARCompact instructions ARC_bbit0, // Branch if bit cleared to 0 ARC_bbit1, // Branch if bit set to 1 ARC_br, // Branch on compare ARC_pop, // Restore register value from stack ARC_push, // Store register value on stack ARC_abs, // Absolute value ARC_add1, // Add with left shift by 1 bit ARC_add2, // Add with left shift by 2 bits ARC_add3, // Add with left shift by 3 bits ARC_bclr, // Clear specified bit (to 0) ARC_bmsk, // Bit Mask ARC_bset, // Set specified bit (to 1) ARC_btst, // Test value of specified bit ARC_bxor, // Bit XOR ARC_cmp, // Compare ARC_ex, // Atomic Exchange ARC_mpy, // Signed 32x32 multiply (low) ARC_mpyh, // Signed 32x32 multiply (high) ARC_mpym = ARC_mpyh, ARC_mpyhu, // Unsigned 32x32 multiply (high) ARC_mpyhm = ARC_mpyhu, ARC_mpyu, // Unsigned 32x32 multiply (low) ARC_neg, // Negate ARC_not, // Logical bit inversion ARC_rcmp, // Reverse Compare ARC_rsub, // Reverse Subtraction ARC_rtie, // Return from Interrupt/Exception ARC_sub1, // Subtract with left shift by 1 bit ARC_sub2, // Subtract with left shift by 2 bits ARC_sub3, // Subtract with left shift by 3 bits ARC_sync, // Synchronize ARC_trap, // Raise an exception ARC_tst, // Test ARC_unimp, // Unimplemented instruction ARC_abss, // Absolute and saturate ARC_abssw, // Absolute and saturate of word ARC_abssh = ARC_abssw, ARC_adds, // Add and saturate ARC_addsdw, // Add and saturate dual word ARC_asls, // Arithmetic shift left and saturate ARC_asrs, // Arithmetic shift right and saturate ARC_divaw, // Division assist ARC_negs, // Negate and saturate ARC_negsw, // Negate and saturate of word ARC_negsh = ARC_negsw, ARC_normw, // Normalize to 16 bits ARC_normh = ARC_normw, ARC_rnd16, // Round to word ARC_rndh = ARC_rnd16, ARC_sat16, // Saturate to word ARC_sath = ARC_sat16, ARC_subs, // Subtract and saturate ARC_subsdw, // Subtract and saturate dual word // mac d16 ARC_muldw, ARC_muludw, ARC_mulrdw, ARC_macdw, ARC_macudw, ARC_macrdw, ARC_msubdw, // 32x16 MUL/MAC ARC_mululw, ARC_mullw, ARC_mulflw, ARC_maclw, ARC_macflw, ARC_machulw, ARC_machlw, ARC_machflw, ARC_mulhlw, ARC_mulhflw, // Major 6 compact insns ARC_acm, ARC_addqbs, ARC_avgqb, ARC_clamp, ARC_daddh11, ARC_daddh12, ARC_daddh21, ARC_daddh22, ARC_dexcl1, ARC_dexcl2, ARC_dmulh11, ARC_dmulh12, ARC_dmulh21, ARC_dmulh22, ARC_dsubh11, ARC_dsubh12, ARC_dsubh21, ARC_dsubh22, ARC_drsubh11, ARC_drsubh12, ARC_drsubh21, ARC_drsubh22, ARC_fadd, ARC_fsadd = ARC_fadd, ARC_fmul, ARC_fsmul = ARC_fmul, ARC_fsub, ARC_fssub = ARC_fsub, ARC_fxtr, ARC_iaddr, ARC_mpyqb, ARC_sfxtr, ARC_pkqb, ARC_upkqb, ARC_xpkqb, // ARCv2 only major 4 instructions ARC_mpyw, // Signed 16x16 multiply ARC_mpyuw, // Unsigned 16x16 multiply ARC_bi, // Branch indexed ARC_bih, // Branch indexed half-word ARC_ldi, // Load indexed ARC_aex, // Exchange with auxiliary register ARC_bmskn, // Bit mask negated ARC_seteq, // Set if equal ARC_setne, // Set if not equal ARC_setlt, // Set if less than ARC_setge, // Set if greater or equal ARC_setlo, // Set if lower than ARC_seths, // Set if higher or same ARC_setle, // Set if less than or equal ARC_setgt, // Set if greater than ARC_rol, // Rotate left ARC_llock, // Load locked ARC_scond, // Store conditional ARC_seti, // Set interrupt enable and priority level ARC_clri, // Cler and get interrupt enable and priority level // ARCv2 compact prolog / epilog instructions ARC_enter, // Function prologue sequence ARC_leave, // Function epilogue sequence // ARCv2 32-bit extension major 5 DOP instructions ARC_div, // Signed integer divsion ARC_divu, // Unsigned integer divsion ARC_rem, // Signed integer remainder ARC_remu, // Unsigned integer remainder ARC_asrsr, // Shift right rounding and saturating ARC_valgn2h, // Two-way 16-bit vector align ARC_setacc, // Set the accumulator ARC_mac, // Signed 32x32 multiply accumulate ARC_macu, // Unsigned 32x32 multiply accumulate ARC_dmpyh, // Sum of dual signed 16x16 multiplication ARC_dmpyhu, // Sum of dual unsigned 16x16 multiplication ARC_dmach, // Dual signed 16x16 multiply accumulate ARC_dmachu, // Dual unsigned 16x16 multiply accumulate ARC_vadd2h, // Dual 16-bit addition ARC_vadds2h, // Dual 16-bit saturating addition ARC_vsub2h, // Dual 16-bit subtraction ARC_vsubs2h, // Dual 16-bit saturating subtraction ARC_vaddsub2h, // Dual 16-bit addition/subtraction ARC_vaddsubs2h, // Dual 16-bit saturating addition/subtraction ARC_vsubadd2h, // Dual 16-bit subtraction/addition ARC_vsubadds2h, // Dual 16-bit saturating subtraction/addition ARC_mpyd, // Signed 32x32 multiply (wide) ARC_mpydu, // Unsigned 32x32 multiply (wide) ARC_macd, // Signed 32x32 multiply accumulate (wide) ARC_macdu, // Unsigned 32x32 multiply accumulate (wide) ARC_vmpy2h, // Dual signed 16x16 multiply (wide) ARC_vmpy2hf, // Dual 16x16 saturating fractional multiply ARC_vmpy2hu, // Dual unsigned 16x16 multiply (wide) ARC_vmpy2hfr, // Dual 16x16 saturating rounded fractional multiply ARC_vmac2h, // Dual signed 16x16 multiply (wide) ARC_vmac2hf, // Dual 16x16 saturating fractional multiply ARC_vmac2hu, // Dual unsigned 16x16 multiply (wide) ARC_vmac2hfr, // Dual 16x16 saturating rounded fractional multiply ARC_vmpy2hwf, // Dual 16x16 saturating fractional multiply (wide) ARC_vasl2h, // Dual 16-bit arithmetic shift left ARC_vasls2h, // Dual 16-bit saturating arithmetic shift left ARC_vasr2h, // Dual 16-bit arithmetic shift right ARC_vasrs2h, // Dual 16-bit saturating arithmetic shift right ARC_vlsr2h, // Dual 16-bit logical shift right ARC_vasrsr2h, // Dual 16-bit saturating rounded arithmetic shift right ARC_vadd4b, // Quad 8-bit addition ARC_vmax2h, // Dual 16-bit maximum ARC_vsub4b, // Quad 8-bit subtraction ARC_vmin2h, // Dual 16-bit minimum ARC_adcs, // Signed saturating addition with carry in ARC_sbcs, // Signed saturating subtraction with carry in ARC_dmpyhwf, // Fractional saturating sum of dual 16x16 signed fractional multiply ARC_vpack2hl, // Compose lower 16-bits ARC_vpack2hm, // Compose upper 16-bits ARC_dmpyhf, // Saturating sum of dual 16x16 signed fractional multiply ARC_dmpyhfr, // Saturating rounded sum of dual 16x16 signed fractional multiply ARC_dmachf, // Saturating sum of dual 16x16 signed fractional multiply accumulate ARC_dmachfr, // Saturating rounded sum of dual 16x16 signed fractional multiply accumulate ARC_vperm, // Byte permutation with zero or sign extension ARC_bspush, // Bitstream push // ARCv2 32-bit extension major 5 SOP instructions ARC_swape, // Swap byte ordering ARC_lsl16, // Logical shift left by 16 bits ARC_lsr16, // Logical shift right by 16 bits ARC_asr16, // Arithmetic shift right by 16 bits ARC_asr8, // Arithmetic shift right by 8 bits ARC_lsr8, // Logical shift right by 8 bits ARC_lsl8, // Logical shift left by 8 bits ARC_rol8, // Rotate left by 8 bits ARC_ror8, // Rotate right by 8 bits ARC_ffs, // Find first set bit ARC_fls, // Find last set bit ARC_getacc, // Get accumulator ARC_normacc, // Normalize accumulator ARC_satf, // Saturate according to flags ARC_vpack2hbl, // Pack lower bytes into lower 16 bits ARC_vpack2hbm, // Pack upper bytes into upper 16 bits ARC_vpack2hblf, // Pack upper bytes into lower 16 bits ARC_vpack2hbmf, // Pack lower bytes into upper 16 bits ARC_vext2bhlf, // Pack lower 2 bytes into upper byte of 16 bits each ARC_vext2bhmf, // Pack upper 2 bytes into upper byte of 16 bits each ARC_vrep2hl, // Repeat lower 16 bits ARC_vrep2hm, // Repeat upper 16 bits ARC_vext2bhl, // Pack lower 2 bytes into zero extended 16 bits ARC_vext2bhm, // Pack upper 2 bytes into zero extended 16 bits ARC_vsext2bhl, // Pack lower 2 bytes into sign extended 16 bits ARC_vsext2bhm, // Pack upper 2 bytes into sign extended 16 bits ARC_vabs2h, // Dual 16-bit absolute value ARC_vabss2h, // Dual saturating 16-bit absolute value ARC_vneg2h, // Dual 16-bit negation ARC_vnegs2h, // Dual saturating 16-bit negation ARC_vnorm2h, // Dual 16-bit normalization ARC_bspeek, // Bitstream peek ARC_bspop, // Bitstream pop ARC_sqrt, // Integer square root ARC_sqrtf, // Fractional square root // ARCv2 32-bit extension major 5 ZOP instructions ARC_aslacc, // Arithmetic shift of accumulator ARC_aslsacc, // Saturating arithmetic shift of accumulator ARC_flagacc, // Copy accumulator flags to status32 register ARC_modif, // Update address pointer // ARCv2 32-bit extension major 6 DOP instructions ARC_cmpyhnfr, // Fractional 16+16 bit complex saturating rounded unshifted multiply ARC_cmpyhfr, // Fractional 16+16 bit complex saturating rounded multiply ARC_cmpychfr, // Fractional 16+16 bit complex saturating rounded conjugated multiply ARC_vmsub2hf, // Dual 16x16 saturating fractional multiply subtract ARC_vmsub2hfr, // Dual 16x16 saturating rounded fractional multiply subtract ARC_cmpychnfr, // Fractional 16+16 bit complex saturating rounded unshifted conjugated multiply ARC_cmachnfr, // Fractional 16+16 bit complex saturating rounded unshifted multiply accumulate ARC_cmachfr, // Fractional 16+16 bit complex saturating rounded unshifted accumulate ARC_cmacchnfr, // Fractional 16+16 bit complex saturating rounded conjugated multiply accumulate ARC_cmacchfr, // Fractional 16+16 bit complex saturating rounded unshifted conjugated multiply accumulate ARC_mpyf, // Signed 32-bit fractional saturating multiply ARC_mpyfr, // Signed 32-bit fractional saturating rounded multiply ARC_macf, // Signed 32-bit fractional saturating multiply accumulate ARC_macfr, // Signed 32-bit fractional saturating rounded multiply accumulate ARC_msubf, // Signed 32-bit fractional saturating multiply subtract ARC_msubfr, // Signed 32-bit fractional saturating rounded multiply subtract ARC_divf, // Signed 32-bit fractional division ARC_vmac2hnfr, // Dual signed 16-bit fractional saturating rounded multiply accumulate ARC_vmsub2hnfr, // Dual signed 16-bit fractional saturating rounded multiply subtract ARC_mpydf, // Signed 32-bit fractional multiply (wide) ARC_macdf, // Signed 32-bit fractional multiply accumulate (wide) ARC_msubwhfl, // Signed 32 x 16 (lower) fractional saturating multiply subtract ARC_msubdf, // Signed 32-bit fractional multiply subtract (wide) ARC_dmpyhbl, // Dual 16x8 signed multiply with lower two bytes ARC_dmpyhbm, // Dual 16x8 signed multiply with upper two bytes ARC_dmachbl, // Dual 16x8 signed multiply accumulate with lower two bytes ARC_dmachbm, // Dual 16x8 signed multiply accumulate with upper two bytes ARC_msubwhflr, // Signed 32 x 16 (lower) fractional saturating rounded multiply subtract ARC_cmpyhfmr, // Fractional 16+16 bit complex x 16bit real (upper) saturating rounded multiply ARC_cbflyhf0r, // Fractional 16+16 bit complex FFT butterfly, first half ARC_mpywhl, // Signed 32 x 16 (lower) multiply ARC_macwhl, // Signed 32 x 16 (lower) multiply accumulate ARC_mpywhul, // Unsigned 32 x 16 (lower) multiply ARC_macwhul, // Unsigned 32 x 16 (lower) multiply accumulate ARC_mpywhfm, // Signed 32 x 16 (upper) fractional saturating multiply ARC_mpywhfmr, // Signed 32 x 16 (upper) fractional saturating rounded multiply ARC_macwhfm, // Signed 32 x 16 (upper) fractional saturating multiply accumulate ARC_macwhfmr, // Signed 32 x 16 (upper) fractional saturating rounded multiply accumulate ARC_mpywhfl, // Signed 32 x 16 (lower) fractional saturating multiply ARC_mpywhflr, // Signed 32 x 16 (lower) fractional saturating rounded multiply ARC_macwhfl, // Signed 32 x 16 (lower) fractional saturating multiply accumulate ARC_macwhflr, // Signed 32 x 16 (lower) fractional saturating rounded multiply accumulate ARC_macwhkl, // Signed 32 x 16 (lower) 16-bit shifted multiply accumulate ARC_macwhkul, // Unsigned 32 x 16 (lower) 16-bit shifted multiply accumulate ARC_mpywhkl, // Signed 32 x 16 (lower) 16-bit shifted multiply ARC_mpywhkul, // Unsigned 32 x 16 (lower) 16-bit shifted multiply ARC_msubwhfm, // Signed 32 x 16 (upper) fractional saturating multiply subtract ARC_msubwhfmr, // Signed 32 x 16 (upper) fractional saturating rounded multiply subtract // ARCv2 32-bit extension major 6 SOP instructions ARC_cbflyhf1r, // Fractional 16+16 bit complex FFT butterfly, second half // ARCv2 FPU instructions ARC_fscmp, // Single precision floating point compare ARC_fscmpf, // Single precision floating point compare (IEEE 754 flag generation) ARC_fsmadd, // Single precision floating point fused multiply add ARC_fsmsub, // Single precision floating point fused multiply subtract ARC_fsdiv, // Single precision floating point division ARC_fcvt32, // Single precision floating point / integer conversion ARC_fssqrt, // Single precision floating point square root // ARCv2 jump / execute indexed instructions ARC_jli, // Jump and link indexed ARC_ei, // Execute indexed ARC_kflag, // Set kernel flags ARC_wevt, // Enter sleep state ARC_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * */ enum { TMS28_null = 0, // Unknown Operation TMS28_aborti, TMS28_abs, TMS28_abstc, TMS28_add, TMS28_addb, TMS28_addcl, TMS28_addcu, TMS28_addl, TMS28_addu, TMS28_addul, TMS28_adrk, TMS28_and, TMS28_andb, TMS28_asp, TMS28_asr, TMS28_asr64, TMS28_asrl, TMS28_b, TMS28_banz, TMS28_bar, TMS28_bf, TMS28_c27map, TMS28_c27obj, TMS28_c28addr, TMS28_c28map, TMS28_c28obj, TMS28_clrc, TMS28_cmp, TMS28_cmp64, TMS28_cmpb, TMS28_cmpl, TMS28_cmpr, TMS28_csb, TMS28_dec, TMS28_dint, TMS28_dmac, TMS28_dmov, TMS28_eallow, TMS28_edis, TMS28_eint, TMS28_estop0, TMS28_estop1, TMS28_ffc, TMS28_flip, TMS28_iack, TMS28_idle, TMS28_imacl, TMS28_impyal, TMS28_impyl, TMS28_impysl, TMS28_impyxul, TMS28_in, TMS28_inc, TMS28_intr, TMS28_iret, TMS28_lb, TMS28_lc, TMS28_lcr, TMS28_loopnz, TMS28_loopz, TMS28_lpaddr, TMS28_lret, TMS28_lrete, TMS28_lretr, TMS28_lsl, TMS28_lsl64, TMS28_lsll, TMS28_lsr, TMS28_lsr64, TMS28_lsrl, TMS28_mac, TMS28_max, TMS28_maxcul, TMS28_maxl, TMS28_min, TMS28_mincul, TMS28_minl, TMS28_mov, TMS28_mova, TMS28_movad, TMS28_movb, TMS28_movdl, TMS28_movh, TMS28_movl, TMS28_movp, TMS28_movs, TMS28_movu, TMS28_movw, TMS28_movx, TMS28_movz, TMS28_mpy, TMS28_mpya, TMS28_mpyb, TMS28_mpys, TMS28_mpyu, TMS28_mpyxu, TMS28_nasp, TMS28_neg, TMS28_neg64, TMS28_negtc, TMS28_nop, TMS28_norm, TMS28_not, TMS28_or, TMS28_orb, TMS28_out, TMS28_pop, TMS28_pread, TMS28_push, TMS28_pwrite, TMS28_qmacl, TMS28_qmpyal, TMS28_qmpyl, TMS28_qmpysl, TMS28_qmpyul, TMS28_qmpyxul, TMS28_rol, TMS28_ror, TMS28_rpt, TMS28_sat, TMS28_sat64, TMS28_sb, TMS28_sbbu, TMS28_sbf, TMS28_sbrk, TMS28_setc, TMS28_sfr, TMS28_spm, TMS28_sqra, TMS28_sqrs, TMS28_sub, TMS28_subb, TMS28_subbl, TMS28_subcu, TMS28_subcul, TMS28_subl, TMS28_subr, TMS28_subrl, TMS28_subu, TMS28_subul, TMS28_sxtb, TMS28_tbit, TMS28_tclr, TMS28_test, TMS28_trap, TMS28_tset, TMS28_uout, TMS28_xb, TMS28_xbanz, TMS28_xcall, TMS28_xmac, TMS28_xmacd, TMS28_xor, TMS28_xorb, TMS28_xpread, TMS28_xpwrite, TMS28_xret, TMS28_xretc, TMS28_zalr, TMS28_zap, TMS28_zapa, TMS28_last, }; enum { UNSP_null = 0, // Unknown Operation // ALU UNSP_add, // Add UNSP_adc, // Add with Carry UNSP_sub, // Subtract UNSP_sbc, // Subtract with Carry UNSP_cmp, // Compare UNSP_cmpc, // Compare with Carry? UNSP_neg, // Negate UNSP_negc, // Negate with Carry? UNSP_xor, // Exclusive-OR UNSP_load, // Load UNSP_or, // OR UNSP_and, // AND UNSP_test, // Test UNSP_store, // Store UNSP_add_s, // Add (Simple) UNSP_adc_s, // Add with Carry (Simple) UNSP_sub_s, // Subtract (Simple) UNSP_sbc_s, // Subtract with Carry (Simple) UNSP_cmp_s, // Compare (Simple) UNSP_cmpc_s, // Compare with Carry? (Simple) UNSP_neg_s, // Negate (Simple) UNSP_negc_s, // Negate with Carry? (Simple) UNSP_xor_s, // Exclusive-OR (Simple) UNSP_load_s, // Load (Simple) UNSP_or_s, // OR (Simple) UNSP_and_s, // AND (Simple) UNSP_test_s, // Test (Simple) UNSP_store_s, // Store (Simple) // Misc UNSP_retf, // Return Function UNSP_reti, // Return Interrupt UNSP_pop, // Pop from Stack UNSP_push, // Push to Stack UNSP_call, // Call UNSP_goto, // Goto (far jump) UNSP_nop, // NOP UNSP_exp, // Effective Exponent // Jump UNSP_jb, // Jump if Below (unsigned) [jcc, jnae] UNSP_jae, // Jump if Above or Equal (unsigned) [jcs, jnb] UNSP_jge, // Jump if Greater or Equal (signed) [jsc, jnl] UNSP_jl, // Jump if Less (signed) [jss, jnge] UNSP_jne, // Jump if Not Equal [jnz] UNSP_je, // Jump if Equal [jz] UNSP_jpl, // Jump if Positive UNSP_jmi, // Jump if Negative UNSP_jbe, // Jump if Below or Equal (unsigned) [jna] UNSP_ja, // Jump if Above (unsigned) [jnbe] UNSP_jle, // Jump if Less or Equal (signed) [jng] UNSP_jg, // Jump if Greater (signed) [jnle] UNSP_jvc, // Jump if Not Overflow UNSP_jvs, // Jump if Overflow UNSP_jmp, // Jump // Multiplication/Division UNSP_mulss, // Multiply Signed * Signed UNSP_mulus, // Multiply Unsigned * Signed UNSP_muluu, // Multiply Unsigned * Unsigned UNSP_divs, // Divide (Sign) UNSP_divq, // Divide (Quotient) // Interrupt UNSP_int1, // Interrupt flags UNSP_int2, // Interrupt flags UNSP_fir_mov, // FIR_MOV setting UNSP_fraction, // FRACTION setting UNSP_irq, // IRQ setting UNSP_secbank, // SECBANK setting UNSP_fiq, // FIQ setting UNSP_irqnest, // IRQNEST setting UNSP_break, // BREAK // Shift UNSP_asr, // Arithmetic shift right UNSP_asror, // Arithmetic shift right OR UNSP_lsl, // Logical shift left UNSP_lslor, // Logical shift left OR UNSP_lsr, // Logical shift right UNSP_lsror, // Logical shift right OR UNSP_rol, // Rotate left UNSP_ror, // Rotate right // Bitops UNSP_tstb, // Test bit UNSP_setb, // Set bit UNSP_clrb, // Clear bit UNSP_invb, // Invert bit UNSP_last, }; /* * Dalvik opcode enumeration. */ enum { DALVIK_UNUSED = 0, DALVIK_NOP, DALVIK_MOVE, DALVIK_MOVE_FROM16, DALVIK_MOVE_16, DALVIK_MOVE_WIDE, DALVIK_MOVE_WIDE_FROM16, DALVIK_MOVE_WIDE_16, DALVIK_MOVE_OBJECT, DALVIK_MOVE_OBJECT_FROM16, DALVIK_MOVE_OBJECT_16, DALVIK_MOVE_RESULT, DALVIK_MOVE_RESULT_WIDE, DALVIK_MOVE_RESULT_OBJECT, DALVIK_MOVE_EXCEPTION, DALVIK_RETURN_VOID, DALVIK_RETURN, DALVIK_RETURN_WIDE, DALVIK_RETURN_OBJECT, DALVIK_CONST_4, DALVIK_CONST_16, DALVIK_CONST, DALVIK_CONST_HIGH16, DALVIK_CONST_WIDE_16, DALVIK_CONST_WIDE_32, DALVIK_CONST_WIDE, DALVIK_CONST_WIDE_HIGH16, DALVIK_CONST_STRING, DALVIK_CONST_STRING_JUMBO, DALVIK_CONST_CLASS, DALVIK_MONITOR_ENTER, DALVIK_MONITOR_EXIT, DALVIK_CHECK_CAST, DALVIK_INSTANCE_OF, DALVIK_ARRAY_LENGTH, DALVIK_NEW_INSTANCE, DALVIK_NEW_ARRAY, DALVIK_FILLED_NEW_ARRAY, DALVIK_FILLED_NEW_ARRAY_RANGE, DALVIK_FILL_ARRAY_DATA, DALVIK_THROW, DALVIK_GOTO, DALVIK_GOTO_16, DALVIK_GOTO_32, DALVIK_PACKED_SWITCH, DALVIK_SPARSE_SWITCH, DALVIK_CMPL_FLOAT, DALVIK_CMPG_FLOAT, DALVIK_CMPL_DOUBLE, DALVIK_CMPG_DOUBLE, DALVIK_CMP_LONG, DALVIK_IF_EQ, DALVIK_IF_NE, DALVIK_IF_LT, DALVIK_IF_GE, DALVIK_IF_GT, DALVIK_IF_LE, DALVIK_IF_EQZ, DALVIK_IF_NEZ, DALVIK_IF_LTZ, DALVIK_IF_GEZ, DALVIK_IF_GTZ, DALVIK_IF_LEZ, DALVIK_AGET, DALVIK_AGET_WIDE, DALVIK_AGET_OBJECT, DALVIK_AGET_BOOLEAN, DALVIK_AGET_BYTE, DALVIK_AGET_CHAR, DALVIK_AGET_SHORT, DALVIK_APUT, DALVIK_APUT_WIDE, DALVIK_APUT_OBJECT, DALVIK_APUT_BOOLEAN, DALVIK_APUT_BYTE, DALVIK_APUT_CHAR, DALVIK_APUT_SHORT, DALVIK_IGET, DALVIK_IGET_WIDE, DALVIK_IGET_OBJECT, DALVIK_IGET_BOOLEAN, DALVIK_IGET_BYTE, DALVIK_IGET_CHAR, DALVIK_IGET_SHORT, DALVIK_IPUT, DALVIK_IPUT_WIDE, DALVIK_IPUT_OBJECT, DALVIK_IPUT_BOOLEAN, DALVIK_IPUT_BYTE, DALVIK_IPUT_CHAR, DALVIK_IPUT_SHORT, DALVIK_SGET, DALVIK_SGET_WIDE, DALVIK_SGET_OBJECT, DALVIK_SGET_BOOLEAN, DALVIK_SGET_BYTE, DALVIK_SGET_CHAR, DALVIK_SGET_SHORT, DALVIK_SPUT, DALVIK_SPUT_WIDE, DALVIK_SPUT_OBJECT, DALVIK_SPUT_BOOLEAN, DALVIK_SPUT_BYTE, DALVIK_SPUT_CHAR, DALVIK_SPUT_SHORT, DALVIK_INVOKE_VIRTUAL, DALVIK_INVOKE_SUPER, DALVIK_INVOKE_DIRECT, DALVIK_INVOKE_STATIC, DALVIK_INVOKE_INTERFACE, DALVIK_INVOKE_VIRTUAL_RANGE, DALVIK_INVOKE_SUPER_RANGE, DALVIK_INVOKE_DIRECT_RANGE, DALVIK_INVOKE_STATIC_RANGE, DALVIK_INVOKE_INTERFACE_RANGE, DALVIK_NEG_INT, DALVIK_NOT_INT, DALVIK_NEG_LONG, DALVIK_NOT_LONG, DALVIK_NEG_FLOAT, DALVIK_NEG_DOUBLE, DALVIK_INT_TO_LONG, DALVIK_INT_TO_FLOAT, DALVIK_INT_TO_DOUBLE, DALVIK_LONG_TO_INT, DALVIK_LONG_TO_FLOAT, DALVIK_LONG_TO_DOUBLE, DALVIK_FLOAT_TO_INT, DALVIK_FLOAT_TO_LONG, DALVIK_FLOAT_TO_DOUBLE, DALVIK_DOUBLE_TO_INT, DALVIK_DOUBLE_TO_LONG, DALVIK_DOUBLE_TO_FLOAT, DALVIK_INT_TO_BYTE, DALVIK_INT_TO_CHAR, DALVIK_INT_TO_SHORT, DALVIK_ADD_INT, DALVIK_SUB_INT, DALVIK_MUL_INT, DALVIK_DIV_INT, DALVIK_REM_INT, DALVIK_AND_INT, DALVIK_OR_INT, DALVIK_XOR_INT, DALVIK_SHL_INT, DALVIK_SHR_INT, DALVIK_USHR_INT, DALVIK_ADD_LONG, DALVIK_SUB_LONG, DALVIK_MUL_LONG, DALVIK_DIV_LONG, DALVIK_REM_LONG, DALVIK_AND_LONG, DALVIK_OR_LONG, DALVIK_XOR_LONG, DALVIK_SHL_LONG, DALVIK_SHR_LONG, DALVIK_USHR_LONG, DALVIK_ADD_FLOAT, DALVIK_SUB_FLOAT, DALVIK_MUL_FLOAT, DALVIK_DIV_FLOAT, DALVIK_REM_FLOAT, DALVIK_ADD_DOUBLE, DALVIK_SUB_DOUBLE, DALVIK_MUL_DOUBLE, DALVIK_DIV_DOUBLE, DALVIK_REM_DOUBLE, DALVIK_ADD_INT_2ADDR, DALVIK_SUB_INT_2ADDR, DALVIK_MUL_INT_2ADDR, DALVIK_DIV_INT_2ADDR, DALVIK_REM_INT_2ADDR, DALVIK_AND_INT_2ADDR, DALVIK_OR_INT_2ADDR, DALVIK_XOR_INT_2ADDR, DALVIK_SHL_INT_2ADDR, DALVIK_SHR_INT_2ADDR, DALVIK_USHR_INT_2ADDR, DALVIK_ADD_LONG_2ADDR, DALVIK_SUB_LONG_2ADDR, DALVIK_MUL_LONG_2ADDR, DALVIK_DIV_LONG_2ADDR, DALVIK_REM_LONG_2ADDR, DALVIK_AND_LONG_2ADDR, DALVIK_OR_LONG_2ADDR, DALVIK_XOR_LONG_2ADDR, DALVIK_SHL_LONG_2ADDR, DALVIK_SHR_LONG_2ADDR, DALVIK_USHR_LONG_2ADDR, DALVIK_ADD_FLOAT_2ADDR, DALVIK_SUB_FLOAT_2ADDR, DALVIK_MUL_FLOAT_2ADDR, DALVIK_DIV_FLOAT_2ADDR, DALVIK_REM_FLOAT_2ADDR, DALVIK_ADD_DOUBLE_2ADDR, DALVIK_SUB_DOUBLE_2ADDR, DALVIK_MUL_DOUBLE_2ADDR, DALVIK_DIV_DOUBLE_2ADDR, DALVIK_REM_DOUBLE_2ADDR, DALVIK_ADD_INT_LIT16, DALVIK_RSUB_INT, // no _LIT16 suffix for this DALVIK_MUL_INT_LIT16, DALVIK_DIV_INT_LIT16, DALVIK_REM_INT_LIT16, DALVIK_AND_INT_LIT16, DALVIK_OR_INT_LIT16, DALVIK_XOR_INT_LIT16, DALVIK_ADD_INT_LIT8, DALVIK_RSUB_INT_LIT8, DALVIK_MUL_INT_LIT8, DALVIK_DIV_INT_LIT8, DALVIK_REM_INT_LIT8, DALVIK_AND_INT_LIT8, DALVIK_OR_INT_LIT8, DALVIK_XOR_INT_LIT8, DALVIK_SHL_INT_LIT8, DALVIK_SHR_INT_LIT8, DALVIK_USHR_INT_LIT8, DALVIK_IGET_VOLATILE, DALVIK_IPUT_VOLATILE, DALVIK_SGET_VOLATILE, DALVIK_SPUT_VOLATILE, DALVIK_IGET_OBJECT_VOLATILE, DALVIK_IGET_WIDE_VOLATILE, DALVIK_IPUT_WIDE_VOLATILE, DALVIK_SGET_WIDE_VOLATILE, DALVIK_SPUT_WIDE_VOLATILE, // The "breakpoint" instruction is special, in that it should never // be seen by anything but the debug interpreter. During debugging // it takes the place of an arbitrary opcode, which means operations // like "tell me the opcode width so I can find the next instruction" // aren't possible. (This is correctable, but probably not useful.) DALVIK_BREAKPOINT, DALVIK_THROW_VERIFICATION_ERROR, DALVIK_EXECUTE_INLINE, DALVIK_EXECUTE_INLINE_RANGE, DALVIK_INVOKE_DIRECT_EMPTY, DALVIK_RETURN_VOID_BARRIER, DALVIK_IGET_QUICK, DALVIK_IGET_WIDE_QUICK, DALVIK_IGET_OBJECT_QUICK, DALVIK_IPUT_QUICK, DALVIK_IPUT_WIDE_QUICK, DALVIK_IPUT_OBJECT_QUICK, DALVIK_INVOKE_VIRTUAL_QUICK, DALVIK_INVOKE_VIRTUAL_QUICK_RANGE, DALVIK_INVOKE_SUPER_QUICK, DALVIK_INVOKE_SUPER_QUICK_RANGE, DALVIK_IPUT_OBJECT_VOLATILE, DALVIK_SGET_OBJECT_VOLATILE, DALVIK_SPUT_OBJECT_VOLATILE, // dex-file format 038 DALVIK_INVOKE_POLYMORPHIC, DALVIK_INVOKE_POLYMORPHIC_RANGE, DALVIK_INVOKE_CUSTOM, DALVIK_INVOKE_CUSTOM_RANGE, DALVIK_LAST, }; /* this file was entirely generated by gen_opc.py */ enum { s39_null = 0, s39_a, // add (32) s39_ad, // add normalized (long HFP) s39_adb, // add (long BFP) s39_adbr, // add (long BFP) s39_adr, // add normalized (long HFP) s39_adtr, // add (long DFP) s39_adtra, // add (long DFP) s39_ae, // add normalized (short HFP) s39_aeb, // add (short BFP) s39_aebr, // add (short BFP) s39_aer, // add normalized (short HFP) s39_afi, // add immediate (32) s39_ag, // add (64) s39_agf, // add (64 <- 32) s39_agfi, // add immediate (64 <- 32) s39_agfr, // add (64 <- 32) s39_agh, // add halfword (64 <- 16) s39_aghi, // add halfword immediate (64 <- 16) s39_aghik, // add immediate (64 <- 16) s39_agr, // add (64) s39_agrk, // add (64) s39_agsi, // add immediate (64 <- 8) s39_ah, // add halfword (32 <- 16) s39_ahhhr, // add high (32) s39_ahhlr, // add high (32) s39_ahi, // add halfword immediate (32 <- 16) s39_ahik, // add immediate (32 <- 16) s39_ahy, // add halfword (32 <- 16) s39_aih, // add immediate high (32) s39_al, // add logical (32) s39_alc, // add logical with carry (32) s39_alcg, // add logical with carry (64) s39_alcgr, // add logical with carry (64) s39_alcr, // add logical with carry (32) s39_alfi, // add logical immediate (32) s39_alg, // add logical (64) s39_algf, // add logical (64 <- 32) s39_algfi, // add logical immediate (64 <- 32) s39_algfr, // add logical (64 <- 32) s39_alghsik, // add logical with signed immediate (64 <- 16) s39_algr, // add logical (64) s39_algrk, // add logical (64) s39_algsi, // add logical with signed immediate (64 <- 8) s39_alhhhr, // add logical high (32) s39_alhhlr, // add logical high (32) s39_alhsik, // add logical with signed immediate (32 <- 16) s39_alr, // add logical (32) s39_alrk, // add logical (32) s39_alsi, // add logical with signed immediate (32 <- 8) s39_alsih, // add logical with signed immediate high (32) s39_alsihn, // add logical with signed immediate high (32) s39_aly, // add logical (32) s39_ap, // add decimal s39_ar, // add (32) s39_ark, // add (32) s39_asi, // add immediate (32 <- 8) s39_au, // add unnormalized (short HFP) s39_aur, // add unnormalized (short HFP) s39_aw, // add unnormalized (long HFP) s39_awr, // add unnormalized (long HFP) s39_axbr, // add (extended BFP) s39_axr, // add normalized (extended HFP) s39_axtr, // add (extended DFP) s39_axtra, // add (extended DFP) s39_ay, // add (32) s39_b, // unconditional branch s39_bo, // branch on condition, jump on overflow / if ones s39_bh, // branch on condition, jump on A high s39_bnle, // branch on condition, jump on not low or equal s39_bl, // branch on condition, jump on A low s39_bnhe, // branch on condition, jump on not high or equal s39_blh, // branch on condition, jump on low or high s39_bne, // branch on condition, jump on A not equal B s39_be, // branch on condition, jump on A equal B s39_bnlh, // branch on condition, jump on not low or high s39_bhe, // branch on condition, jump on high or equal s39_bnl, // branch on condition, jump on A not low s39_ble, // branch on condition, jump on low or equal s39_bnh, // branch on condition, jump on A not high s39_bno, // branch on condition, jump on not overflow / if not ones s39_bor, // branch on condition, jump on overflow / if ones s39_bhr, // branch on condition, jump on A high s39_bnler, // branch on condition, jump on not low or equal s39_blr, // branch on condition, jump on A low s39_bnher, // branch on condition, jump on not high or equal s39_blhr, // branch on condition, jump on low or high s39_bner, // branch on condition, jump on A not equal B s39_ber, // branch on condition, jump on A equal B s39_bnlhr, // branch on condition, jump on not low or high s39_bher, // branch on condition, jump on high or equal s39_bnlr, // branch on condition, jump on A not low s39_bler, // branch on condition, jump on low or equal s39_bnhr, // branch on condition, jump on A not high s39_bnor, // branch on condition, jump on not overflow / if not ones s39_bakr, // branch and stack s39_bal, // branch and link s39_balr, // branch and link s39_bas, // branch and save s39_basr, // branch and save s39_bassm, // branch and save and set mode s39_bc, // branch on condition s39_bcr, // branch on condition s39_bct, // branch on count (32) s39_bctg, // branch on count (64) s39_bctgr, // branch on count (64) s39_bctr, // branch on count (32) s39_bi, // unconditional indirect branch s39_bio, // branch indirect on condition, jump on overflow / if ones s39_bih, // branch indirect on condition, jump on A high s39_binle, // branch indirect on condition, jump on not low or equal s39_bil, // branch indirect on condition, jump on A low s39_binhe, // branch indirect on condition, jump on not high or equal s39_bilh, // branch indirect on condition, jump on low or high s39_bine, // branch indirect on condition, jump on A not equal B s39_bie, // branch indirect on condition, jump on A equal B s39_binlh, // branch indirect on condition, jump on not low or high s39_bihe, // branch indirect on condition, jump on high or equal s39_binl, // branch indirect on condition, jump on A not low s39_bile, // branch indirect on condition, jump on low or equal s39_binh, // branch indirect on condition, jump on A not high s39_bino, // branch indirect on condition, jump on not overflow / if not ones s39_bic, // branch indirect on condition s39_bpp, // branch prediction preload s39_bprp, // branch prediction relative preload s39_br, // unconditional branch s39_bras, // branch relative and save s39_brasl, // branch relative and save long s39_brc, // branch relative on condition s39_brcl, // branch relative on condition long s39_brct, // branch relative on count (32) s39_brctg, // branch relative on count (64) s39_brcth, // branch relative on count high (32) s39_brxh, // branch relative on index high (32) s39_brxhg, // branch relative on index high (64) s39_brxle, // branch relative on index low or equal (32) s39_brxlg, // branch relative on index low or equal (64) s39_bsa, // branch and set authority s39_bsg, // branch in subspace group s39_bsm, // branch and set mode s39_bxh, // branch on index high (32) s39_bxhg, // branch on index high (64) s39_bxle, // branch on index low or equal (32) s39_bxleg, // branch on index low or equal (64) s39_c, // compare (32) s39_cd, // compare (long HFP) s39_cdb, // compare (long BFP) s39_cdbr, // compare (long BFP) s39_cdfbr, // convert from fixed (32 to long BFP) s39_cdfbra, // convert from fixed (32 to long BFP) s39_cdfr, // convert from fixed (32 to long HFP) s39_cdftr, // convert from fixed (32 to long DFP) s39_cdgbr, // convert from fixed (64 to long BFP) s39_cdgbra, // convert from fixed (64 to long BFP) s39_cdgr, // convert from fixed (64 to long HFP) s39_cdgtr, // convert from fixed (64 to long DFP) s39_cdgtra, // convert from fixed (64 to long DFP) s39_cdlfbr, // convert from logical (32 to long BFP) s39_cdlftr, // convert from logical (32 to long DFP) s39_cdlgbr, // convert from logical (64 to long BFP) s39_cdlgtr, // convert from logical (64 to long DFP) s39_cdpt, // convert from packed (to long DFP) s39_cdr, // compare (long HFP) s39_cds, // compare double and swap (32) s39_cdsg, // compare double and swap (64) s39_cdstr, // convert from signed packed (64 to long DFP) s39_cdsy, // compare double and swap (32) s39_cdtr, // compare (long DFP) s39_cdutr, // convert from unsigned packed (64 to long DFP) s39_cdzt, // convert from zoned (to long DFP) s39_ce, // compare (short HFP) s39_ceb, // compare (short BFP) s39_cebr, // compare (short BFP) s39_cedtr, // compare biased exponent (long DFP) s39_cefbr, // convert from fixed (32 to short BFP) s39_cefbra, // convert from fixed (32 to short BFP) s39_cefr, // convert from fixed (32 to short HFP) s39_cegbr, // convert from fixed (64 to short BFP) s39_cegbra, // convert from fixed (64 to short BFP) s39_cegr, // convert from fixed (64 to short HFP) s39_celfbr, // convert from logical (32 to short BFP) s39_celgbr, // convert from logical (64 to short BFP) s39_cer, // compare (short HFP) s39_cextr, // compare biased exponent (extended DFP) s39_cfc, // compare and form codeword s39_cfdbr, // convert to fixed (long BFP to 32) s39_cfdbra, // convert to fixed (long BFP to 32) s39_cfdr, // convert to fixed (long HFP to 32) s39_cfdtr, // convert to fixed (long DFP to 32) s39_cfebr, // convert to fixed (short BFP to 32) s39_cfebra, // convert to fixed (short BFP to 32) s39_cfer, // convert to fixed (short HFP to 32) s39_cfi, // compare immediate (32) s39_cfxbr, // convert to fixed (extended BFP to 32) s39_cfxbra, // convert to fixed (extended BFP to 32) s39_cfxr, // convert to fixed (extended HFP to 32) s39_cfxtr, // convert to fixed (extended DFP to 32) s39_cg, // compare (64) s39_cgdbr, // convert to fixed (long BFP to 64) s39_cgdbra, // convert to fixed (long BFP to 64) s39_cgdr, // convert to fixed (long HFP to 64) s39_cgdtr, // convert to fixed (long DFP to 64) s39_cgdtra, // convert to fixed (long DFP to 64) s39_cgebr, // convert to fixed (short BFP to 64) s39_cgebra, // convert to fixed (short BFP to 64) s39_cger, // convert to fixed (short HFP to 64) s39_cgf, // compare (64 <- 32) s39_cgfi, // compare immediate (64 <- 32) s39_cgfr, // compare (64 <- 32) s39_cgfrl, // compare relative long (64 <- 32) s39_cgh, // compare halfword (64 <- 16) s39_cghi, // compare halfword immediate (64 <- 16) s39_cghrl, // compare halfword relative long (64 <- 16) s39_cghsi, // compare halfword immediate (64 <- 16) s39_cgib, // compare immediate and branch (64 <- 8) s39_cgibh, // compare immediate and branch (64 <- 8), jump on A high s39_cgibnhe, // compare immediate and branch (64 <- 8), jump on not high or equal s39_cgiblh, // compare immediate and branch (64 <- 8), jump on low or high s39_cgibnlh, // compare immediate and branch (64 <- 8), jump on not low or high s39_cgibnl, // compare immediate and branch (64 <- 8), jump on A not low s39_cgible, // compare immediate and branch (64 <- 8), jump on low or equal s39_cgij, // compare immediate and branch relative (64 <- 8) s39_cgijh, // compare immediate and branch relative (64 <- 8), jump on A high s39_cgijnhe, // compare immediate and branch relative (64 <- 8), jump on not high or equal s39_cgijlh, // compare immediate and branch relative (64 <- 8), jump on low or high s39_cgijnlh, // compare immediate and branch relative (64 <- 8), jump on not low or high s39_cgijnl, // compare immediate and branch relative (64 <- 8), jump on A not low s39_cgijle, // compare immediate and branch relative (64 <- 8), jump on low or equal s39_cgit, // compare immediate and trap (64 <- 16) s39_cgith, // compare immediate and trap (64 <- 16), jump on A high s39_cgitnhe, // compare immediate and trap (64 <- 16), jump on not high or equal s39_cgitlh, // compare immediate and trap (64 <- 16), jump on low or high s39_cgitnlh, // compare immediate and trap (64 <- 16), jump on not low or high s39_cgitnl, // compare immediate and trap (64 <- 16), jump on A not low s39_cgitle, // compare immediate and trap (64 <- 16), jump on low or equal s39_cgr, // compare (64) s39_cgrb, // compare and branch (64) s39_cgrbh, // compare and branch (64), jump on A high s39_cgrbnhe, // compare and branch (64), jump on not high or equal s39_cgrblh, // compare and branch (64), jump on low or high s39_cgrbnlh, // compare and branch (64), jump on not low or high s39_cgrbnl, // compare and branch (64), jump on A not low s39_cgrble, // compare and branch (64), jump on low or equal s39_cgrj, // compare and branch relative (64) s39_cgrjh, // compare and branch relative (64), jump on A high s39_cgrjnhe, // compare and branch relative (64), jump on not high or equal s39_cgrjlh, // compare and branch relative (64), jump on low or high s39_cgrjnlh, // compare and branch relative (64), jump on not low or high s39_cgrjnl, // compare and branch relative (64), jump on A not low s39_cgrjle, // compare and branch relative (64), jump on low or equal s39_cgrl, // compare relative long (64) s39_cgrt, // compare and trap (64) s39_cgrth, // compare and trap (64), jump on A high s39_cgrtnhe, // compare and trap (64), jump on not high or equal s39_cgrtlh, // compare and trap (64), jump on low or high s39_cgrtnlh, // compare and trap (64), jump on not low or high s39_cgrtnl, // compare and trap (64), jump on A not low s39_cgrtle, // compare and trap (64), jump on low or equal s39_cgxbr, // convert to fixed (extended BFP to 64) s39_cgxbra, // convert to fixed (extended BFP to 64) s39_cgxr, // convert to fixed (extended HFP to 64) s39_cgxtr, // convert to fixed (extended DFP to 64) s39_cgxtra, // convert to fixed (extended DFP to 64) s39_ch, // compare halfword (32 <- 16) s39_chf, // compare high (32) s39_chhr, // compare high (32) s39_chhsi, // compare halfword immediate (16 <- 16) s39_chi, // compare halfword immediate (32 <- 16) s39_chlr, // compare high (32) s39_chrl, // compare halfword relative long (32 <- 16) s39_chsi, // compare halfword immediate (32 <- 16) s39_chy, // compare halfword (32 <- 16) s39_cib, // comapre immediate and branch (32 <- 8) s39_cibh, // comapre immediate and branch (32 <- 8), jump on A high s39_cibnhe, // comapre immediate and branch (32 <- 8), jump on not high or equal s39_ciblh, // comapre immediate and branch (32 <- 8), jump on low or high s39_cibnlh, // comapre immediate and branch (32 <- 8), jump on not low or high s39_cibnl, // comapre immediate and branch (32 <- 8), jump on A not low s39_cible, // comapre immediate and branch (32 <- 8), jump on low or equal s39_cih, // compare immediate high (32) s39_cij, // compare immediate and branch relative (32 <- 8) s39_cijh, // compare immediate and branch relative (32 <- 8), jump on A high s39_cijnhe, // compare immediate and branch relative (32 <- 8), jump on not high or equal s39_cijlh, // compare immediate and branch relative (32 <- 8), jump on low or high s39_cijnlh, // compare immediate and branch relative (32 <- 8), jump on not low or high s39_cijnl, // compare immediate and branch relative (32 <- 8), jump on A not low s39_cijle, // compare immediate and branch relative (32 <- 8), jump on low or equal s39_cit, // compare immediate and trap (32 <- 16) s39_cith, // compare immediate and trap (32 <- 16), jump on A high s39_citnhe, // compare immediate and trap (32 <- 16), jump on not high or equal s39_citlh, // compare immediate and trap (32 <- 16), jump on low or high s39_citnlh, // compare immediate and trap (32 <- 16), jump on not low or high s39_citnl, // compare immediate and trap (32 <- 16), jump on A not low s39_citle, // compare immediate and trap (32 <- 16), jump on low or equal s39_cksm, // checksum s39_cl, // compare logical (32) s39_clc, // compare logical (character) s39_clcl, // compare logical long s39_clcle, // compare logical long extended s39_clclu, // compare logical long unicode s39_clfdbr, // convert to logical (long BFP to 32) s39_clfdtr, // convert to logical (long DFP to 32) s39_clfebr, // convert to logical (short BFP to 32) s39_clfhsi, // compare logical immediate (32 <- 16) s39_clfi, // compare logical immediate (32) s39_clfit, // compare logical immediate and trap (32 <- 16) s39_clfith, // compare logical immediate and trap (32 <- 16), jump on A high s39_clfitnhe, // compare logical immediate and trap (32 <- 16), jump on not high or equal s39_clfitlh, // compare logical immediate and trap (32 <- 16), jump on low or high s39_clfitnlh, // compare logical immediate and trap (32 <- 16), jump on not low or high s39_clfitnl, // compare logical immediate and trap (32 <- 16), jump on A not low s39_clfitle, // compare logical immediate and trap (32 <- 16), jump on low or equal s39_clfxbr, // convert to logical (extended BFP to 32) s39_clfxtr, // convert to logical (extended DFP to 32) s39_clg, // compare logical (64) s39_clgdbr, // convert to logical (long BFP to 64) s39_clgdtr, // convert to logical (long DFP to 64) s39_clgebr, // convert to logical (short BFP to 64) s39_clgf, // compare logical (64 <- 32) s39_clgfi, // compare logical immediate (64 <- 32) s39_clgfr, // compare logical (64 <- 32) s39_clgfrl, // compare logical relative long (64 <- 32) s39_clghrl, // compare logical relative long (64 <- 16) s39_clghsi, // compare logical relative long (64 <- 16) s39_clgib, // compare logical immediate and branch (64 <- 8) s39_clgibh, // compare logical immediate and branch (64 <- 8), jump on A high s39_clgibnhe, // compare logical immediate and branch (64 <- 8), jump on not high or equal s39_clgiblh, // compare logical immediate and branch (64 <- 8), jump on low or high s39_clgibnlh, // compare logical immediate and branch (64 <- 8), jump on not low or high s39_clgibnl, // compare logical immediate and branch (64 <- 8), jump on A not low s39_clgible, // compare logical immediate and branch (64 <- 8), jump on low or equal s39_clgij, // compare logical immediate and branch relative (64 <- 8) s39_clgijh, // compare logical immediate and branch relative (64 <- 8), jump on A high s39_clgijnhe, // compare logical immediate and branch relative (64 <- 8), jump on not high or equal s39_clgijlh, // compare logical immediate and branch relative (64 <- 8), jump on low or high s39_clgijnlh, // compare logical immediate and branch relative (64 <- 8), jump on not low or high s39_clgijnl, // compare logical immediate and branch relative (64 <- 8), jump on A not low s39_clgijle, // compare logical immediate and branch relative (64 <- 8), jump on low or equal s39_clgit, // compare logical immedate and trap (64 <- 16) s39_clgith, // compare logical immedate and trap (64 <- 16), jump on A high s39_clgitnhe, // compare logical immedate and trap (64 <- 16), jump on not high or equal s39_clgitlh, // compare logical immedate and trap (64 <- 16), jump on low or high s39_clgitnlh, // compare logical immedate and trap (64 <- 16), jump on not low or high s39_clgitnl, // compare logical immedate and trap (64 <- 16), jump on A not low s39_clgitle, // compare logical immedate and trap (64 <- 16), jump on low or equal s39_clgr, // compare logical (64) s39_clgrb, // compare logical and branch (64) s39_clgrbh, // compare logical and branch (64), jump on A high s39_clgrbnhe, // compare logical and branch (64), jump on not high or equal s39_clgrblh, // compare logical and branch (64), jump on low or high s39_clgrbnlh, // compare logical and branch (64), jump on not low or high s39_clgrbnl, // compare logical and branch (64), jump on A not low s39_clgrble, // compare logical and branch (64), jump on low or equal s39_clgrj, // compare logical and branch relative (64) s39_clgrjh, // compare logical and branch relative (64), jump on A high s39_clgrjnhe, // compare logical and branch relative (64), jump on not high or equal s39_clgrjlh, // compare logical and branch relative (64), jump on low or high s39_clgrjnlh, // compare logical and branch relative (64), jump on not low or high s39_clgrjnl, // compare logical and branch relative (64), jump on A not low s39_clgrjle, // compare logical and branch relative (64), jump on low or equal s39_clgrl, // compare logical relative long (64) s39_clgrt, // compare logical and trap (64) s39_clgrth, // compare logical and trap (64), jump on A high s39_clgrtnhe, // compare logical and trap (64), jump on not high or equal s39_clgrtlh, // compare logical and trap (64), jump on low or high s39_clgrtnlh, // compare logical and trap (64), jump on not low or high s39_clgrtnl, // compare logical and trap (64), jump on A not low s39_clgrtle, // compare logical and trap (64), jump on low or equal s39_clgt, // compare logical and trap (64) s39_clgth, // compare logical and trap (64), jump on A high s39_clgtnhe, // compare logical and trap (64), jump on not high or equal s39_clgtlh, // compare logical and trap (64), jump on low or high s39_clgtnlh, // compare logical and trap (64), jump on not low or high s39_clgtnl, // compare logical and trap (64), jump on A not low s39_clgtle, // compare logical and trap (64), jump on low or equal s39_clgxbr, // convert to logical (extended BFP to 64) s39_clgxtr, // convert to logical (extended DFP to 64) s39_clhf, // compare logical high (32) s39_clhhr, // compare logical high (32) s39_clhhsi, // compare logical immediate (16 <- 16) s39_clhlr, // compare logical high (32) s39_clhrl, // compare logical relative long (32 <- 16) s39_cli, // compare logical (immediate) s39_clib, // compare logical immediate and branch (32 <- 8) s39_clibh, // compare logical immediate and branch (32 <- 8), jump on A high s39_clibnhe, // compare logical immediate and branch (32 <- 8), jump on not high or equal s39_cliblh, // compare logical immediate and branch (32 <- 8), jump on low or high s39_clibnlh, // compare logical immediate and branch (32 <- 8), jump on not low or high s39_clibnl, // compare logical immediate and branch (32 <- 8), jump on A not low s39_clible, // compare logical immediate and branch (32 <- 8), jump on low or equal s39_clih, // compare logical immediate high (32) s39_clij, // compare logical immediate and branch relative (32 <- 8) s39_clijh, // compare logical immediate and branch relative (32 <- 8), jump on A high s39_clijnhe, // compare logical immediate and branch relative (32 <- 8), jump on not high or equal s39_clijlh, // compare logical immediate and branch relative (32 <- 8), jump on low or high s39_clijnlh, // compare logical immediate and branch relative (32 <- 8), jump on not low or high s39_clijnl, // compare logical immediate and branch relative (32 <- 8), jump on A not low s39_clijle, // compare logical immediate and branch relative (32 <- 8), jump on low or equal s39_cliy, // compare logical (immediate) s39_clm, // compare logical character under mask (low) s39_clmh, // compare logical character under mask (high) s39_clmy, // compare logical (32) s39_clr, // compare logical (32) s39_clrb, // compare logical and branch (32) s39_clrbh, // compare logical and branch (32), jump on A high s39_clrbnhe, // compare logical and branch (32), jump on not high or equal s39_clrblh, // compare logical and branch (32), jump on low or high s39_clrbnlh, // compare logical and branch (32), jump on not low or high s39_clrbnl, // compare logical and branch (32), jump on A not low s39_clrble, // compare logical and branch (32), jump on low or equal s39_clrj, // compare logical and branch relative (32) s39_clrjh, // compare logical and branch relative (32), jump on A high s39_clrjnhe, // compare logical and branch relative (32), jump on not high or equal s39_clrjlh, // compare logical and branch relative (32), jump on low or high s39_clrjnlh, // compare logical and branch relative (32), jump on not low or high s39_clrjnl, // compare logical and branch relative (32), jump on A not low s39_clrjle, // compare logical and branch relative (32), jump on low or equal s39_clrl, // compare logical relative long (32) s39_clrt, // compare logical and trap (32) s39_clrth, // compare logical and trap (32), jump on A high s39_clrtnhe, // compare logical and trap (32), jump on not high or equal s39_clrtlh, // compare logical and trap (32), jump on low or high s39_clrtnlh, // compare logical and trap (32), jump on not low or high s39_clrtnl, // compare logical and trap (32), jump on A not low s39_clrtle, // compare logical and trap (32), jump on low or equal s39_clst, // compare logical string s39_clt, // compare logical and trap (32) s39_clth, // compare logical and trap (32), jump on A high s39_cltnhe, // compare logical and trap (32), jump on not high or equal s39_cltlh, // compare logical and trap (32), jump on low or high s39_cltnlh, // compare logical and trap (32), jump on not low or high s39_cltnl, // compare logical and trap (32), jump on A not low s39_cltle, // compare logical and trap (32), jump on low or equal s39_cly, // compare logical (32) s39_cmpsc, // compression call s39_cp, // compare decimal s39_cpdt, // convert to packed (from long DFP) s39_cpsdr, // copy sign (long) s39_cpxt, // convert to packed (from extended DFP) s39_cpya, // copy access s39_cr, // compare (32) s39_crb, // compare and branch (32) s39_crbh, // compare and branch (32), jump on A high s39_crbnhe, // compare and branch (32), jump on not high or equal s39_crblh, // compare and branch (32), jump on low or high s39_crbnlh, // compare and branch (32), jump on not low or high s39_crbnl, // compare and branch (32), jump on A not low s39_crble, // compare and branch (32), jump on low or equal s39_crdte, // compare and replace DAT table entry s39_crj, // compare and branch relative (32) s39_crjh, // compare and branch relative (32), jump on A high s39_crjnhe, // compare and branch relative (32), jump on not high or equal s39_crjlh, // compare and branch relative (32), jump on low or high s39_crjnlh, // compare and branch relative (32), jump on not low or high s39_crjnl, // compare and branch relative (32), jump on A not low s39_crjle, // compare and branch relative (32), jump on low or equal s39_crl, // compare relative long (32) s39_crt, // compare and trap (32) s39_crth, // compare and trap (32), jump on A high s39_crtnhe, // compare and trap (32), jump on not high or equal s39_crtlh, // compare and trap (32), jump on low or high s39_crtnlh, // compare and trap (32), jump on not low or high s39_crtnl, // compare and trap (32), jump on A not low s39_crtle, // compare and trap (32), jump on low or equal s39_cs, // compare and swap (32) s39_csch, // clear subchannel s39_csdtr, // convert to signed packed (long DFP to 64) s39_csg, // compare and swap (64) s39_csp, // compare and swap and purge (32) s39_cspg, // compare and swap and purge (64) s39_csst, // compare and swap and store s39_csxtr, // convert to signed packed (extended DFP to 128) s39_csy, // compare and swap (32) s39_cu12, // convert utf-8 to utf-16 s39_cu14, // convert utf-8 to utf-32 s39_cu21, // convert utf-16 to utf-8 s39_cu24, // convert utf-16 to utf-32 s39_cu41, // convert utf-32 to utf-8 s39_cu42, // convert utf-32 to utf-16 s39_cudtr, // convert to unsigned packed (long DFP to 64) s39_cuse, // compare until substring equal s39_cutfu, // convert utf-8 to unicode s39_cuutf, // convert unicode to utf-8 s39_cuxtr, // convert to unsigned packed (extended DFP to 128) s39_cvb, // convert to binary (32) s39_cvbg, // convert to binary (64) s39_cvby, // convert to binary (32) s39_cvd, // convert to decimal (32) s39_cvdg, // convert to decimal (64) s39_cvdy, // convert to decimal (32) s39_cxbr, // compare (extended BFP) s39_cxfbr, // convert from fixed (32 to extended BFP) s39_cxfbra, // convert from fixed (32 to extended BFP) s39_cxfr, // convert from fixed (32 to extended HFP) s39_cxftr, // convert from fixed (32 to extended DFP) s39_cxgbr, // convert from fixed (64 to extended BFP) s39_cxgbra, // convert from fixed (64 to extended BFP) s39_cxgr, // convert from fixed (64 to extended HFP) s39_cxgtr, // convert from fixed (64 to extended DFP) s39_cxgtra, // convert from fixed (64 to extended DFP) s39_cxlfbr, // convert from logical (32 to extended BFP) s39_cxlftr, // convert from logical (32 to extended DFP) s39_cxlgbr, // convert from logical (64 to extended BFP) s39_cxlgtr, // convert from logical (64 to extended DFP) s39_cxpt, // convert from packed (to extended DFP) s39_cxr, // compare (extended HFP) s39_cxstr, // convert from singed packed (128 to extended DFP) s39_cxtr, // compare (extended DFP) s39_cxutr, // convert from unsigned packed (128 to extended DFP) s39_cxzt, // convert from zoned (to extended DFP) s39_cy, // compare (32) s39_czdt, // convert to zoned (from long DFP) s39_czxt, // convert to zoned (from extended DFP) s39_d, // divide (32 <- 64) s39_dd, // divide (long HFP) s39_ddb, // divide (long BFP) s39_ddbr, // divide (long BFP) s39_ddr, // divide (long HFP) s39_ddtr, // divide (long DFP) s39_ddtra, // divide (long DFP) s39_de, // divide (short HFP) s39_deb, // divide (short BFP) s39_debr, // divide (short BFP) s39_der, // divide (short HFP) s39_dfltcc, // s39_diag, // diagnose s39_didbr, // divide to integer (long BFP) s39_diebr, // divide to integer (short BFP) s39_dl, // divide logical (32 <- 64) s39_dlg, // divide logical (64 <- 128) s39_dlgr, // divide logical (64 <- 128) s39_dlr, // divide logical (32 <- 64) s39_dp, // divide decimal s39_dr, // divide (32 <- 64) s39_dsg, // divide single (64) s39_dsgf, // divide single (64 <- 32) s39_dsgfr, // divide single (64 <- 32) s39_dsgr, // divide single (64) s39_dxbr, // divide (extended BFP) s39_dxr, // divide (extended HFP) s39_dxtr, // divide (extended DFP) s39_dxtra, // divide (extended DFP) s39_ear, // extract access s39_ecag, // extract cache attribute s39_ecctr, // extract cpu counter s39_ecpga, // extract coprocessor-group address s39_ectg, // extract cpu time s39_ed, // edit s39_edmk, // edit and mark s39_eedtr, // extract biased exponent (long DFP to 64) s39_eextr, // extract biased exponent (extended DFP to 64) s39_efpc, // extract fpc s39_epair, // extract primary ASN and instance s39_epar, // extract primary ASN s39_epctr, // extract peripheral counter s39_epsw, // extract psw s39_ereg, // extract stacked registers (32) s39_eregg, // extract stacked registers (64) s39_esair, // extract secondary ASN and instance s39_esar, // extract secondary ASN s39_esdtr, // extract significance (long DFP to 64) s39_esea, // extract and set extended authority s39_esta, // extract stacked state s39_esxtr, // extract significance (extended DFP to 64) s39_etnd, // extract transaction nesting depth s39_ex, // execute s39_exrl, // execute relative long s39_fidbr, // load fp integer (long BFP) s39_fidbra, // load fp integer (long BFP) s39_fidr, // load fp integer (long HFP) s39_fidtr, // load fp integer (long DFP) s39_fiebr, // load fp integer (short BFP) s39_fiebra, // load fp integer (short BFP) s39_fier, // load fp integer (short HFP) s39_fixbr, // load fp integer (extended BFP) s39_fixbra, // load fp integer (extended BFP) s39_fixr, // load fp integer (extended HFP) s39_fixtr, // load fp integer (extended DFP) s39_flogr, // find leftmost one s39_hdr, // halve (long HFP) s39_her, // halve (short HFP) s39_hsch, // halt subchannel s39_iac, // insert address space control s39_ic, // insert character s39_icm, // insert characters under mask (low) s39_icmh, // insert characters under mask (high) s39_icmy, // insert characters under mask (low) s39_icy, // insert character s39_idte, // invalidate dat table entry s39_iedtr, // insert biased exponent (64 to long DFP) s39_iextr, // insert biased exponent (64 to extended DFP) s39_iihf, // insert immediate (high) s39_iihh, // inset immediate (high high) s39_iihl, // insert immediate (high low) s39_iilf, // insert immediate (low) s39_iilh, // insert immediate (low high) s39_iill, // insert immediate (low low) s39_ipk, // insert PSW key s39_ipm, // insert program mask s39_ipte, // invalidate page table entry s39_irbm, // insert reference bits multiple s39_iske, // insert storage key extended s39_ivsk, // insert virtual storage key s39_j, // unconditional jump s39_jo, // conditional jump, jump on overflow / if ones s39_jh, // conditional jump, jump on A high s39_jnle, // conditional jump, jump on not low or equal s39_jl, // conditional jump, jump on A low s39_jnhe, // conditional jump, jump on not high or equal s39_jlh, // conditional jump, jump on low or high s39_jne, // conditional jump, jump on A not equal B s39_je, // conditional jump, jump on A equal B s39_jnlh, // conditional jump, jump on not low or high s39_jhe, // conditional jump, jump on high or equal s39_jnl, // conditional jump, jump on A not low s39_jle, // conditional jump, jump on low or equal s39_jnh, // conditional jump, jump on A not high s39_jno, // conditional jump, jump on not overflow / if not ones s39_jg, // unconditional jump long s39_jgo, // conditional jump long, jump on overflow / if ones s39_jgh, // conditional jump long, jump on A high s39_jgnle, // conditional jump long, jump on not low or equal s39_jgl, // conditional jump long, jump on A low s39_jgnhe, // conditional jump long, jump on not high or equal s39_jglh, // conditional jump long, jump on low or high s39_jgne, // conditional jump long, jump on A not equal B s39_jge, // conditional jump long, jump on A equal B s39_jgnlh, // conditional jump long, jump on not low or high s39_jghe, // conditional jump long, jump on high or equal s39_jgnl, // conditional jump long, jump on A not low s39_jgle, // conditional jump long, jump on low or equal s39_jgnh, // conditional jump long, jump on A not high s39_jgno, // conditional jump long, jump on not overflow / if not ones s39_kdb, // compare and signal (long BFP) s39_kdbr, // compare and signal (long BFP) s39_kdsa, // s39_kdtr, // compare and signal (long DFP) s39_keb, // compare and signal (short BFP) s39_kebr, // compare and signal (short BFP) s39_kimd, // compute intermediate message digest s39_klmd, // compute last message digest s39_km, // cipher message s39_kma, // cipher message with authentication s39_kmac, // compute message with authentication s39_kmc, // cipher message with chaining s39_kmctr, // cipher message with counter s39_kmf, // cipher message with cipher feedback s39_kmo, // cipher message with output feedback s39_kxbr, // compare and signal (extended BFP) s39_kxtr, // compare and signal (extended DFP) s39_l, // load (32) s39_la, // load address s39_laa, // load and add (32) s39_laag, // load and add (64) s39_laal, // load and add logical (32) s39_laalg, // load and add logical (64) s39_lae, // load address extended s39_laey, // load address extended s39_lam, // load access multiple s39_lamy, // load access multiple s39_lan, // load and and (32) s39_lang, // load and and (64) s39_lao, // load and or (32) s39_laog, // load and or (64) s39_larl, // load address relative long s39_lasp, // load address space parameters s39_lat, // load and trap (32L <- 32) s39_lax, // load and exclusive or (32) s39_laxg, // load and exclusive or (64) s39_lay, // load address s39_lb, // load byte (32 <- 8) s39_lbh, // load byte high (32 <- 8) s39_lbr, // load byte (32 <- 8) s39_lcbb, // load count to block boundary s39_lcctl, // load cpu-counter-set controls s39_lcdbr, // load complement (long BFP) s39_lcdfr, // load complement (long) s39_lcdr, // load complement (long HFP) s39_lcebr, // load complement (short BFP) s39_lcer, // load complement (short HFP) s39_lcgfr, // load complement (64 <- 32) s39_lcgr, // load complement (64) s39_lcr, // load complement (32) s39_lctl, // load control (32) s39_lctlg, // load control (64) s39_lcxbr, // load complement (extended BFP) s39_lcxr, // load complement (extended HFP) s39_ld, // load (long) s39_lde, // load lengthened (short to long HFP) s39_ldeb, // load lengthened (short to long BFP) s39_ldebr, // load lengthened (short to long BFP) s39_lder, // load lengthened (short to long HFP) s39_ldetr, // load lengthened (short to long DFP) s39_ldgr, // load fpr from gr (64 to long) s39_ldr, // load (long) s39_ldrv, // s39_ldxbr, // load rounded (extended to long BFP) s39_ldxbra, // load rounded (extended to long BFP) s39_ldxr, // load rounded (extended to long HFP) s39_ldxtr, // load rounded (extended to long HFP) s39_ldy, // load (long) s39_le, // load (short) s39_ledbr, // load rounded (long to short BFP) s39_ledbra, // load rounded (long to short BFP) s39_ledr, // load rounded (long to short HFP) s39_ledtr, // load rounded (long to short DFP) s39_ler, // load short s39_lerv, // s39_lexbr, // load rounded (extended to short BFP) s39_lexbra, // load rounded (extended to short BFP) s39_lexr, // load rounded (extended to short HFP) s39_ley, // load (short) s39_lfas, // load fpc and signal s39_lfh, // load high (32) s39_lfhat, // load high and trap (32h <- 32) s39_lfpc, // load fpc s39_lg, // load (64) s39_lgat, // load and trap (64) s39_lgb, // load byte (64 <- 8) s39_lgbr, // load byte (64 <- 8) s39_lgdr, // load gr from fpr (long to 64) s39_lgf, // load (64 <- 32) s39_lgfi, // load immediate (64 <- 32) s39_lgfr, // load (64 <- 32) s39_lgfrl, // load relative long (64 <- 32) s39_lgg, // load guarded (64) s39_lgh, // load halfword (64 <- 16) s39_lghi, // load halfword immediate (64 <- 16) s39_lghr, // load halfword (64 <- 16) s39_lghrl, // load halfword relative long (64 <- 16) s39_lgr, // load (64) s39_lgrl, // load relative long (64) s39_lgsc, // load guarded storage controls s39_lh, // load halfword (32 <- 16) s39_lhh, // load halfword high (32 <- 16) s39_lhi, // load halfword immediate (32) <- 16 s39_lhr, // load halfword (32 <- 16) s39_lhrl, // load halfword relative long (32 <- 16) s39_lhy, // load halfword (32 <- 16) s39_llc, // load logical character (32 <- 8) s39_llch, // load logical character high (32 <- 8) s39_llcr, // load logical character (32 <- 8) s39_llgc, // load logical character (64 <- 8) s39_llgcr, // load logical character (64 <- 8) s39_llgf, // load logical (64 <- 32) s39_llgfat, // load logical and trap (64 <- 32) s39_llgfr, // load logical (64 <- 32) s39_llgfrl, // load logical relative long (64 <- 32) s39_llgfsg, // load logical and shift guarded (64 <- 32) s39_llgh, // load logical halfword (64 <- 16) s39_llghr, // load logical halfword (64 <- 16) s39_llghrl, // load logical halfword relative long (64 <- 16) s39_llgt, // load logical thirty one bits (64 <- 31) s39_llgtat, // load logical thirty one bits and trap (64 <- 31) s39_llgtr, // load logical thirty one bits (64 <- 31) s39_llh, // load logical halfword (32 <- 16) s39_llhh, // load logical halfword high (32 <- 16) s39_llhr, // load logical halfword (32 <- 16) s39_llhrl, // load logical halfword relative long (32 <- 16) s39_llihf, // load logical immediate (high) s39_llihh, // load logical immediate (high high) s39_llihl, // load logical immediate (high low) s39_llilf, // load logical immediate (low) s39_llilh, // load logical immediate (low high) s39_llill, // load logical immediate (low low) s39_llzrgf, // load logical and zero rightmost byte (64 <- 32) s39_lm, // load multiple (32) s39_lmd, // load multiple disjoint (64 <- 32& 32) s39_lmg, // load multiple (64) s39_lmh, // load multiple high (32) s39_lmy, // load multiple high (32) s39_lndbr, // load negative (long BFP) s39_lndfr, // load negative (long) s39_lndr, // load negative (long HFP) s39_lnebr, // load negative (short BFP) s39_lner, // load negative (short HFP) s39_lngfr, // load negative (64 <- 32) s39_lngr, // load negative (64) s39_lnr, // load negative (32) s39_lnxbr, // load negative (extended BFP) s39_lnxr, // load negative (extended HFP) s39_loc, // load on condition (32) s39_loco, // load on condition (32), jump on overflow / if ones s39_loch, // load on condition (32), jump on A high s39_locnle, // load on condition (32), jump on not low or equal s39_locl, // load on condition (32), jump on A low s39_locnhe, // load on condition (32), jump on not high or equal s39_loclh, // load on condition (32), jump on low or high s39_locne, // load on condition (32), jump on A not equal B s39_loce, // load on condition (32), jump on A equal B s39_locnlh, // load on condition (32), jump on not low or high s39_loche, // load on condition (32), jump on high or equal s39_locnl, // load on condition (32), jump on A not low s39_locle, // load on condition (32), jump on low or equal s39_locnh, // load on condition (32), jump on A not high s39_locno, // load on condition (32), jump on not overflow / if not ones s39_locfh, // load high on condition (32) s39_locfho, // load high on condition (32), jump on overflow / if ones s39_locfhh, // load high on condition (32), jump on A high s39_locfhnle, // load high on condition (32), jump on not low or equal s39_locfhl, // load high on condition (32), jump on A low s39_locfhnhe, // load high on condition (32), jump on not high or equal s39_locfhlh, // load high on condition (32), jump on low or high s39_locfhne, // load high on condition (32), jump on A not equal B s39_locfhe, // load high on condition (32), jump on A equal B s39_locfhnlh, // load high on condition (32), jump on not low or high s39_locfhhe, // load high on condition (32), jump on high or equal s39_locfhnl, // load high on condition (32), jump on A not low s39_locfhle, // load high on condition (32), jump on low or equal s39_locfhnh, // load high on condition (32), jump on A not high s39_locfhno, // load high on condition (32), jump on not overflow / if not ones s39_locfhr, // load high on condition (32) s39_locfhro, // load high on condition (32), jump on overflow / if ones s39_locfhrh, // load high on condition (32), jump on A high s39_locfhrnle, // load high on condition (32), jump on not low or equal s39_locfhrl, // load high on condition (32), jump on A low s39_locfhrnhe, // load high on condition (32), jump on not high or equal s39_locfhrlh, // load high on condition (32), jump on low or high s39_locfhrne, // load high on condition (32), jump on A not equal B s39_locfhre, // load high on condition (32), jump on A equal B s39_locfhrnlh, // load high on condition (32), jump on not low or high s39_locfhrhe, // load high on condition (32), jump on high or equal s39_locfhrnl, // load high on condition (32), jump on A not low s39_locfhrle, // load high on condition (32), jump on low or equal s39_locfhrnh, // load high on condition (32), jump on A not high s39_locfhrno, // load high on condition (32), jump on not overflow / if not ones s39_locg, // load on condition (64) s39_locgo, // load on condition (64), jump on overflow / if ones s39_locgh, // load on condition (64), jump on A high s39_locgnle, // load on condition (64), jump on not low or equal s39_locgl, // load on condition (64), jump on A low s39_locgnhe, // load on condition (64), jump on not high or equal s39_locglh, // load on condition (64), jump on low or high s39_locgne, // load on condition (64), jump on A not equal B s39_locge, // load on condition (64), jump on A equal B s39_locgnlh, // load on condition (64), jump on not low or high s39_locghe, // load on condition (64), jump on high or equal s39_locgnl, // load on condition (64), jump on A not low s39_locgle, // load on condition (64), jump on low or equal s39_locgnh, // load on condition (64), jump on A not high s39_locgno, // load on condition (64), jump on not overflow / if not ones s39_locghi, // load halfword immediate on condition (64 <- 16) s39_locghio, // load halfword immediate on condition (64 <- 16), jump on overflow / if ones s39_locghih, // load halfword immediate on condition (64 <- 16), jump on A high s39_locghinle, // load halfword immediate on condition (64 <- 16), jump on not low or equal s39_locghil, // load halfword immediate on condition (64 <- 16), jump on A low s39_locghinhe, // load halfword immediate on condition (64 <- 16), jump on not high or equal s39_locghilh, // load halfword immediate on condition (64 <- 16), jump on low or high s39_locghine, // load halfword immediate on condition (64 <- 16), jump on A not equal B s39_locghie, // load halfword immediate on condition (64 <- 16), jump on A equal B s39_locghinlh, // load halfword immediate on condition (64 <- 16), jump on not low or high s39_locghihe, // load halfword immediate on condition (64 <- 16), jump on high or equal s39_locghinl, // load halfword immediate on condition (64 <- 16), jump on A not low s39_locghile, // load halfword immediate on condition (64 <- 16), jump on low or equal s39_locghinh, // load halfword immediate on condition (64 <- 16), jump on A not high s39_locghino, // load halfword immediate on condition (64 <- 16), jump on not overflow / if not ones s39_locgr, // load on condition (64) s39_locgro, // load on condition (64), jump on overflow / if ones s39_locgrh, // load on condition (64), jump on A high s39_locgrnle, // load on condition (64), jump on not low or equal s39_locgrl, // load on condition (64), jump on A low s39_locgrnhe, // load on condition (64), jump on not high or equal s39_locgrlh, // load on condition (64), jump on low or high s39_locgrne, // load on condition (64), jump on A not equal B s39_locgre, // load on condition (64), jump on A equal B s39_locgrnlh, // load on condition (64), jump on not low or high s39_locgrhe, // load on condition (64), jump on high or equal s39_locgrnl, // load on condition (64), jump on A not low s39_locgrle, // load on condition (64), jump on low or equal s39_locgrnh, // load on condition (64), jump on A not high s39_locgrno, // load on condition (64), jump on not overflow / if not ones s39_lochhi, // load halfword high immediate on condition (32 <- 16) s39_lochhio, // load halfword high immediate on condition (32 <- 16), jump on overflow / if ones s39_lochhih, // load halfword high immediate on condition (32 <- 16), jump on A high s39_lochhinle, // load halfword high immediate on condition (32 <- 16), jump on not low or equal s39_lochhil, // load halfword high immediate on condition (32 <- 16), jump on A low s39_lochhinhe, // load halfword high immediate on condition (32 <- 16), jump on not high or equal s39_lochhilh, // load halfword high immediate on condition (32 <- 16), jump on low or high s39_lochhine, // load halfword high immediate on condition (32 <- 16), jump on A not equal B s39_lochhie, // load halfword high immediate on condition (32 <- 16), jump on A equal B s39_lochhinlh, // load halfword high immediate on condition (32 <- 16), jump on not low or high s39_lochhihe, // load halfword high immediate on condition (32 <- 16), jump on high or equal s39_lochhinl, // load halfword high immediate on condition (32 <- 16), jump on A not low s39_lochhile, // load halfword high immediate on condition (32 <- 16), jump on low or equal s39_lochhinh, // load halfword high immediate on condition (32 <- 16), jump on A not high s39_lochhino, // load halfword high immediate on condition (32 <- 16), jump on not overflow / if not ones s39_lochi, // load halfword immediate on condition (32 <- 16) s39_lochio, // load halfword immediate on condition (32 <- 16), jump on overflow / if ones s39_lochih, // load halfword immediate on condition (32 <- 16), jump on A high s39_lochinle, // load halfword immediate on condition (32 <- 16), jump on not low or equal s39_lochil, // load halfword immediate on condition (32 <- 16), jump on A low s39_lochinhe, // load halfword immediate on condition (32 <- 16), jump on not high or equal s39_lochilh, // load halfword immediate on condition (32 <- 16), jump on low or high s39_lochine, // load halfword immediate on condition (32 <- 16), jump on A not equal B s39_lochie, // load halfword immediate on condition (32 <- 16), jump on A equal B s39_lochinlh, // load halfword immediate on condition (32 <- 16), jump on not low or high s39_lochihe, // load halfword immediate on condition (32 <- 16), jump on high or equal s39_lochinl, // load halfword immediate on condition (32 <- 16), jump on A not low s39_lochile, // load halfword immediate on condition (32 <- 16), jump on low or equal s39_lochinh, // load halfword immediate on condition (32 <- 16), jump on A not high s39_lochino, // load halfword immediate on condition (32 <- 16), jump on not overflow / if not ones s39_locr, // load on condition (32) s39_locro, // load on condition (32), jump on overflow / if ones s39_locrh, // load on condition (32), jump on A high s39_locrnle, // load on condition (32), jump on not low or equal s39_locrl, // load on condition (32), jump on A low s39_locrnhe, // load on condition (32), jump on not high or equal s39_locrlh, // load on condition (32), jump on low or high s39_locrne, // load on condition (32), jump on A not equal B s39_locre, // load on condition (32), jump on A equal B s39_locrnlh, // load on condition (32), jump on not low or high s39_locrhe, // load on condition (32), jump on high or equal s39_locrnl, // load on condition (32), jump on A not low s39_locrle, // load on condition (32), jump on low or equal s39_locrnh, // load on condition (32), jump on A not high s39_locrno, // load on condition (32), jump on not overflow / if not ones s39_lpctl, // load peripheral-counter-set controls s39_lpd, // load pair disjoint (32) s39_lpdbr, // load positive (long BFP) s39_lpdfr, // load positive (long) s39_lpdg, // load pair disjoint (64) s39_lpdr, // load positive (long HFP) s39_lpebr, // load positive (short BFP) s39_lper, // load positive (short HFP) s39_lpgfr, // load positive (64 <- 32) s39_lpgr, // load positive (64) s39_lpp, // load program parameter s39_lpq, // load pair from quadword (64&64 <- 128) s39_lpr, // load positive (32) s39_lpsw, // load PSW s39_lpswe, // load psw extended s39_lptea, // load page-table-entry address s39_lpxbr, // load positive (extended BFP) s39_lpxr, // load positive (extended HFP) s39_lr, // load (32) s39_lra, // load real address (32) s39_lrag, // load real address (64) s39_lray, // load real address (32) s39_lrdr, // load rounded (extended to long HFP) s39_lrer, // load rounded (long to short HFP) s39_lrl, // load relative long (32) s39_lrv, // load reversed (32) s39_lrvg, // load reversed (64) s39_lrvgr, // load reversed (64) s39_lrvh, // load reversed (16) s39_lrvr, // load reversed (32) s39_lsctl, // load sampling controls s39_lt, // load and test (32) s39_ltdbr, // load and test (long BFP) s39_ltdr, // load and test (long HFP) s39_ltdtr, // load and test (long DFP) s39_ltebr, // load and test (short BFP) s39_lter, // load and test (short HFP) s39_ltg, // load and test (64) s39_ltgf, // load and test (64 <- 32) s39_ltgfr, // load and test (64 <- 32) s39_ltgr, // load and test (64) s39_ltr, // load and test (32) s39_ltxbr, // load and test (extended BFP) s39_ltxr, // load and test (extended HFP) s39_ltxtr, // load and test (extended DFP) s39_lura, // load using real address (32) s39_lurag, // load using real address (64) s39_lxd, // load lengthened (long to extended HFP) s39_lxdb, // load lengthened (long to extended BFP) s39_lxdbr, // load lengthened (long to extended BFP) s39_lxdr, // load lengthened (long to extended HFP) s39_lxdtr, // load lengthened (long to extended DFP) s39_lxe, // load lengthened (short to extended HFP) s39_lxeb, // load lengthened (short to extended BFP) s39_lxebr, // load lengthened (short to extended BFP) s39_lxer, // load lengthened (short to extended HFP) s39_lxr, // load (extended) s39_ly, // load (32) s39_lzdr, // load zero (long) s39_lzer, // load zero (short) s39_lzrf, // load and zero rightmost byte (32) s39_lzrg, // load and zero rightmost byte (64) s39_lzxr, // load zero (extended) s39_m, // multiply (64 <- 32) s39_mad, // multiply and add (long HFP) s39_madb, // multiply and add (long BFP) s39_madbr, // multiply and add (long BFP) s39_madr, // multiply and add (long HFP) s39_mae, // multiply and add (short HFP) s39_maeb, // multiply and add (short BFP) s39_maebr, // multiply and add (short BFP) s39_maer, // multiply and add (short HFP) s39_may, // multiply & add unnormalized (long to extended HFP) s39_mayh, // multiply & add unnormalized (long to extended high HFP) s39_mayhr, // multiply & add unnormalized (long to extended high HFP) s39_mayl, // multiply & add unnormalized (long to extended low HFP) s39_maylr, // multiply & add unnormalized (long to extended low HFP) s39_mayr, // multiply & add unnormalized (long to extended HFP) s39_mc, // monitor call s39_md, // multiply (long HFP) s39_mdb, // multiply (long BFP) s39_mdbr, // multiply (long BFP) s39_mde, // multiply (short to long HFP) s39_mdeb, // multiply (short to long BFP) s39_mdebr, // multiply (short to long BFP) s39_mder, // multiply (short to long HFP) s39_mdr, // multiply (long HFP) s39_mdtr, // multiply (long DFP) s39_mdtra, // multiply (long DFP) s39_me, // multiply (short to long HFP) s39_mee, // multiply (short HFP) s39_meeb, // multiply (short BFP) s39_meebr, // multiply (short BFP) s39_meer, // multiply (short HFP) s39_mer, // multiply (short to long HFP) s39_mfy, // multiply (64 <- 32) s39_mg, // multiply (128 <- 64) s39_mgh, // multiply halfword (64 <- 16) s39_mghi, // multiply halfword immediate (64 <- 16) s39_mgrk, // multiply (128 <- 64) s39_mh, // multiply halfword (32 <- 16) s39_mhi, // multiply halfword immediate (32 <- 16) s39_mhy, // multiply halfword (32 <- 16) s39_ml, // multiply logical (64 <- 32) s39_mlg, // multiply logical (128 <- 64) s39_mlgr, // multiply logical (128 <- 64) s39_mlr, // multiply logical (64 <- 32) s39_mp, // multiply decimal s39_mr, // multiply (64 <- 32) s39_ms, // multiply single (32) s39_msc, // multiply single (32) s39_msch, // modify subchannel s39_msd, // multiply and subtract (long HFP) s39_msdb, // multiply and subtract (long BFP) s39_msdbr, // multiply and subtract (long BFP) s39_msdr, // multiply and subtract (long HFP) s39_mse, // multiply and subtract (short HFP) s39_mseb, // multiply and subtract (short BFP) s39_msebr, // multiply and subtract (short BFP) s39_mser, // multiply and subtract (short HFP) s39_msfi, // multiply single immediate (32) s39_msg, // multiply single (64) s39_msgc, // multiply single (64) s39_msgf, // multiply single (64 <- 32) s39_msgfi, // multiply single immediate (64 <- 32) s39_msgfr, // multiply single (64 <- 32) s39_msgr, // multiply single (64) s39_msgrkc, // multiply single (64) s39_msr, // multiply single (32) s39_msrkc, // multiply single (32) s39_msta, // modify stacked state s39_msy, // multiply single (32) s39_mvc, // move (character) s39_mvcdk, // move with destination key s39_mvcin, // move inverse s39_mvck, // move with key s39_mvcl, // move long s39_mvcle, // move long extended s39_mvclu, // move long unicode s39_mvcos, // move with optional specifications s39_mvcp, // move to primary s39_mvcrl, // s39_mvcs, // move to secondary s39_mvcsk, // move with source key s39_mvghi, // move (64 <- 16) s39_mvhhi, // move (16 <- 16) s39_mvhi, // move (32 <- 16) s39_mvi, // move (immediate) s39_mviy, // move (immediate) s39_mvn, // move numerics s39_mvo, // move with offset s39_mvpg, // move page s39_mvst, // move string s39_mvz, // move zones s39_mxbr, // multiply (extended BFP) s39_mxd, // multiply (long to extended HFP) s39_mxdb, // multiply (long to extended BFP) s39_mxdbr, // multiply (long to extended BFP) s39_mxdr, // multiply (long to extended HFP) s39_mxr, // multiply (extended HFP) s39_mxtr, // multiply (extended DFP) s39_mxtra, // multiply (extended DFP) s39_my, // multiply unnormalized (long to extended HFP) s39_myh, // multiply unnormalized (long to extended high HFP) s39_myhr, // multiply unnormalized (long to extended high HFP) s39_myl, // multiply unnormalized (long to extended low HFP) s39_mylr, // multiply unnormalized (long to extended low HFP) s39_myr, // multiply unnormalized (long to extended HFP) s39_n, // and (32) s39_nc, // and (character) s39_ncgrk, // s39_ncrk, // s39_ng, // and (64) s39_ngr, // and (64) s39_ngrk, // and (64) s39_ni, // and (immediate) s39_niai, // next instruction access intent s39_nihf, // and immediate (high) s39_nihh, // and immediate (high high) s39_nihl, // and immediate (high low) s39_nilf, // and immediate (low) s39_nilh, // and immediate (low high) s39_nill, // and immediate (low low) s39_niy, // and (immediate) s39_nngrk, // s39_nnrk, // s39_nogrk, // s39_nop, // no operation s39_nopr, // no operation s39_nork, // s39_nr, // and (32) s39_nrk, // and (32) s39_ntstg, // nontransactional store (64) s39_nxgrk, // s39_nxrk, // s39_ny, // and (32) s39_o, // or (32) s39_oc, // or (character) s39_ocgrk, // s39_ocrk, // s39_og, // or (64) s39_ogr, // or (64) s39_ogrk, // or (64) s39_oi, // or (immediate) s39_oihf, // or immediate (high) s39_oihh, // or immediate (high high) s39_oihl, // or immediate (high low) s39_oilf, // or immediate (low) s39_oilh, // or immediate (low high) s39_oill, // or immediate (low low) s39_oiy, // or (immediate) s39_or, // or (32) s39_ork, // or (32) s39_oy, // or (32) s39_pack, // pack s39_palb, // purge ALB s39_pc, // program call s39_pcc, // perform cryptographic computation s39_pckmo, // perform cryptographic key management operation s39_pfd, // prefetch data s39_pfdrl, // prefetch data relative long s39_pfmf, // perform frame management function s39_pfpo, // perform floating point operation s39_pgin, // page in s39_pgout, // page out s39_pka, // pack ascii s39_pku, // pack unicode s39_plo, // perform locked operation s39_popcnt, // population count s39_ppa, // perform processor assist s39_ppno, // perform pseudorandom number operation s39_pr, // program return s39_prno, // perform pseudorandom number operation s39_pt, // program transfer s39_ptf, // perform topology function s39_ptff, // perform timing facility function s39_pti, // program transfer with instance s39_ptlb, // purge TLB s39_qadtr, // quantize (long DFP) s39_qaxtr, // quantize (extended DFP) s39_qctri, // query counter information s39_qsi, // query sampling information s39_rchp, // reset channel path s39_risbg, // rotate then insert selected bits (64) s39_risbgn, // rotate then insert selected bits (64) s39_risbhg, // rotate then insert selected bits high (64) s39_risblg, // rotate then insert selected bits low (64) s39_rll, // rotate left single logical (32) s39_rllg, // rotate left single logical (64) s39_rnsbg, // rotate then and selected bits (64) s39_rosbg, // rotate then or selected bits (64) s39_rp, // resume program s39_rrbe, // reset reference bit extended s39_rrbm, // reset reference bits multiple s39_rrdtr, // reround (long DFP) s39_rrxtr, // reround (extended DFP) s39_rsch, // resume subchannel s39_rxsbg, // rotate then exclusive or selected bits (64) s39_s, // subtract (32) s39_sac, // set address space control s39_sacf, // set address space control fast s39_sal, // set address limit s39_sam24, // set addressing mode 24 s39_sam31, // set addressing mode 31 s39_sam64, // set addressing mode 64 s39_sar, // set access s39_scctr, // set cpu counter s39_schm, // set channel monitor s39_sck, // set clock s39_sckc, // set clock comparator s39_sckpf, // set clock programmable field s39_sd, // subtract normalized (long HFP) s39_sdb, // subtract (long BFP) s39_sdbr, // subtract (long BFP) s39_sdr, // subtract normalized (long HFP) s39_sdtr, // subtract normalized (long DFP) s39_sdtra, // subtract normalized (long DFP) s39_se, // subtract normalized (short HFP) s39_seb, // subtract (short BFP) s39_sebr, // subtract (short BFP) s39_selgr, // s39_selgro, // , jump on overflow / if ones s39_selgrh, // , jump on A high s39_selgrnle, // , jump on not low or equal s39_selgrl, // , jump on A low s39_selgrnhe, // , jump on not high or equal s39_selgrlh, // , jump on low or high s39_selgrne, // , jump on A not equal B s39_selgre, // , jump on A equal B s39_selgrnlh, // , jump on not low or high s39_selgrhe, // , jump on high or equal s39_selgrnl, // , jump on A not low s39_selgrle, // , jump on low or equal s39_selgrnh, // , jump on A not high s39_selgrno, // , jump on not overflow / if not ones s39_selhhhr, // s39_selhhhro, // , jump on overflow / if ones s39_selhhhrh, // , jump on A high s39_selhhhrnle, // , jump on not low or equal s39_selhhhrl, // , jump on A low s39_selhhhrnhe, // , jump on not high or equal s39_selhhhrlh, // , jump on low or high s39_selhhhrne, // , jump on A not equal B s39_selhhhre, // , jump on A equal B s39_selhhhrnlh, // , jump on not low or high s39_selhhhrhe, // , jump on high or equal s39_selhhhrnl, // , jump on A not low s39_selhhhrle, // , jump on low or equal s39_selhhhrnh, // , jump on A not high s39_selhhhrno, // , jump on not overflow / if not ones s39_selr, // s39_selro, // , jump on overflow / if ones s39_selrh, // , jump on A high s39_selrnle, // , jump on not low or equal s39_selrl, // , jump on A low s39_selrnhe, // , jump on not high or equal s39_selrlh, // , jump on low or high s39_selrne, // , jump on A not equal B s39_selre, // , jump on A equal B s39_selrnlh, // , jump on not low or high s39_selrhe, // , jump on high or equal s39_selrnl, // , jump on A not low s39_selrle, // , jump on low or equal s39_selrnh, // , jump on A not high s39_selrno, // , jump on not overflow / if not ones s39_ser, // subtract normalized (short HFP) s39_sfasr, // set fpc and signal s39_sfpc, // set fpc s39_sg, // subtract (64) s39_sgf, // subtract (64 <- 32) s39_sgfr, // subtract (64 <- 32) s39_sgh, // sintract halfword (64 <- 16) s39_sgr, // subtract (64) s39_sgrk, // subtract (64) s39_sh, // subtract halfword (32 <- 16) s39_shhhr, // subtract high (32) s39_shhlr, // subtract high (32) s39_shy, // subtract halfword (32 <- 16) s39_sie, // start interpretive execution s39_siga, // signal adapter s39_sigp, // signal processor s39_sl, // subtract logical (32) s39_sla, // shift left single (32) s39_slag, // shift left single (64) s39_slak, // shift left single (32) s39_slb, // subtract logical with borrow (32) s39_slbg, // subtract logical with borrow (64) s39_slbgr, // subtract logical with borrow (64) s39_slbr, // subtract logical with borrow (32) s39_slda, // shift left double (64) s39_sldl, // shift left double logical (64) s39_sldt, // shift significand left (long DFP) s39_slfi, // subtract logical immediate (32) s39_slg, // subtract logical (64) s39_slgf, // subtract logical (64 <- 32) s39_slgfi, // subtract logical (64 <- 32) s39_slgfr, // subtract logical (64 <- 32) s39_slgr, // subtract logical (64) s39_slgrk, // subtract logical (64) s39_slhhhr, // subtract logical high (32) s39_slhhlr, // subtract logical high (32) s39_sll, // shift left single logical (32) s39_sllg, // shift left single logical (64) s39_sllk, // shift left single logical (32) s39_slr, // subtract logical (32) s39_slrk, // subtract logical (32) s39_slxt, // shift significand left (extended DFP) s39_sly, // subtract logical (32) s39_sortl, // s39_sp, // subtract decimal s39_spctr, // set peripheral counter s39_spka, // set PSW key from address s39_spm, // set program mask s39_spt, // set CPU timer s39_spx, // set prefix s39_sqd, // square root (long HFP) s39_sqdb, // square root (long BFP) s39_sqdbr, // square root (long BFP) s39_sqdr, // square root (long HFP) s39_sqe, // square root (short HFP) s39_sqeb, // square root (short BFP) s39_sqebr, // square root (short BFP) s39_sqer, // square root (short HFP) s39_sqxbr, // square root (extended BFP) s39_sqxr, // square root (extended HFP) s39_sr, // subtract (32) s39_sra, // shift right single (32) s39_srag, // shift right single (64) s39_srak, // shift right single (32) s39_srda, // shift right double (64) s39_srdl, // shift right double logical (64) s39_srdt, // shift significand right (long DFP) s39_srk, // subtract (32) s39_srl, // shift right single logical (32) s39_srlg, // shift right single logical (64) s39_srlk, // shift right single logical (64) s39_srnm, // set bfp rounding mode (2bit) s39_srnmb, // set bfp rounding mode (3bit) s39_srnmt, // set dfp rounding mode s39_srp, // shift and round decimal s39_srst, // search string s39_srstu, // search string unicode s39_srxt, // shift significand right (extended DFP) s39_ssair, // set secondary ASN with instance s39_ssar, // set secondary ASN s39_ssch, // start subchannel s39_sske, // set storage key extended s39_ssm, // set system mask s39_st, // store (32) s39_stam, // store access multiple s39_stamy, // store access multiple s39_stap, // store CPU address s39_stc, // store character s39_stch, // store character high (8) s39_stck, // store clock s39_stckc, // store clock comparator s39_stcke, // store clock extended s39_stckf, // store clock fast s39_stcm, // store characters under mask (low) s39_stcmh, // store characters under mask (high) s39_stcmy, // store characters under mask (low) s39_stcps, // store channel path status s39_stcrw, // store channel report word s39_stctg, // store control (64) s39_stctl, // store control (64) s39_stcy, // store character s39_std, // store (long) s39_stdrv, // s39_stdy, // store (long) s39_ste, // store (short) s39_sterv, // s39_stey, // store (short) s39_stfh, // store high (32) s39_stfl, // store facility list s39_stfle, // store facility list extended s39_stfpc, // store fpc s39_stg, // store (64) s39_stgrl, // store relative long (64) s39_stgsc, // store guarded storage controls s39_sth, // store halfword (16) s39_sthh, // store halfword high (16) s39_sthrl, // store halfword relative long (16) s39_sthy, // store halfword (16) s39_stidp, // store CPU id s39_stm, // store multiple (32) s39_stmg, // store multiple (64) s39_stmh, // store multiple high (32) s39_stmy, // store multiple (32) s39_stnsm, // store then and system mask s39_stoc, // store on condition (32) s39_stoco, // store on condition (32), jump on overflow / if ones s39_stoch, // store on condition (32), jump on A high s39_stocnle, // store on condition (32), jump on not low or equal s39_stocl, // store on condition (32), jump on A low s39_stocnhe, // store on condition (32), jump on not high or equal s39_stoclh, // store on condition (32), jump on low or high s39_stocne, // store on condition (32), jump on A not equal B s39_stoce, // store on condition (32), jump on A equal B s39_stocnlh, // store on condition (32), jump on not low or high s39_stoche, // store on condition (32), jump on high or equal s39_stocnl, // store on condition (32), jump on A not low s39_stocle, // store on condition (32), jump on low or equal s39_stocnh, // store on condition (32), jump on A not high s39_stocno, // store on condition (32), jump on not overflow / if not ones s39_stocfh, // store high on condition s39_stocfho, // store high on condition, jump on overflow / if ones s39_stocfhh, // store high on condition, jump on A high s39_stocfhnle, // store high on condition, jump on not low or equal s39_stocfhl, // store high on condition, jump on A low s39_stocfhnhe, // store high on condition, jump on not high or equal s39_stocfhlh, // store high on condition, jump on low or high s39_stocfhne, // store high on condition, jump on A not equal B s39_stocfhe, // store high on condition, jump on A equal B s39_stocfhnlh, // store high on condition, jump on not low or high s39_stocfhhe, // store high on condition, jump on high or equal s39_stocfhnl, // store high on condition, jump on A not low s39_stocfhle, // store high on condition, jump on low or equal s39_stocfhnh, // store high on condition, jump on A not high s39_stocfhno, // store high on condition, jump on not overflow / if not ones s39_stocg, // store on condition (64) s39_stocgo, // store on condition (64), jump on overflow / if ones s39_stocgh, // store on condition (64), jump on A high s39_stocgnle, // store on condition (64), jump on not low or equal s39_stocgl, // store on condition (64), jump on A low s39_stocgnhe, // store on condition (64), jump on not high or equal s39_stocglh, // store on condition (64), jump on low or high s39_stocgne, // store on condition (64), jump on A not equal B s39_stocge, // store on condition (64), jump on A equal B s39_stocgnlh, // store on condition (64), jump on not low or high s39_stocghe, // store on condition (64), jump on high or equal s39_stocgnl, // store on condition (64), jump on A not low s39_stocgle, // store on condition (64), jump on low or equal s39_stocgnh, // store on condition (64), jump on A not high s39_stocgno, // store on condition (64), jump on not overflow / if not ones s39_stosm, // store then or system mask s39_stpq, // store pair to quadword s39_stpt, // store CPU timer s39_stpx, // store prefix s39_strag, // store real address s39_strl, // store relative long (32) s39_strv, // store reversed (32) s39_strvg, // store reversed (64) s39_strvh, // store reversed (16) s39_stsch, // store subchannel s39_stsi, // store system information s39_stura, // store using real address (32) s39_sturg, // store using real address (64) s39_sty, // store (32) s39_su, // subtract unnormalized (short HFP) s39_sur, // subtract unnormalized (short HFP) s39_svc, // supervisor call s39_sw, // subtract unnormalized (long HFP) s39_swr, // subtract unnormalized (long HFP) s39_sxbr, // subtract (extended BFP) s39_sxr, // subtract normalized (extended HFP) s39_sxtr, // subtract (extended DFP) s39_sxtra, // subtract (extended DFP) s39_sy, // subtract (32) s39_tabort, // transaction abort s39_tam, // test addressing mode s39_tar, // test access s39_tb, // test block s39_tbdr, // convert HFP to BFP (long) s39_tbedr, // convert HFP to BFP (long to short) s39_tbegin, // transaction begin (nonconstrained) s39_tbeginc, // transaction begin (constrained) s39_tcdb, // test data class (long BFP) s39_tceb, // test data class (short BFP) s39_tcxb, // test data class (extended BFP) s39_tdcdt, // test data class (long DFP) s39_tdcet, // test data class (short DFP) s39_tdcxt, // test data class (extended DFP) s39_tdgdt, // test data group (long DFP) s39_tdget, // test data group (short DFP) s39_tdgxt, // test data group (extended DFP) s39_tend, // transaction end s39_thder, // convert BFP to HFP (short to long) s39_thdr, // convert BFP to HFP (long) s39_tm, // test under mask s39_tmhh, // test under mask (high high) s39_tmhl, // test under mask (high low) s39_tmlh, // test under mask (low high) s39_tmll, // test under mask (low low) s39_tmy, // test under mask s39_tp, // test decimal s39_tpei, // test pending external interruption s39_tpi, // test pending interruption s39_tprot, // test protection s39_tr, // translate s39_trace, // trace (32) s39_tracg, // trace (64) s39_trap2, // trap s39_trap4, // trap s39_tre, // translate extended s39_troo, // translate one to one s39_trot, // translate one to two s39_trt, // translate and test s39_trte, // translate and test extended s39_trto, // translate two to one s39_trtr, // translate and test reverse s39_trtre, // translate and test reverse extended s39_trtt, // translate two to two s39_ts, // test and set s39_tsch, // test subchannel s39_unpk, // unpack s39_unpka, // unpack ascii s39_unpku, // unpack unicode s39_upt, // update tree s39_va, // vector add s39_vab, // vector add byte s39_vac, // vector add with carry s39_vacc, // vector add compute carry s39_vaccb, // vector add compute carry byte s39_vaccc, // vector add with carry compute carry s39_vacccq, // vector add with carry compute carry quadword s39_vaccf, // vector add compute carry word s39_vaccg, // vector add compute carry doubleword s39_vacch, // vector add compute carry halfword s39_vaccq, // vector add compute carry quadword s39_vacq, // vector add with carry quadword s39_vaf, // vector add word s39_vag, // vector add double word s39_vah, // vector add halfword s39_vap, // vector add decimal s39_vaq, // vector add quad word s39_vavg, // vector average s39_vavgb, // vector average byte s39_vavgf, // vector average word s39_vavgg, // vector average double word s39_vavgh, // vector average half word s39_vavgl, // vector average logical s39_vavglb, // vector average logical byte s39_vavglf, // vector average logical word s39_vavglg, // vector average logical double word s39_vavglh, // vector average logical half word s39_vbperm, // vector bit permute s39_vcdg, // vector fp convert from fixed 64 bit s39_vcdgb, // vector fp convert from fixed 64 bit s39_vcdlg, // vector fp convert from logical 64 bit s39_vcdlgb, // vector fp convert from logical 64 bit s39_vcefb, // s39_vcelfb, // s39_vceq, // vector compare equal s39_vceqb, // vector compare equal byte s39_vceqbs, // vector compare equal byte s39_vceqf, // vector compare equal word s39_vceqfs, // vector compare equal word s39_vceqg, // vector compare equal double word s39_vceqgs, // vector compare equal double word s39_vceqh, // vector compare equal half word s39_vceqhs, // vector compare equal half word s39_vcfeb, // s39_vcfpl, // s39_vcfps, // s39_vcgd, // vector fp convert to fixed 64 bit s39_vcgdb, // vector fp convert to fixed 64 bit s39_vch, // vector compare high s39_vchb, // vector compare high byte s39_vchbs, // vector compare high byte s39_vchf, // vector compare high word s39_vchfs, // vector compare high word s39_vchg, // vector compare high double word s39_vchgs, // vector compare high double word s39_vchh, // vector compare high half word s39_vchhs, // vector compare high half word s39_vchl, // vector compare high logical s39_vchlb, // vector compare high logical byte s39_vchlbs, // vector compare high logical byte s39_vchlf, // vector compare high logical word s39_vchlfs, // vector compare high logical word s39_vchlg, // vector compare high logical double word s39_vchlgs, // vector compare high logical double word s39_vchlh, // vector compare high logical half word s39_vchlhs, // vector compare high logical half word s39_vcksm, // vector checksum s39_vclfeb, // s39_vclfp, // s39_vclgd, // vector fp convert to logical 64 bit s39_vclgdb, // vector fp convert to logical 64 bit s39_vclz, // vector count leading zeros s39_vclzb, // vector count leading zeros byte s39_vclzf, // vector count leading zeros word s39_vclzg, // vector count leading zeros doubleword s39_vclzh, // vector count leading zeros halfword s39_vcp, // vector compare decimal s39_vcsfp, // s39_vctz, // vector count trailing zeros s39_vctzb, // vector count trailing zeros byte s39_vctzf, // vector count trailing zeros word s39_vctzg, // vector count trailing zeros doubleword s39_vctzh, // vector count trailing zeros halfword s39_vcvb, // vector convert to binary s39_vcvbg, // vector convert to binary s39_vcvd, // vector convert to decimal s39_vcvdg, // vector convert to decimal s39_vdp, // vector divide decimal s39_vec, // vector element compare s39_vecb, // vector element compare byte s39_vecf, // vector element compare word s39_vecg, // vector element compare double word s39_vech, // vector element compare half word s39_vecl, // vector element compare logical s39_veclb, // vector element compare logical byte s39_veclf, // vector element compare logical word s39_veclg, // vector element compare logical double word s39_veclh, // vector element compare logical half word s39_verim, // vector element rotate and insert under mask s39_verimb, // vector element rotate and insert under mask byte s39_verimf, // vector element rotate and insert under mask word s39_verimg, // vector element rotate and insert under mask doubleword s39_verimh, // vector element rotate and insert under mask halfword s39_verll, // vector element rotate left logical s39_verllb, // vector element rotate left logical byte s39_verllf, // vector element rotate left logical word s39_verllg, // vector element rotate left logical doubleword s39_verllh, // vector element rotate left logical halfword s39_verllv, // vector element rotate left logical s39_verllvb, // vector element rotate left logical byte s39_verllvf, // vector element rotate left logical word s39_verllvg, // vector element rotate left logical doubleword s39_verllvh, // vector element rotate left logical halfword s39_vesl, // vector element shift left s39_veslb, // vector element shift left byte s39_veslf, // vector element shift left word s39_veslg, // vector element shift left doubleword s39_veslh, // vector element shift left halfword s39_veslv, // vector element shift left s39_veslvb, // vector element shift left byte s39_veslvf, // vector element shift left word s39_veslvg, // vector element shift left doubleword s39_veslvh, // vector element shift left halfword s39_vesra, // vector element shift right arithmetic s39_vesrab, // vector element shift right arithmetic byte s39_vesraf, // vector element shift right arithmetic word s39_vesrag, // vector element shift right arithmetic doubleword s39_vesrah, // vector element shift right arithmetic halfword s39_vesrav, // vector element shift right arithmetic s39_vesravb, // vector element shift right arithmetic byte s39_vesravf, // vector element shift right arithmetic word s39_vesravg, // vector element shift right arithmetic doubleword s39_vesravh, // vector element shift right arithmetic halfword s39_vesrl, // vector element shift right logical s39_vesrlb, // vector element shift right logical byte s39_vesrlf, // vector element shift right logical word s39_vesrlg, // vector element shift right logical doubleword s39_vesrlh, // vector element shift right logical halfword s39_vesrlv, // vector element shift right logical s39_vesrlvb, // vector element shift right logical byte s39_vesrlvf, // vector element shift right logical word s39_vesrlvg, // vector element shift right logical doubleword s39_vesrlvh, // vector element shift right logical halfword s39_vfa, // vector fp add s39_vfadb, // vector fp add long s39_vfae, // vector find any element equal s39_vfaeb, // vector find any element equal byte s39_vfaebs, // vector find any element equal s39_vfaef, // vector find any element equal word s39_vfaefs, // vector find any element equal s39_vfaeh, // vector find any element equal halfword s39_vfaehs, // vector find any element equal s39_vfaezb, // vector find any element equal s39_vfaezbs, // vector find any element equal s39_vfaezf, // vector find any element equal s39_vfaezfs, // vector find any element equal s39_vfaezh, // vector find any element equal s39_vfaezhs, // vector find any element equal s39_vfasb, // vector fp add short s39_vfce, // vector fp compare equal s39_vfcedb, // vector fp compare equal long s39_vfcedbs, // vector fp compare equal long s39_vfcesb, // vector fp compare equal short s39_vfcesbs, // vector fp compare equal short s39_vfch, // vector fp compare high s39_vfchdb, // vector fp compare high long s39_vfchdbs, // vector fp compare high long s39_vfche, // vector fp compare high or equal s39_vfchedb, // vector fp compare high or equal long s39_vfchedbs, // vector fp compare high or equal long s39_vfchesb, // vector fp compare high or equal short s39_vfchesbs, // vector fp compare high or equal short s39_vfchsb, // vector fp compare high short s39_vfchsbs, // vector fp compare high short s39_vfd, // vector fp divide s39_vfddb, // vector fp divide long s39_vfdsb, // vector fp divide short s39_vfee, // vector find element equal s39_vfeeb, // vector find element equal byte s39_vfeebs, // vector find element equal byte s39_vfeef, // vector find element equal word s39_vfeefs, // vector find element equal word s39_vfeeh, // vector find element equal halfword s39_vfeehs, // vector find element equal halfword s39_vfeezb, // vector find element equal byte s39_vfeezbs, // vector find element equal byte s39_vfeezf, // vector find element equal word s39_vfeezfs, // vector find element equal word s39_vfeezh, // vector find element equal halfword s39_vfeezhs, // vector find element equal halfword s39_vfene, // vector find element not equal s39_vfeneb, // vector find element not equal byte s39_vfenebs, // vector find element not equal byte s39_vfenef, // vector find element not equal word s39_vfenefs, // vector find element not equal word s39_vfeneh, // vector find element not equal halfword s39_vfenehs, // vector find element not equal halfword s39_vfenezb, // vector find element not equal byte s39_vfenezbs, // vector find element not equal byte s39_vfenezf, // vector find element not equal word s39_vfenezfs, // vector find element not equal word s39_vfenezh, // vector find element not equal halfword s39_vfenezhs, // vector find element not equal halfword s39_vfi, // vector load fp integer s39_vfidb, // vector load fp integer long s39_vfisb, // vector load fp integer short s39_vfkedb, // vector fp compare and signal equal long s39_vfkedbs, // vector fp compare and signal equal long s39_vfkesb, // vector fp compare and signal equal short s39_vfkesbs, // vector fp compare and signal equal short s39_vfkhdb, // vector fp compare and signal high long s39_vfkhdbs, // vector fp compare and signal high long s39_vfkhedb, // vector fp compare and signal high or equal long s39_vfkhedbs, // vector fp compare and signal high or equal long s39_vfkhesb, // vector fp compare and signal high or equal short s39_vfkhesbs, // vector fp compare and signal high or equal short s39_vfkhsb, // vector fp compare and signal high short s39_vfkhsbs, // vector fp compare and signal high short s39_vflcdb, // vector fp perform sign operation long s39_vflcsb, // vector fp perform sign operation short s39_vfll, // vector fp load lengthened s39_vflls, // vector fp load lengthened s39_vflndb, // vector fp perform sign operation long s39_vflnsb, // vector fp perform sign operation short s39_vflpdb, // vector fp perform sign operation long s39_vflpsb, // vector fp perform sign operation short s39_vflr, // vector fp load rounded s39_vflrd, // vector fp load rounded long s39_vfm, // vector fp multiply s39_vfma, // vector fp multiply and add s39_vfmadb, // vector fp multiply and add long s39_vfmasb, // vector fp multiply and add short s39_vfmax, // vector fp maximum s39_vfmaxdb, // vector fp maximum long s39_vfmaxsb, // vector fp maximum short s39_vfmdb, // vector fp multiply long s39_vfmin, // vector fp minimum s39_vfmindb, // vector fp minimum long s39_vfminsb, // vector fp minimum short s39_vfms, // vector fp multiply and subtract s39_vfmsb, // vector fp multiply short s39_vfmsdb, // vector fp multiply and subtract long s39_vfmssb, // vector fp multiply and subtract short s39_vfnma, // vector fp negative multiply and add s39_vfnmadb, // vector fp negative multiply and add long s39_vfnmasb, // vector fp negative multiply and add short s39_vfnms, // vector fp negative multiply and subtract s39_vfnmsdb, // vector fp negative multiply and subtract long s39_vfnmssb, // vector fp negative multiply and subtract short s39_vfpso, // vector fp perform sign operation s39_vfpsodb, // vector fp perform sign operation long s39_vfpsosb, // vector fp perform sign operation short s39_vfs, // vector fp subtract s39_vfsdb, // vector fp subtract long s39_vfsq, // vector fp square root s39_vfsqdb, // vector fp square root long s39_vfsqsb, // vector fp square root short s39_vfssb, // vector fp subtract short s39_vftci, // vector fp test data class immediate s39_vftcidb, // vector fp test data class immediate s39_vftcisb, // vector fp test data class immediate short s39_vgbm, // vector generate byte mask s39_vgef, // vector gather element (32) s39_vgeg, // vector gather element (64) s39_vgfm, // vector galois field multiply sum s39_vgfma, // vector galois field multiply sum and accumulate s39_vgfmab, // vector galois field multiply sum and accumulate byte s39_vgfmaf, // vector galois field multiply sum and accumulate word s39_vgfmag, // vector galois field multiply sum and accumulate doubleword s39_vgfmah, // vector galois field multiply sum and accumulate halfword s39_vgfmb, // vector galois field multiply sum byte s39_vgfmf, // vector galois field multiply sum word s39_vgfmg, // vector galois field multiply sum doubleword s39_vgfmh, // vector galois field multiply sum halfword s39_vgm, // vector generate mask s39_vgmb, // vector generate mask byte s39_vgmf, // vector generate mask word s39_vgmg, // vector generate mask double word s39_vgmh, // vector generate mask halfword s39_vistr, // vector isolate string s39_vistrb, // vector isolate string byte s39_vistrbs, // vector isolate string byte s39_vistrf, // vector isolate string word s39_vistrfs, // vector isolate string word s39_vistrh, // vector isolate string halfword s39_vistrhs, // vector isolate string halfword s39_vl, // vector load s39_vlbb, // vector load to block boundary s39_vlbr, // s39_vlbrf, // s39_vlbrg, // s39_vlbrh, // s39_vlbrq, // s39_vlbrrep, // s39_vlbrrepf, // s39_vlbrrepg, // s39_vlbrreph, // s39_vlc, // vector load complement s39_vlcb, // vector load complement byte s39_vlcf, // vector load complement word s39_vlcg, // vector load complement doubleword s39_vlch, // vector load complement halfword s39_vlde, // vector fp load lengthened s39_vldeb, // vector fp load lengthened short to long s39_vleb, // vector load byte element s39_vlebrf, // s39_vlebrg, // s39_vlebrh, // s39_vled, // vector fp load rounded s39_vledb, // vector fp load rounded long to short s39_vlef, // vector load element (32) s39_vleg, // vector load element (64) s39_vleh, // vector load element (16) s39_vleib, // vector load element immediate (8) s39_vleif, // vector load element immediate (32) s39_vleig, // vector load element immediate (64) s39_vleih, // vector load element immediate (16) s39_vler, // s39_vlerf, // s39_vlerg, // s39_vlerh, // s39_vlgv, // vector load gr from vr element s39_vlgvb, // vector load gr from vr byte element s39_vlgvf, // vector load gr from vr word element s39_vlgvg, // vector load gr from vr double word element s39_vlgvh, // vector load gr from vr halfword element s39_vlip, // vector load immediate decimal s39_vll, // vector load with length s39_vllebrz, // s39_vllebrze, // s39_vllebrzf, // s39_vllebrzg, // s39_vllebrzh, // s39_vllez, // vector load logical element and zero s39_vllezb, // vector load logical byte element and zero s39_vllezf, // vector load logical word element and zero s39_vllezg, // vector load logical double word element and zero s39_vllezh, // vector load logical halfword element and zero s39_vllezlf, // vector load logical word element and zero - left aligned s39_vlm, // vector load multiple s39_vlp, // vector load positive s39_vlpb, // vector load positive byte s39_vlpf, // vector load positive word s39_vlpg, // vector load positive doubleword s39_vlph, // vector load positive halfword s39_vlr, // vector load s39_vlrep, // vector load and replicate s39_vlrepb, // vector load and replicate byte elements s39_vlrepf, // vector load and replicate word elements s39_vlrepg, // vector load and replicate double word elements s39_vlreph, // vector load and replicate halfword elements s39_vlrl, // vector load rightmost with immediate length s39_vlrlr, // vector load rightmost with immediate length s39_vlvg, // vector load VR element from GR s39_vlvgb, // vector load VR byte element from GR s39_vlvgf, // vector load VR word element from GR s39_vlvgg, // vector load VR double word element from GR s39_vlvgh, // vector load VR halfword element from GR s39_vlvgp, // vector load VR from GRs disjoint s39_vmae, // vector multiply and add even s39_vmaeb, // vector multiply and add even byte s39_vmaef, // vector multiply and add even word s39_vmaeh, // vector multiply and add even halfword s39_vmah, // vector multiply and add high s39_vmahb, // vector multiply and add high byte s39_vmahf, // vector multiply and add high word s39_vmahh, // vector multiply and add high halfword s39_vmal, // vector multiply and add low s39_vmalb, // vector multiply and add low byte s39_vmale, // vector multiply and add logical even s39_vmaleb, // vector multiply and add logical even byte s39_vmalef, // vector multiply and add logical even word s39_vmaleh, // vector multiply and add logical even halfword s39_vmalf, // vector multiply and add low word s39_vmalh, // vector multiply and add logical high s39_vmalhb, // vector multiply and add logical high byte s39_vmalhf, // vector multiply and add logical high word s39_vmalhh, // vector multiply and add logical high halfword s39_vmalhw, // vector multiply and add low halfword s39_vmalo, // vector multiply and add logical odd s39_vmalob, // vector multiply and add logical odd byte s39_vmalof, // vector multiply and add logical odd word s39_vmaloh, // vector multiply and add logical odd halfword s39_vmao, // vector multiply and add odd s39_vmaob, // vector multiply and add odd byte s39_vmaof, // vector multiply and add odd word s39_vmaoh, // vector multiply and add odd halfword s39_vme, // vector multiply even s39_vmeb, // vector multiply even byte s39_vmef, // vector multiply even word s39_vmeh, // vector multiply even halfword s39_vmh, // vector multiply high s39_vmhb, // vector multiply high byte s39_vmhf, // vector multiply high word s39_vmhh, // vector multiply high halfword s39_vml, // vector multiply low s39_vmlb, // vector multiply low byte s39_vmle, // vector multiply logical even s39_vmleb, // vector multiply logical even byte s39_vmlef, // vector multiply logical even word s39_vmleh, // vector multiply logical even halfword s39_vmlf, // vector multiply low word s39_vmlh, // vector multiply logical high s39_vmlhb, // vector multiply logical high byte s39_vmlhf, // vector multiply logical high word s39_vmlhh, // vector multiply logical high halfword s39_vmlhw, // vector multiply low halfword s39_vmlo, // vector multiply logical odd s39_vmlob, // vector multiply logical odd byte s39_vmlof, // vector multiply logical odd word s39_vmloh, // vector multiply logical odd halfword s39_vmn, // vector minimum s39_vmnb, // vector minimum byte s39_vmnf, // vector minimum word s39_vmng, // vector minimum doubleword s39_vmnh, // vector minimum halfword s39_vmnl, // vector minimum logical s39_vmnlb, // vector minimum logical byte s39_vmnlf, // vector minimum logical word s39_vmnlg, // vector minimum logical doubleword s39_vmnlh, // vector minimum logical halfword s39_vmo, // vector multiply odd s39_vmob, // vector multiply odd byte s39_vmof, // vector multiply odd word s39_vmoh, // vector multiply odd halfword s39_vmp, // vector multiply decimal s39_vmrh, // vector merge high s39_vmrhb, // vector merge high byte s39_vmrhf, // vector merge high word s39_vmrhg, // vector merge high double word s39_vmrhh, // vector merge high halfword s39_vmrl, // vector merge low s39_vmrlb, // vector merge low byte s39_vmrlf, // vector merge low word s39_vmrlg, // vector merge low double word s39_vmrlh, // vector merge low halfword s39_vmsl, // vector multiply sum logical s39_vmslg, // vector multiply sum logical double word s39_vmsp, // vector multiply and shift decimal s39_vmx, // vector maximum s39_vmxb, // vector maximum byte s39_vmxf, // vector maximum word s39_vmxg, // vector maximum doubleword s39_vmxh, // vector maximum halfword s39_vmxl, // vector maximum logical s39_vmxlb, // vector maximum logical byte s39_vmxlf, // vector maximum logical word s39_vmxlg, // vector maximum logical doubleword s39_vmxlh, // vector maximum logical halfword s39_vn, // vector and s39_vnc, // vector and with complement s39_vnn, // vector nand s39_vno, // vector nor s39_vnot, // vector not s39_vnx, // vector not exclusive or s39_vo, // vector or s39_voc, // vector or with complement s39_vone, // vector set to ones s39_vpdi, // vector permute double word immediate s39_vperm, // vector permute s39_vpk, // vector pack s39_vpkf, // vector pack word s39_vpkg, // vector pack double word s39_vpkh, // vector pack halfword s39_vpkls, // vector pack logical saturate s39_vpklsf, // vector pack logical saturate word s39_vpklsfs, // vector pack logical saturate word s39_vpklsg, // vector pack logical saturate double word s39_vpklsgs, // vector pack logical saturate double word s39_vpklsh, // vector pack logical saturate halfword s39_vpklshs, // vector pack logical saturate halfword s39_vpks, // vector pack saturate s39_vpksf, // vector pack saturate word s39_vpksfs, // vector pack saturate word s39_vpksg, // vector pack saturate double word s39_vpksgs, // vector pack saturate double word s39_vpksh, // vector pack saturate halfword s39_vpkshs, // vector pack saturate halfword s39_vpkz, // vector pack zoned s39_vpopct, // vector population count s39_vpopctb, // vector population count byte s39_vpopctf, // vector population count word s39_vpopctg, // vector population count double word s39_vpopcth, // vector population count halfword s39_vpsop, // vector perform sign operation decimal s39_vrep, // vector replicate s39_vrepb, // vector replicate byte s39_vrepf, // vector replicate word s39_vrepg, // vector replicate double word s39_vreph, // vector replicate halfword s39_vrepi, // vector replicate immediate s39_vrepib, // vector replicate immediate byte s39_vrepif, // vector replicate immediate word s39_vrepig, // vector replicate immediate double word s39_vrepih, // vector replicate immediate halfword s39_vrp, // vector remainder decimal s39_vs, // vector subtract s39_vsb, // vector subtract byte s39_vsbcbi, // vector subtract with borrow compute borrow indication s39_vsbcbiq, // vector subtract with borrow compute borrow indication quadword s39_vsbi, // vector subtract with borrow indication s39_vsbiq, // vector subtract with borrow indication quadword s39_vscbi, // vector subtract compute borrow indication s39_vscbib, // vector subtract compute borrow indication byte s39_vscbif, // vector subtract compute borrow indication word s39_vscbig, // vector subtract compute borrow indication doubleword s39_vscbih, // vector subtract compute borrow indication halfword s39_vscbiq, // vector subtract compute borrow indication quadword s39_vscef, // vector scatter element (32) s39_vsceg, // vector scatter element (64) s39_vsdp, // vector shift and divide decimal s39_vseg, // vector sign extend to double word s39_vsegb, // vector sign extend byte to double word s39_vsegf, // vector sign extend word to double word s39_vsegh, // vector sign extend halfword to double word s39_vsel, // vector select s39_vsf, // vector subtract word s39_vsg, // vector subtract doubleword s39_vsh, // vector subtract halfword s39_vsl, // vector shift left s39_vslb, // vector shift left by byte s39_vsld, // s39_vsldb, // vector shift left double by byte s39_vsp, // vector subtract decimal s39_vsq, // vector subtract quadword s39_vsra, // vector shift right arithmetic s39_vsrab, // vector shift right arithmetic by byte s39_vsrd, // s39_vsrl, // vector shift right logical s39_vsrlb, // vector shift right logical by byte s39_vsrp, // vector shift and round decimal s39_vst, // vector store s39_vstbr, // s39_vstbrf, // s39_vstbrg, // s39_vstbrh, // s39_vstbrq, // s39_vsteb, // vector store element (8) s39_vstebrf, // s39_vstebrg, // s39_vstebrh, // s39_vstef, // vector store element (32) s39_vsteg, // vector store element (64) s39_vsteh, // vector store element (16) s39_vster, // s39_vsterf, // s39_vsterg, // s39_vsterh, // s39_vstl, // vector store with length s39_vstm, // vector store multiple s39_vstrc, // vector string range compare s39_vstrcb, // vector string range compare byte s39_vstrcbs, // vector string range compare byte s39_vstrcf, // vector string range compare word s39_vstrcfs, // vector string range compare word s39_vstrch, // vector string range compare halfword s39_vstrchs, // vector string range compare halfword s39_vstrczb, // vector string range compare byte s39_vstrczbs, // vector string range compare byte s39_vstrczf, // vector string range compare word s39_vstrczfs, // vector string range compare word s39_vstrczh, // vector string range compare halfword s39_vstrczhs, // vector string range compare halfword s39_vstrl, // vector store rightmost with length s39_vstrlr, // vector store rightmost with length s39_vstrs, // s39_vstrsb, // s39_vstrsf, // s39_vstrsh, // s39_vstrszb, // s39_vstrszf, // s39_vstrszh, // s39_vsum, // vector sum across word s39_vsumb, // vector sum across word - byte elements s39_vsumg, // vector sum across doubleword s39_vsumgf, // vector sum across doubleword - word s39_vsumgh, // vector sum across doubleword - halfword s39_vsumh, // vector sum across word - halfword elements s39_vsumq, // vector sum across quadword s39_vsumqf, // vector sum across quadword - word elements s39_vsumqg, // vector sum across quadword - doubleword elements s39_vtm, // vector test under mask s39_vtp, // vector test decimal s39_vuph, // vector unpack high s39_vuphb, // vector unpack high byte s39_vuphf, // vector unpack high word s39_vuphh, // vector unpack high halfword s39_vupkz, // vector unpack zoned s39_vupl, // vector unpack low s39_vuplb, // vector unpack low byte s39_vuplf, // vector unpack low word s39_vuplh, // vector unpack logical high s39_vuplhb, // vector unpack logical high byte s39_vuplhf, // vector unpack logical high word s39_vuplhh, // vector unpack logical high halfword s39_vuplhw, // vector unpack low halfword s39_vupll, // vector unpack logical low s39_vupllb, // vector unpack logical low byte s39_vupllf, // vector unpack logical low word s39_vupllh, // vector unpack logical low halfword s39_vzero, // vector set to zero s39_wcdgb, // vector fp convert from fixed 64 bit s39_wcdlgb, // vector fp convert from logical 64 bit s39_wcefb, // s39_wcelfb, // s39_wcfeb, // s39_wcgdb, // vector fp convert to fixed 64 bit s39_wclfeb, // s39_wclgdb, // vector fp convert to logical 64 bit s39_wfadb, // vector fp add long s39_wfasb, // scalar vector fp add scalar short s39_wfaxb, // scalar vector fp add scalar extended s39_wfc, // vector fp compare scalar s39_wfcdb, // vector fp compare scalar long s39_wfcedb, // vector fp compare equal long s39_wfcedbs, // vector fp compare equal long s39_wfcesb, // scalar vector fp compare equal scalar short s39_wfcesbs, // scalar fp compare equal scalar short s39_wfcexb, // scalar vector fp compare equal scalar extended s39_wfcexbs, // scalar vector fp compare equal scalar extended s39_wfchdb, // vector fp compare high long s39_wfchdbs, // vector fp compare high long s39_wfchedb, // vector fp compare high or equal long s39_wfchedbs, // vector fp compare high or equal long s39_wfchesb, // scalar vector fp compare high or equal scalar short s39_wfchesbs, // scalar vector fp compare high or equal scalar short s39_wfchexb, // scalar vector fp compare high or equal scalar extended s39_wfchexbs, // scalar vector fp compare high or equal scalar extended s39_wfchsb, // scalar vector fp compare high scalar short s39_wfchsbs, // scalar vector fp compare high scalar short s39_wfchxb, // scalar vector fp compare high scalar extended s39_wfchxbs, // scalar vector fp compare high scalar extended s39_wfcsb, // scalar vector fp compare scalar short s39_wfcxb, // scalar vector fp compare scalar extended s39_wfddb, // vector fp divide long s39_wfdsb, // scalar vector fp divide scalar short s39_wfdxb, // scalar vector fp divide scalar extended s39_wfidb, // vector load fp integer long s39_wfisb, // scalar vector load fp integer scalar short s39_wfixb, // scalar vector load fp integer scalar extended s39_wfk, // vector fp compare and signal scalar s39_wfkdb, // vector fp compare and signal scalar long s39_wfkedb, // vector fp compare and signal equal long s39_wfkedbs, // vector fp compare and signal equal long s39_wfkesb, // scalar vector fp compare and signal equal scalar short s39_wfkesbs, // scalar fp compare and signal equal scalar short s39_wfkexb, // scalar vector fp compare and signal equal scalar extended s39_wfkexbs, // scalar vector fp compare and signal equal scalar extended s39_wfkhdb, // vector fp compare and signal high long s39_wfkhdbs, // vector fp compare and signal high long s39_wfkhedb, // vector fp compare and signal high or equal long s39_wfkhedbs, // vector fp compare and signal high or equal long s39_wfkhesb, // scalar vector fp compare and signal high or equal scalar short s39_wfkhesbs, // scalar vector fp compare and signal high or equal scalar short s39_wfkhexb, // scalar vector fp compare and signal high or equal scalar extended s39_wfkhexbs, // scalar vector fp compare and signal high or equal scalar extended s39_wfkhsb, // scalar vector fp compare and signal high scalar short s39_wfkhsbs, // scalar vector fp compare and signal high scalar short s39_wfkhxb, // scalar vector fp compare and signal high scalar extended s39_wfkhxbs, // scalar vector fp compare and signal high scalar extended s39_wfksb, // scalar vector fp compare and signal scalar short s39_wfkxb, // scalar vector fp compare and signal scalar extended s39_wflcdb, // vector fp perform sign operation long s39_wflcsb, // scalar vector fp perform sign operation scalar short s39_wflcxb, // scalar vector fp perform sign operation scalar extended s39_wflld, // scalar vector fp load lengthened long s39_wflls, // scalar vector fp load lengthened short s39_wflndb, // vector fp perform sign operation long s39_wflnsb, // scalar vector fp perform sign operation scalar short s39_wflnxb, // scalar vector fp perform sign operation scalar extended s39_wflpdb, // vector fp perform sign operation long s39_wflpsb, // scalar vector fp perform sign operation scalar short s39_wflpxb, // scalar vector fp perform sign operation scalar extended s39_wflrd, // scalar vector fp load rounded long s39_wflrx, // scalar vector fp load rounded extended s39_wfmadb, // vector fp multiply and add long s39_wfmasb, // scalar vector fp multiply and add scalar short s39_wfmaxb, // scalar vector fp multiply and add scalar extended s39_wfmaxdb, // scalar fp maximum scalar long s39_wfmaxsb, // scalar fp maximum scalar short s39_wfmaxxb, // scalar fp maximum scalar extended s39_wfmdb, // vector fp multiply long s39_wfmindb, // scalar fp minimum scalar long s39_wfminsb, // scalar fp minimum scalar short s39_wfminxb, // scalar fp minimum scalar extended s39_wfmsb, // scalar vector fp multiply scalar short s39_wfmsdb, // vector fp multiply and subtract long s39_wfmssb, // scalar vector fp multiply and subtract scalar short s39_wfmsxb, // scalar vector fp multiply and subtract scalar extended s39_wfmxb, // scalar vector fp multiply scalar extended s39_wfnmadb, // scalar vector fp negative multiply and add scalar long s39_wfnmasb, // scalar vector fp negative multiply and add scalar short s39_wfnmaxb, // scalar vector fp negative multiply and add scalar extended s39_wfnmsdb, // scalar vector fp negative multiply and subtract scalar long s39_wfnmssb, // scalar vector fp negative multiply and subtract scalar short s39_wfnmsxb, // scalar vector fp negative multiply and subtract scalar extended s39_wfpsodb, // vector fp perform sign operation long s39_wfpsosb, // scalar vector fp perform sign operation scalar short s39_wfpsoxb, // scalar vector fp perform sign operation scalar extended s39_wfsdb, // vector fp subtract long s39_wfsqdb, // vector fp square root long s39_wfsqsb, // scalar vector fp square root scalar short s39_wfsqxb, // scalar vector fp square root scalar extended s39_wfssb, // scalar vector fp subtract scalar short s39_wfsxb, // scalar vector fp subtract scalar extended s39_wftcidb, // vector fp test data class immediate s39_wftcisb, // scalar vector fp test data class immediate scalar short s39_wftcixb, // scalar vector fp test data class immediate scalar extended s39_wldeb, // vector fp load lengthened short to long s39_wledb, // vector fp load rounded long to short s39_x, // exclusive or (32) s39_xc, // exclusive or (character) s39_xg, // exclusive or (64) s39_xgr, // exclusive or (64) s39_xgrk, // exclusive or (64) s39_xi, // exclusive or (immediate) s39_xihf, // exclusive or immediate (high) s39_xilf, // exclusive or immediate (low) s39_xiy, // exclusive or immediate (immediate) s39_xr, // exclusive or (32) s39_xrk, // exclusive or (32) s39_xsch, // cancel subchannel s39_xy, // exclusive or with long offset s39_zap, // zero and add s39_vx, // vector exclusive or s39_last, }; /* * Interactive disassembler (IDA). * Copyright (c) 1990-2021 Hex-Rays * ALL RIGHTS RESERVED. * * Risc-V module * */ enum { RISCV_null = 0, // Unknown Operation // Set 32 bits // I(nteger) extension RISCV_lui, // Load Upper Immediate RISCV_auipc, // Add Upper Immediate to pc RISCV_jal, // Jump and link RISCV_jalr, // Jump register rs1 & write pc +2 in rs1 RISCV_beq, // Branch on equal RISCV_bne, // Branch not equal RISCV_blt, // Branch less than RISCV_bge, // Branch greater or equal RISCV_bltu, // Branch less than unsigned RISCV_bgeu, // Branch greater or equal unsigned RISCV_lb, // Load byte RISCV_lh, // Load halfword RISCV_lw, // Load word RISCV_lbu, // Load byte unsigned RISCV_lhu, // Load halfword unsigned RISCV_sb, // Store byte RISCV_sh, // Store halfword RISCV_sw, // Store word RISCV_addi, // Add immediate RISCV_slti, // Set less than immediate RISCV_sltiu, // Set less than immediate unsigned RISCV_xori, // Xor immediate RISCV_ori, // Or immediate RISCV_andi, // And Immediate RISCV_slli, // Shift left logical immediate RISCV_srli, // Shift right logical immediate RISCV_srai, // Shift right arithmetical immediate RISCV_add, // Add integer RISCV_sub, // Substract integer RISCV_sll, // Shift left logical RISCV_slt, // Set Less Than RISCV_sltu, // Set Less Than unsigned RISCV_xor, // eXclusive Or RISCV_srl, // Shift right logical RISCV_sra, // Shift right arithmetical RISCV_or, // Or RISCV_and, // And RISCV_fence, // Fence RISCV_ecall, // Ecall RISCV_ebreak, // Ebreak RISCV_uret, // User lvl return RISCV_sret, // Supervisor lvl return RISCV_mret, // Machine lvl return RISCV_wfi, // Wait for interrupt RISCV_sfence, // Supervisor fence RISCV_hfenceb, // Hypervisor fence b RISCV_hfenceg, // Hypervisor fence g // Set 64 bits // Integer extension RISCV_lwu, // Load word unsigned RISCV_ld, // Load double RISCV_sd, // Store double RISCV_addiw, // Add immediate word RISCV_slliw, // Shift left logical immediate word RISCV_srliw, // Shift right logical immediate word RISCV_sraiw, // Shift right arithmetical immediate word RISCV_addw, // Add integer word RISCV_subw, // Substract integer word RISCV_sllw, // Shift left logical word RISCV_sltw, // Set Less Than word RISCV_srlw, // Shift right logical word RISCV_sraw, // Shift right arithmetical word // Zifencei Standard extension RISCV_fencei, // Fence immediate // Zicsr Standard extension RISCV_csrrw, // Atomic Read Write CSR RISCV_csrrs, // Atomic Read and Set bit CSR RISCV_csrrc, // Atomic Read and clear bit CSR RISCV_csrrwi, // Atomic Read Write CSR immediate RISCV_csrrsi, // Atomic Read and Set bit CSR immediate RISCV_csrrci, // Atomic Read and clear bit CSR immediate // M(ultiplication and divison for integer) extension RISCV_mul, // Multiplication RISCV_mulh, // Multiplication half (signed signed) RISCV_mulhsu, // Multiplication half (signed unsigned) RISCV_mulhu, // Multiplication half (unsigned unsigned) RISCV_div, // Division RISCV_divu, // Division unsigned RISCV_rem, // Remainder of div RISCV_remu, // Remainder of div unsigned // 64b M(ultiplication and divison for integer) extension RISCV_mulw, // Multiplication word RISCV_divw, // Division word RISCV_divuw, // Division unsigned word RISCV_remw, // Remainder of div word RISCV_remuw, // Remainder of div unsigned word // A(tomic) operation standtard extension RISCV_lr, // Load reserved RISCV_sc, // Store conditional RISCV_amoswap, // Atomic memory operation swap RISCV_amoadd, // Atomic memory operation add RISCV_amoxor, // Atomic memory operation xop RISCV_amoand, // Atomic memory operation and RISCV_amoor, // Atomic memory operation or RISCV_amomin, // Atomic memory operation min RISCV_amomax, // Atomic memory operation max RISCV_amominu, // Atomic memory operation min unsigned RISCV_amomaxu, // Atomic memory operation max unsigned // simple precision F(loat) instruction extension RISCV_flw, // Load word (32b) RISCV_fsw, // Store word (32b) RISCV_fmadd, // Multiply then add RISCV_fmsub, // Multiply then substract RISCV_fnmsub, // Multiply then negate then substract RISCV_fnmadd, // Multiply then negate then add RISCV_fadd, // Float addition RISCV_fsub, // Float substraction RISCV_fmul, // Float multiplication RISCV_fdiv, // Float division RISCV_fsqrt, // Float square root RISCV_fsgnj, // Float sign injection RISCV_fsgnjn, // Float sign injection negate RISCV_fsgnjx, // Float sign injection xor between operands RISCV_fmin, // Float minimum RISCV_fmax, // Float maximum RISCV_fcvtf2f, // F2F conve RISCV_fcvtf2i, // F2I conve RISCV_fcvti2f, // I2F conve RISCV_fmv, // Mv RISCV_feq, // Float equal RISCV_flt, // Float less than RISCV_fle, // Float less or equal than RISCV_fclass, // Classify the float // 64b simple precision F(loat) instruction extension // D(ouble) precision float instruction extension RISCV_fld, // Load double (64b) RISCV_fsd, // Store double (64b) // 64b D(ouble) precision float instruction // Q(uadruple) precision float instruction extension RISCV_flq, // Load quadruple (128b) RISCV_fsq, // Store quadruple (128b) // 64b Q(uadruple) precision float extension // pseudo insn RISCV_nop, // No operation RISCV_li, // Load Immediate RISCV_mv, // Copy register RISCV_not, // One's complement RISCV_neg, // Two's complement RISCV_negw, // Two's complement word RISCV_sext, // Sign extend word RISCV_seqz, // Set if = zero RISCV_snez, // Set if != zero RISCV_sltz, // Set if < zero RISCV_sgtz, // Set if > zero RISCV_fabs, // Float absolute value RISCV_fneg, // Float negate RISCV_beqz, // Branch == 0 RISCV_bnez, // Branch != 0 RISCV_blez, // Branch <= 0 RISCV_bgez, // Branch >= 0 RISCV_bltz, // Branch < 0 RISCV_bgtz, // Branch > 0 RISCV_j, // Jump RISCV_jr, // Jump register RISCV_ret, // Return RISCV_rdinstret, // Read instructions-retired counter RISCV_rdcycle, // Read cycle counter RISCV_rdtime, // Read real-time clock RISCV_rdinstreth, // Read instructions-retired counter Upper 32 bits RISCV_rdcycleh, // Read cycle counter Upper 32 bits RISCV_rdtimeh, // Read real-time clock Upper 32 bits RISCV_csrr, // Read CSR RISCV_csrw, // Write CSR RISCV_csrs, // Set bit CSR RISCV_csrc, // Clear bit RISCV_csrwi, // Write CSR immediate RISCV_csrsi, // Set bit CSR immediate RISCV_csrci, // Clear bit CSR immediate RISCV_frcsr, // Read FP control/status register RISCV_fscsr, // Write/Swap FP control/status register RISCV_frrm, // Read FP rounding mode RISCV_fsrm, // Write/Swap FP rounding mode RISCV_frflags, // Read FP exception flags RISCV_fsflags, // Write/Swap FP exception flags // Macro RISCV_la, // Load Address macro RISCV_call, // Call macro RISCV_tail, // Tail macro RISCV_jump, // Jump macro RISCV_last }; /* * Interactive disassembler (IDA). * Renesas Electronics RL78 module * */ enum { RL78_null = 0, // Unknown Operation RL78_subw, // Subtract Word - Word Data Subtraction RL78_movw, // Move Word - Word Data Transfer RL78_call, // Call - Subroutine Call RL78_clrw, // Clear Word - Word Data Clear RL78_addw, // Add Word - Word Data Addition RL78_ret, // Return - Return from Subroutine RL78_sel, // Select Register Bank RL78_push, // Push RL78_onew, // One Word - Word Data 0001 Set RL78_incw, // Increment Word - Word Data Increment RL78_cmpw, // Compare Word - Word Data Comparison RL78_bnz, // Branch if Not Zero RL78_clrb, // Clear byte - Byte Data Clear RL78_and, // And - Logical Product of Byte Data RL78_or, // Or - Logical Sum of Byte Data RL78_br, // Branch - Unconditional Branch RL78_pop, // Pop RL78_cmp, // Compare - Byte Data Comparison RL78_decw, // Decrement Word - Word Data Decrement RL78_inc, // Increment - Byte Data Increment RL78_bz, // Branch if Zero RL78_sknz, // Skip if not Z - Skip with Zero Flag (Z = 0) RL78_sknh, // Skip if not Higher than - Skip with numeric value comparison ((Z \/ CY) = 1) RL78_skh, // Skip if Higher than - Skip with numeric value comparison ((Z \/ CY) = 0) RL78_xor1, // Exclusive Or Single Bit - 1 Bit Data Exclusive Logical Sum RL78_or1, // Or Single Bit - 1 Bit Data Logical Sum RL78_and1, // And Single Bit - 1 Bit Data Logical Product RL78_mov1, // Move Single Bit - 1 Bit Data Transfer RL78_clr1, // Clear Single Bit (Carry Flag) - 1 Bit Data Clear RL78_set1, // Set Single Bit (Carry Flag) - 1 Bit Data Set RL78_not1, // Not Single Bit (Carry Flag) - 1 Bit Data Logical Negation RL78_skc, // Skip if CY - Skip with Carry Flag (CY = 1) RL78_sknc, // Skip if not CY - Skip with Carry Flag (CY = 0) RL78_skz, // Skip if Z - Skip with Zero Flag (Z = 1) RL78_mov, // Move - Byte Data Transfer RL78_btclr, // Branch if True and Clear - Conditional Branch and Clear by Bit Test (Byte Data Bit =1) RL78_bt, // Branch if True - Conditional Branch by Bit Test (Byte Data Bit = 1) RL78_bf, // Branch if False - Conditional Branch by Bit Test (Byte Data Bit = 0) RL78_shl, // Shift Left - Logical Shift to the Left RL78_shr, // Shift Right - Logical Shift to the Right RL78_sar, // Shift Arithmetic Right - Arithmetic Shift to the Right RL78_shlw, // Shift Left Word - Logical Shift to the Left RL78_shrw, // Shift Right Word - Logical Shift to the Right RL78_sarw, // Shift Arithmetic Right Word - Arithmetic Shift to the Right RL78_bc, // Branch if Carry - Conditional Branch with Carry Flag (CY = 1) RL78_bnc, // Branch if Not Carry - Conditional Branch with Carry Flag (CY = 0) RL78_bh, // Branch if Higher than - Conditional branch by numeric value comparison ((Z \/ CY) = 0) RL78_bnh, // Branch if Not Higher than - Conditional branch by numeric value comparison ((Z \/ CY) = 1) RL78_add, // Add - Byte Data Addition RL78_addc, // Add with Carry - Addition of Byte Data with Carry RL78_sub, // Subtract - Byte Data Subtraction RL78_subc, // Subtract with Carry -Subtraction of Byte Data with Carry RL78_xor, // Exclusive Or - Exclusive Logical Sum of Byte Data RL78_xch, // Exchange - Byte Data Transfer RL78_dec, // Decrement - Byte Data Decrement RL78_rolwc, // Rotate Left word with Carry - Word Data Rotation to the Left with Carry RL78_xchw, // Exchange Word - Word Data Transfer RL78_cmps, // Compare - Byte Data Comparison RL78_movs, // Move and change PSW - Byte Data Transfer and PSW Change RL78_halt, // Halt - HALT Mode Set RL78_cmp0, // Compare 00H - Byte Data Zero Comparison RL78_mulu, // Multiply Unsigned - Unsigned Multiplication of Data RL78_oneb, // One byte - Byte Data 01H Set RL78_ror, // Rotate Right - Byte Data Rotation to the Right RL78_rol, // Rotate Left - Byte Data Rotation to the Left RL78_rorc, // Rotate Right with Carry - Byte Data Rotation to the Right with Carry RL78_rolc, // Rotate Left with Carry - Byte Data Rotation to the Left with Carry RL78_brk, // Break - Software Vectored Interrupt RL78_retb, // Return from Break - Return from Software Vectored Interrupt RL78_reti, // Return from Interrupt - Return from Interrupt Vectored Interrupt RL78_stop, // Stop - Stop Mode Set RL78_nop, // No Operation RL78_callt, // Call Table - Subroutine Call (Refer to the Call Table) RL78_last };