IDA C++ SDK
9.4
Loading...
Searching...
No Matches
allins.hpp
Go to the documentation of this file.
1
/*
2
* Interactive disassembler (IDA).
3
* Copyright (c) 1990-2026 Hex-Rays
4
* ALL RIGHTS RESERVED.
5
*
6
*/
7
enum
8
{
9
NN_null
= 0,
// Unknown Operation
10
NN_aaa
,
// ASCII Adjust after Addition
11
NN_aad
,
// ASCII Adjust AX before Division
12
NN_aam
,
// ASCII Adjust AX after Multiply
13
NN_aas
,
// ASCII Adjust AL after Subtraction
14
NN_adc
,
// Add with Carry
15
NN_add
,
// Add
16
NN_and
,
// Logical AND
17
NN_arpl
,
// Adjust RPL Field of Selector
18
NN_bound
,
// Check Array Index Against Bounds
19
NN_bsf
,
// Bit Scan Forward
20
NN_bsr
,
// Bit Scan Reverse
21
NN_bt
,
// Bit Test
22
NN_btc
,
// Bit Test and Complement
23
NN_btr
,
// Bit Test and Reset
24
NN_bts
,
// Bit Test and Set
25
NN_call
,
// Call Procedure
26
NN_callfi
,
// Indirect Call Far Procedure
27
NN_callni
,
// Indirect Call Near Procedure
28
NN_cbw
,
// AL -> AX (with sign)
29
NN_cwde
,
// AX -> EAX (with sign)
30
NN_cdqe
,
// EAX -> RAX (with sign)
31
NN_clc
,
// Clear Carry Flag
32
NN_cld
,
// Clear Direction Flag
33
NN_cli
,
// Clear Interrupt Flag
34
NN_clts
,
// Clear Task-Switched Flag in CR0
35
NN_cmc
,
// Complement Carry Flag
36
NN_cmp
,
// Compare Two Operands
37
NN_cmps
,
// Compare Strings
38
NN_cwd
,
// AX -> DX:AX (with sign)
39
NN_cdq
,
// EAX -> EDX:EAX (with sign)
40
NN_cqo
,
// RAX -> RDX:RAX (with sign)
41
NN_daa
,
// Decimal Adjust AL after Addition
42
NN_das
,
// Decimal Adjust AL after Subtraction
43
NN_dec
,
// Decrement by 1
44
NN_div
,
// Unsigned Divide
45
NN_enterw
,
// Make Stack Frame for Procedure Parameters
46
NN_enter
,
// Make Stack Frame for Procedure Parameters
47
NN_enterd
,
// Make Stack Frame for Procedure Parameters
48
NN_enterq
,
// Make Stack Frame for Procedure Parameters
49
NN_hlt
,
// Halt
50
NN_idiv
,
// Signed Divide
51
NN_imul
,
// Signed Multiply
52
NN_in
,
// Input from Port
53
NN_inc
,
// Increment by 1
54
NN_ins
,
// Input Byte(s) from Port to String
55
NN_int
,
// Call to Interrupt Procedure
56
NN_into
,
// Call to Interrupt Procedure if Overflow Flag = 1
57
NN_int3
,
// Trap to Debugger
58
NN_iretw
,
// Interrupt Return
59
NN_iret
,
// Interrupt Return
60
NN_iretd
,
// Interrupt Return (use32)
61
NN_iretq
,
// Interrupt Return (use64)
62
NN_ja
,
// Jump if Above (CF=0 & ZF=0)
63
NN_jae
,
// Jump if Above or Equal (CF=0)
64
NN_jb
,
// Jump if Below (CF=1)
65
NN_jbe
,
// Jump if Below or Equal (CF=1 | ZF=1)
66
NN_jc
,
// Jump if Carry (CF=1)
67
NN_jcxz
,
// Jump if CX is 0
68
NN_jecxz
,
// Jump if ECX is 0
69
NN_jrcxz
,
// Jump if RCX is 0
70
NN_je
,
// Jump if Equal (ZF=1)
71
NN_jg
,
// Jump if Greater (ZF=0 & SF=OF)
72
NN_jge
,
// Jump if Greater or Equal (SF=OF)
73
NN_jl
,
// Jump if Less (SF!=OF)
74
NN_jle
,
// Jump if Less or Equal (ZF=1 | SF!=OF)
75
NN_jna
,
// Jump if Not Above (CF=1 | ZF=1)
76
NN_jnae
,
// Jump if Not Above or Equal (CF=1)
77
NN_jnb
,
// Jump if Not Below (CF=0)
78
NN_jnbe
,
// Jump if Not Below or Equal (CF=0 & ZF=0)
79
NN_jnc
,
// Jump if Not Carry (CF=0)
80
NN_jne
,
// Jump if Not Equal (ZF=0)
81
NN_jng
,
// Jump if Not Greater (ZF=1 | SF!=OF)
82
NN_jnge
,
// Jump if Not Greater or Equal (ZF=1)
83
NN_jnl
,
// Jump if Not Less (SF=OF)
84
NN_jnle
,
// Jump if Not Less or Equal (ZF=0 & SF=OF)
85
NN_jno
,
// Jump if Not Overflow (OF=0)
86
NN_jnp
,
// Jump if Not Parity (PF=0)
87
NN_jns
,
// Jump if Not Sign (SF=0)
88
NN_jnz
,
// Jump if Not Zero (ZF=0)
89
NN_jo
,
// Jump if Overflow (OF=1)
90
NN_jp
,
// Jump if Parity (PF=1)
91
NN_jpe
,
// Jump if Parity Even (PF=1)
92
NN_jpo
,
// Jump if Parity Odd (PF=0)
93
NN_js
,
// Jump if Sign (SF=1)
94
NN_jz
,
// Jump if Zero (ZF=1)
95
NN_jmp
,
// Jump
96
NN_jmpfi
,
// Indirect Far Jump
97
NN_jmpni
,
// Indirect Near Jump
98
NN_jmpshort
,
// Jump Short (not used)
99
NN_lahf
,
// Load Flags into AH Register
100
NN_lar
,
// Load Access Right Byte
101
NN_lea
,
// Load Effective Address
102
NN_leavew
,
// High Level Procedure Exit
103
NN_leave
,
// High Level Procedure Exit
104
NN_leaved
,
// High Level Procedure Exit
105
NN_leaveq
,
// High Level Procedure Exit
106
NN_lgdt
,
// Load Global Descriptor Table Register
107
NN_lidt
,
// Load Interrupt Descriptor Table Register
108
NN_lgs
,
// Load Full Pointer to GS:xx
109
NN_lss
,
// Load Full Pointer to SS:xx
110
NN_lds
,
// Load Full Pointer to DS:xx
111
NN_les
,
// Load Full Pointer to ES:xx
112
NN_lfs
,
// Load Full Pointer to FS:xx
113
NN_lldt
,
// Load Local Descriptor Table Register
114
NN_lmsw
,
// Load Machine Status Word
115
NN_lock
,
// Assert LOCK# Signal Prefix
116
NN_lods
,
// Load String
117
NN_loopw
,
// Loop while ECX != 0
118
NN_loop
,
// Loop while CX != 0
119
NN_loopd
,
// Loop while ECX != 0
120
NN_loopq
,
// Loop while RCX != 0
121
NN_loopwe
,
// Loop while CX != 0 and ZF=1
122
NN_loope
,
// Loop while rCX != 0 and ZF=1
123
NN_loopde
,
// Loop while ECX != 0 and ZF=1
124
NN_loopqe
,
// Loop while RCX != 0 and ZF=1
125
NN_loopwne
,
// Loop while CX != 0 and ZF=0
126
NN_loopne
,
// Loop while rCX != 0 and ZF=0
127
NN_loopdne
,
// Loop while ECX != 0 and ZF=0
128
NN_loopqne
,
// Loop while RCX != 0 and ZF=0
129
NN_lsl
,
// Load Segment Limit
130
NN_ltr
,
// Load Task Register
131
NN_mov
,
// Move Data
132
NN_movsp
,
// Move to/from Special Registers
133
NN_movs
,
// Move Byte(s) from String to String
134
NN_movsx
,
// Move with Sign-Extend
135
NN_movzx
,
// Move with Zero-Extend
136
NN_mul
,
// Unsigned Multiplication of AL or AX
137
NN_neg
,
// Two's Complement Negation
138
NN_nop
,
// No Operation
139
NN_not
,
// One's Complement Negation
140
NN_or
,
// Logical Inclusive OR
141
NN_out
,
// Output to Port
142
NN_outs
,
// Output Byte(s) to Port
143
NN_pop
,
// Pop a word from the Stack
144
NN_popaw
,
// Pop all General Registers
145
NN_popa
,
// Pop all General Registers
146
NN_popad
,
// Pop all General Registers (use32)
147
NN_popaq
,
// Pop all General Registers (use64)
148
NN_popfw
,
// Pop Stack into Flags Register
149
NN_popf
,
// Pop Stack into Flags Register
150
NN_popfd
,
// Pop Stack into Eflags Register
151
NN_popfq
,
// Pop Stack into Rflags Register
152
NN_push
,
// Push Operand onto the Stack
153
NN_pushaw
,
// Push all General Registers
154
NN_pusha
,
// Push all General Registers
155
NN_pushad
,
// Push all General Registers (use32)
156
NN_pushaq
,
// Push all General Registers (use64)
157
NN_pushfw
,
// Push Flags Register onto the Stack
158
NN_pushf
,
// Push Flags Register onto the Stack
159
NN_pushfd
,
// Push Flags Register onto the Stack (use32)
160
NN_pushfq
,
// Push Flags Register onto the Stack (use64)
161
NN_rcl
,
// Rotate Through Carry Left
162
NN_rcr
,
// Rotate Through Carry Right
163
NN_rol
,
// Rotate Left
164
NN_ror
,
// Rotate Right
165
NN_rep
,
// Repeat String Operation
166
NN_repe
,
// Repeat String Operation while ZF=1
167
NN_repne
,
// Repeat String Operation while ZF=0
168
NN_retn
,
// Return Near from Procedure
169
NN_retf
,
// Return Far from Procedure
170
NN_sahf
,
// Store AH into Flags Register
171
NN_sal
,
// Shift Arithmetic Left
172
NN_sar
,
// Shift Arithmetic Right
173
NN_shl
,
// Shift Logical Left
174
NN_shr
,
// Shift Logical Right
175
NN_sbb
,
// Integer Subtraction with Borrow
176
NN_scas
,
// Compare String
177
NN_seta
,
// Set Byte if Above (CF=0 & ZF=0)
178
NN_setae
,
// Set Byte if Above or Equal (CF=0)
179
NN_setb
,
// Set Byte if Below (CF=1)
180
NN_setbe
,
// Set Byte if Below or Equal (CF=1 | ZF=1)
181
NN_setc
,
// Set Byte if Carry (CF=1)
182
NN_sete
,
// Set Byte if Equal (ZF=1)
183
NN_setg
,
// Set Byte if Greater (ZF=0 & SF=OF)
184
NN_setge
,
// Set Byte if Greater or Equal (SF=OF)
185
NN_setl
,
// Set Byte if Less (SF!=OF)
186
NN_setle
,
// Set Byte if Less or Equal (ZF=1 | SF!=OF)
187
NN_setna
,
// Set Byte if Not Above (CF=1 | ZF=1)
188
NN_setnae
,
// Set Byte if Not Above or Equal (CF=1)
189
NN_setnb
,
// Set Byte if Not Below (CF=0)
190
NN_setnbe
,
// Set Byte if Not Below or Equal (CF=0 & ZF=0)
191
NN_setnc
,
// Set Byte if Not Carry (CF=0)
192
NN_setne
,
// Set Byte if Not Equal (ZF=0)
193
NN_setng
,
// Set Byte if Not Greater (ZF=1 | SF!=OF)
194
NN_setnge
,
// Set Byte if Not Greater or Equal (ZF=1)
195
NN_setnl
,
// Set Byte if Not Less (SF=OF)
196
NN_setnle
,
// Set Byte if Not Less or Equal (ZF=0 & SF=OF)
197
NN_setno
,
// Set Byte if Not Overflow (OF=0)
198
NN_setnp
,
// Set Byte if Not Parity (PF=0)
199
NN_setns
,
// Set Byte if Not Sign (SF=0)
200
NN_setnz
,
// Set Byte if Not Zero (ZF=0)
201
NN_seto
,
// Set Byte if Overflow (OF=1)
202
NN_setp
,
// Set Byte if Parity (PF=1)
203
NN_setpe
,
// Set Byte if Parity Even (PF=1)
204
NN_setpo
,
// Set Byte if Parity Odd (PF=0)
205
NN_sets
,
// Set Byte if Sign (SF=1)
206
NN_setz
,
// Set Byte if Zero (ZF=1)
207
NN_sgdt
,
// Store Global Descriptor Table Register
208
NN_sidt
,
// Store Interrupt Descriptor Table Register
209
NN_shld
,
// Double Precision Shift Left
210
NN_shrd
,
// Double Precision Shift Right
211
NN_sldt
,
// Store Local Descriptor Table Register
212
NN_smsw
,
// Store Machine Status Word
213
NN_stc
,
// Set Carry Flag
214
NN_std
,
// Set Direction Flag
215
NN_sti
,
// Set Interrupt Flag
216
NN_stos
,
// Store String
217
NN_str
,
// Store Task Register
218
NN_sub
,
// Integer Subtraction
219
NN_test
,
// Logical Compare
220
NN_verr
,
// Verify a Segment for Reading
221
NN_verw
,
// Verify a Segment for Writing
222
NN_wait
,
// Wait until BUSY# Pin is Inactive (HIGH)
223
NN_xchg
,
// Exchange Register/Memory with Register
224
NN_xlat
,
// Table Lookup Translation
225
NN_xor
,
// Logical Exclusive OR
226
//
227
// 486 instructions
228
//
229
NN_cmpxchg
,
// Compare and Exchange
230
NN_bswap
,
// Swap bits in EAX
231
NN_xadd
,
// t<-dest; dest<-src+dest; src<-t
232
NN_invd
,
// Invalidate Data Cache
233
NN_wbinvd
,
// Invalidate Data Cache (write changes)
234
NN_invlpg
,
// Invalidate TLB entry
235
//
236
// Pentium instructions
237
//
238
NN_rdmsr
,
// Read Machine Status Register
239
NN_wrmsr
,
// Write Machine Status Register
240
NN_cpuid
,
// Get CPU ID
241
NN_cmpxchg8b
,
// Compare and Exchange Eight Bytes
242
NN_rdtsc
,
// Read Time Stamp Counter
243
NN_rsm
,
// Resume from System Management Mode
244
//
245
// Pentium Pro instructions
246
//
247
NN_cmova
,
// Move if Above (CF=0 & ZF=0)
248
NN_cmovb
,
// Move if Below (CF=1)
249
NN_cmovbe
,
// Move if Below or Equal (CF=1 | ZF=1)
250
NN_cmovg
,
// Move if Greater (ZF=0 & SF=OF)
251
NN_cmovge
,
// Move if Greater or Equal (SF=OF)
252
NN_cmovl
,
// Move if Less (SF!=OF)
253
NN_cmovle
,
// Move if Less or Equal (ZF=1 | SF!=OF)
254
NN_cmovnb
,
// Move if Not Below (CF=0)
255
NN_cmovno
,
// Move if Not Overflow (OF=0)
256
NN_cmovnp
,
// Move if Not Parity (PF=0)
257
NN_cmovns
,
// Move if Not Sign (SF=0)
258
NN_cmovnz
,
// Move if Not Zero (ZF=0)
259
NN_cmovo
,
// Move if Overflow (OF=1)
260
NN_cmovp
,
// Move if Parity (PF=1)
261
NN_cmovs
,
// Move if Sign (SF=1)
262
NN_cmovz
,
// Move if Zero (ZF=1)
263
NN_fcmovb
,
// Floating Move if Below
264
NN_fcmove
,
// Floating Move if Equal
265
NN_fcmovbe
,
// Floating Move if Below or Equal
266
NN_fcmovu
,
// Floating Move if Unordered
267
NN_fcmovnb
,
// Floating Move if Not Below
268
NN_fcmovne
,
// Floating Move if Not Equal
269
NN_fcmovnbe
,
// Floating Move if Not Below or Equal
270
NN_fcmovnu
,
// Floating Move if Not Unordered
271
NN_fcomi
,
// FP Compare, result in EFLAGS
272
NN_fucomi
,
// FP Unordered Compare, result in EFLAGS
273
NN_fcomip
,
// FP Compare, result in EFLAGS, pop stack
274
NN_fucomip
,
// FP Unordered Compare, result in EFLAGS, pop stack
275
NN_rdpmc
,
// Read Performance Monitor Counter
276
//
277
// FPP instructuions
278
//
279
NN_fld
,
// Load Real
280
NN_fst
,
// Store Real
281
NN_fstp
,
// Store Real and Pop
282
NN_fxch
,
// Exchange Registers
283
NN_fild
,
// Load Integer
284
NN_fist
,
// Store Integer
285
NN_fistp
,
// Store Integer and Pop
286
NN_fbld
,
// Load BCD
287
NN_fbstp
,
// Store BCD and Pop
288
NN_fadd
,
// Add Real
289
NN_faddp
,
// Add Real and Pop
290
NN_fiadd
,
// Add Integer
291
NN_fsub
,
// Subtract Real
292
NN_fsubp
,
// Subtract Real and Pop
293
NN_fisub
,
// Subtract Integer
294
NN_fsubr
,
// Subtract Real Reversed
295
NN_fsubrp
,
// Subtract Real Reversed and Pop
296
NN_fisubr
,
// Subtract Integer Reversed
297
NN_fmul
,
// Multiply Real
298
NN_fmulp
,
// Multiply Real and Pop
299
NN_fimul
,
// Multiply Integer
300
NN_fdiv
,
// Divide Real
301
NN_fdivp
,
// Divide Real and Pop
302
NN_fidiv
,
// Divide Integer
303
NN_fdivr
,
// Divide Real Reversed
304
NN_fdivrp
,
// Divide Real Reversed and Pop
305
NN_fidivr
,
// Divide Integer Reversed
306
NN_fsqrt
,
// Square Root
307
NN_fscale
,
// Scale: st(0) <- st(0) * 2^st(1)
308
NN_fprem
,
// Partial Remainder
309
NN_frndint
,
// Round to Integer
310
NN_fxtract
,
// Extract exponent and significand
311
NN_fabs
,
// Absolute value
312
NN_fchs
,
// Change Sign
313
NN_fcom
,
// Compare Real
314
NN_fcomp
,
// Compare Real and Pop
315
NN_fcompp
,
// Compare Real and Pop Twice
316
NN_ficom
,
// Compare Integer
317
NN_ficomp
,
// Compare Integer and Pop
318
NN_ftst
,
// Test
319
NN_fxam
,
// Examine
320
NN_fptan
,
// Partial tangent
321
NN_fpatan
,
// Partial arctangent
322
NN_f2xm1
,
// 2^x - 1
323
NN_fyl2x
,
// Y * lg2(X)
324
NN_fyl2xp1
,
// Y * lg2(X+1)
325
NN_fldz
,
// Load +0.0
326
NN_fld1
,
// Load +1.0
327
NN_fldpi
,
// Load PI=3.14...
328
NN_fldl2t
,
// Load lg2(10)
329
NN_fldl2e
,
// Load lg2(e)
330
NN_fldlg2
,
// Load lg10(2)
331
NN_fldln2
,
// Load ln(2)
332
NN_finit
,
// Initialize Processor
333
NN_fninit
,
// Initialize Processor (no wait)
334
NN_fsetpm
,
// Set Protected Mode
335
NN_fldcw
,
// Load Control Word
336
NN_fstcw
,
// Store Control Word
337
NN_fnstcw
,
// Store Control Word (no wait)
338
NN_fstsw
,
// Store Status Word
339
NN_fnstsw
,
// Store Status Word (no wait)
340
NN_fclex
,
// Clear Exceptions
341
NN_fnclex
,
// Clear Exceptions (no wait)
342
NN_fstenv
,
// Store Environment
343
NN_fnstenv
,
// Store Environment (no wait)
344
NN_fldenv
,
// Load Environment
345
NN_fsave
,
// Save State
346
NN_fnsave
,
// Save State (no wait)
347
NN_frstor
,
// Restore State
348
NN_fincstp
,
// Increment Stack Pointer
349
NN_fdecstp
,
// Decrement Stack Pointer
350
NN_ffree
,
// Free Register
351
NN_fnop
,
// No Operation
352
NN_feni
,
// (8087 only)
353
NN_fneni
,
// (no wait) (8087 only)
354
NN_fdisi
,
// (8087 only)
355
NN_fndisi
,
// (no wait) (8087 only)
356
//
357
// 80387 instructions
358
//
359
NN_fprem1
,
// Partial Remainder ( < half )
360
NN_fsincos
,
// t<-cos(st); st<-sin(st); push t
361
NN_fsin
,
// Sine
362
NN_fcos
,
// Cosine
363
NN_fucom
,
// Compare Unordered Real
364
NN_fucomp
,
// Compare Unordered Real and Pop
365
NN_fucompp
,
// Compare Unordered Real and Pop Twice
366
//
367
// Instructions added 28.02.96
368
//
369
NN_setalc
,
// Set AL to Carry Flag
370
NN_svdc
,
// Save Register and Descriptor
371
NN_rsdc
,
// Restore Register and Descriptor
372
NN_svldt
,
// Save LDTR and Descriptor
373
NN_rsldt
,
// Restore LDTR and Descriptor
374
NN_svts
,
// Save TR and Descriptor
375
NN_rsts
,
// Restore TR and Descriptor
376
NN_icebp
,
// ICE Break Point
377
NN_loadall
,
// Load the entire CPU state from ES:EDI
378
//
379
// MMX instructions
380
//
381
NN_emms
,
// Empty MMX state
382
NN_movd
,
// Move 32 bits
383
NN_movq
,
// Move 64 bits
384
NN_packsswb
,
// Pack with Signed Saturation (Word->Byte)
385
NN_packssdw
,
// Pack with Signed Saturation (Dword->Word)
386
NN_packuswb
,
// Pack with Unsigned Saturation (Word->Byte)
387
NN_paddb
,
// Packed Add Byte
388
NN_paddw
,
// Packed Add Word
389
NN_paddd
,
// Packed Add Dword
390
NN_paddsb
,
// Packed Add with Saturation (Byte)
391
NN_paddsw
,
// Packed Add with Saturation (Word)
392
NN_paddusb
,
// Packed Add Unsigned with Saturation (Byte)
393
NN_paddusw
,
// Packed Add Unsigned with Saturation (Word)
394
NN_pand
,
// Bitwise Logical And
395
NN_pandn
,
// Bitwise Logical And Not
396
NN_pcmpeqb
,
// Packed Compare for Equal (Byte)
397
NN_pcmpeqw
,
// Packed Compare for Equal (Word)
398
NN_pcmpeqd
,
// Packed Compare for Equal (Dword)
399
NN_pcmpgtb
,
// Packed Compare for Greater Than (Byte)
400
NN_pcmpgtw
,
// Packed Compare for Greater Than (Word)
401
NN_pcmpgtd
,
// Packed Compare for Greater Than (Dword)
402
NN_pmaddwd
,
// Packed Multiply and Add
403
NN_pmulhw
,
// Packed Multiply High
404
NN_pmullw
,
// Packed Multiply Low
405
NN_por
,
// Bitwise Logical Or
406
NN_psllw
,
// Packed Shift Left Logical (Word)
407
NN_pslld
,
// Packed Shift Left Logical (Dword)
408
NN_psllq
,
// Packed Shift Left Logical (Qword)
409
NN_psraw
,
// Packed Shift Right Arithmetic (Word)
410
NN_psrad
,
// Packed Shift Right Arithmetic (Dword)
411
NN_psrlw
,
// Packed Shift Right Logical (Word)
412
NN_psrld
,
// Packed Shift Right Logical (Dword)
413
NN_psrlq
,
// Packed Shift Right Logical (Qword)
414
NN_psubb
,
// Packed Subtract Byte
415
NN_psubw
,
// Packed Subtract Word
416
NN_psubd
,
// Packed Subtract Dword
417
NN_psubsb
,
// Packed Subtract with Saturation (Byte)
418
NN_psubsw
,
// Packed Subtract with Saturation (Word)
419
NN_psubusb
,
// Packed Subtract Unsigned with Saturation (Byte)
420
NN_psubusw
,
// Packed Subtract Unsigned with Saturation (Word)
421
NN_punpckhbw
,
// Unpack High Packed Data (Byte->Word)
422
NN_punpckhwd
,
// Unpack High Packed Data (Word->Dword)
423
NN_punpckhdq
,
// Unpack High Packed Data (Dword->Qword)
424
NN_punpcklbw
,
// Unpack Low Packed Data (Byte->Word)
425
NN_punpcklwd
,
// Unpack Low Packed Data (Word->Dword)
426
NN_punpckldq
,
// Unpack Low Packed Data (Dword->Qword)
427
NN_pxor
,
// Bitwise Logical Exclusive Or
428
//
429
// Undocumented Deschutes processor instructions
430
//
431
NN_fxsave
,
// Fast save FP context
432
NN_fxrstor
,
// Fast restore FP context
433
// Pentium II instructions
434
NN_sysenter
,
// Fast Transition to System Call Entry Point
435
NN_sysexit
,
// Fast Transition from System Call Entry Point
436
// 3DNow! instructions
437
NN_pavgusb
,
// Packed 8-bit Unsigned Integer Averaging
438
NN_pfadd
,
// Packed Floating-Point Addition
439
NN_pfsub
,
// Packed Floating-Point Subtraction
440
NN_pfsubr
,
// Packed Floating-Point Reverse Subtraction
441
NN_pfacc
,
// Packed Floating-Point Accumulate
442
NN_pfcmpge
,
// Packed Floating-Point Comparison, Greater or Equal
443
NN_pfcmpgt
,
// Packed Floating-Point Comparison, Greater
444
NN_pfcmpeq
,
// Packed Floating-Point Comparison, Equal
445
NN_pfmin
,
// Packed Floating-Point Minimum
446
NN_pfmax
,
// Packed Floating-Point Maximum
447
NN_pi2fd
,
// Packed 32-bit Integer to Floating-Point
448
NN_pf2id
,
// Packed Floating-Point to 32-bit Integer
449
NN_pfrcp
,
// Packed Floating-Point Reciprocal Approximation
450
NN_pfrsqrt
,
// Packed Floating-Point Reciprocal Square Root Approximation
451
NN_pfmul
,
// Packed Floating-Point Multiplication
452
NN_pfrcpit1
,
// Packed Floating-Point Reciprocal First Iteration Step
453
NN_pfrsqit1
,
// Packed Floating-Point Reciprocal Square Root First Iteration Step
454
NN_pfrcpit2
,
// Packed Floating-Point Reciprocal Second Iteration Step
455
NN_pmulhrw
,
// Packed Floating-Point 16-bit Integer Multiply with rounding
456
NN_femms
,
// Faster entry/exit of the MMX or floating-point state
457
NN_prefetch
,
// Prefetch at least a 32-byte line into L1 data cache
458
NN_prefetchw
,
// Prefetch processor cache line into L1 data cache (mark as modified)
459
// Pentium III instructions
460
NN_addps
,
// Packed Single-FP Add
461
NN_addss
,
// Scalar Single-FP Add
462
NN_andnps
,
// Bitwise Logical And Not for Single-FP
463
NN_andps
,
// Bitwise Logical And for Single-FP
464
NN_cmpps
,
// Packed Single-FP Compare
465
NN_cmpss
,
// Scalar Single-FP Compare
466
NN_comiss
,
// Scalar Ordered Single-FP Compare and Set EFLAGS
467
NN_cvtpi2ps
,
// Packed signed INT32 to Packed Single-FP conversion
468
NN_cvtps2pi
,
// Packed Single-FP to Packed INT32 conversion
469
NN_cvtsi2ss
,
// Scalar signed INT32 to Single-FP conversion
470
NN_cvtss2si
,
// Scalar Single-FP to signed INT32 conversion
471
NN_cvttps2pi
,
// Packed Single-FP to Packed INT32 conversion (truncate)
472
NN_cvttss2si
,
// Scalar Single-FP to signed INT32 conversion (truncate)
473
NN_divps
,
// Packed Single-FP Divide
474
NN_divss
,
// Scalar Single-FP Divide
475
NN_ldmxcsr
,
// Load Streaming SIMD Extensions Technology Control/Status Register
476
NN_maxps
,
// Packed Single-FP Maximum
477
NN_maxss
,
// Scalar Single-FP Maximum
478
NN_minps
,
// Packed Single-FP Minimum
479
NN_minss
,
// Scalar Single-FP Minimum
480
NN_movaps
,
// Move Aligned Four Packed Single-FP
481
NN_movhlps
,
// Move High to Low Packed Single-FP
482
NN_movhps
,
// Move High Packed Single-FP
483
NN_movlhps
,
// Move Low to High Packed Single-FP
484
NN_movlps
,
// Move Low Packed Single-FP
485
NN_movmskps
,
// Move Mask to Register
486
NN_movss
,
// Move Scalar Single-FP
487
NN_movups
,
// Move Unaligned Four Packed Single-FP
488
NN_mulps
,
// Packed Single-FP Multiply
489
NN_mulss
,
// Scalar Single-FP Multiply
490
NN_orps
,
// Bitwise Logical OR for Single-FP Data
491
NN_rcpps
,
// Packed Single-FP Reciprocal
492
NN_rcpss
,
// Scalar Single-FP Reciprocal
493
NN_rsqrtps
,
// Packed Single-FP Square Root Reciprocal
494
NN_rsqrtss
,
// Scalar Single-FP Square Root Reciprocal
495
NN_shufps
,
// Shuffle Single-FP
496
NN_sqrtps
,
// Packed Single-FP Square Root
497
NN_sqrtss
,
// Scalar Single-FP Square Root
498
NN_stmxcsr
,
// Store Streaming SIMD Extensions Technology Control/Status Register
499
NN_subps
,
// Packed Single-FP Subtract
500
NN_subss
,
// Scalar Single-FP Subtract
501
NN_ucomiss
,
// Scalar Unordered Single-FP Compare and Set EFLAGS
502
NN_unpckhps
,
// Unpack High Packed Single-FP Data
503
NN_unpcklps
,
// Unpack Low Packed Single-FP Data
504
NN_xorps
,
// Bitwise Logical XOR for Single-FP Data
505
NN_pavgb
,
// Packed Average (Byte)
506
NN_pavgw
,
// Packed Average (Word)
507
NN_pextrw
,
// Extract Word
508
NN_pinsrw
,
// Insert Word
509
NN_pmaxsw
,
// Packed Signed Integer Word Maximum
510
NN_pmaxub
,
// Packed Unsigned Integer Byte Maximum
511
NN_pminsw
,
// Packed Signed Integer Word Minimum
512
NN_pminub
,
// Packed Unsigned Integer Byte Minimum
513
NN_pmovmskb
,
// Move Byte Mask to Integer
514
NN_pmulhuw
,
// Packed Multiply High Unsigned
515
NN_psadbw
,
// Packed Sum of Absolute Differences
516
NN_pshufw
,
// Packed Shuffle Word
517
NN_maskmovq
,
// Byte Mask write
518
NN_movntps
,
// Move Aligned Four Packed Single-FP Non Temporal
519
NN_movntq
,
// Move 64 Bits Non Temporal
520
NN_prefetcht0
,
// Prefetch to all cache levels
521
NN_prefetcht1
,
// Prefetch to all cache levels
522
NN_prefetcht2
,
// Prefetch to L2 cache
523
NN_prefetchnta
,
// Prefetch to L1 cache
524
NN_sfence
,
// Store Fence
525
// Pentium III Pseudo instructions
526
NN_cmpeqps
,
// Packed Single-FP Compare EQ
527
NN_cmpltps
,
// Packed Single-FP Compare LT
528
NN_cmpleps
,
// Packed Single-FP Compare LE
529
NN_cmpunordps
,
// Packed Single-FP Compare UNORD
530
NN_cmpneqps
,
// Packed Single-FP Compare NOT EQ
531
NN_cmpnltps
,
// Packed Single-FP Compare NOT LT
532
NN_cmpnleps
,
// Packed Single-FP Compare NOT LE
533
NN_cmpordps
,
// Packed Single-FP Compare ORDERED
534
NN_cmpeqss
,
// Scalar Single-FP Compare EQ
535
NN_cmpltss
,
// Scalar Single-FP Compare LT
536
NN_cmpless
,
// Scalar Single-FP Compare LE
537
NN_cmpunordss
,
// Scalar Single-FP Compare UNORD
538
NN_cmpneqss
,
// Scalar Single-FP Compare NOT EQ
539
NN_cmpnltss
,
// Scalar Single-FP Compare NOT LT
540
NN_cmpnless
,
// Scalar Single-FP Compare NOT LE
541
NN_cmpordss
,
// Scalar Single-FP Compare ORDERED
542
// AMD K7 instructions
543
NN_pf2iw
,
// Packed Floating-Point to Integer with Sign Extend
544
NN_pfnacc
,
// Packed Floating-Point Negative Accumulate
545
NN_pfpnacc
,
// Packed Floating-Point Mixed Positive-Negative Accumulate
546
NN_pi2fw
,
// Packed 16-bit Integer to Floating-Point
547
NN_pswapd
,
// Packed Swap Double Word
548
// Undocumented FP instructions (thanks to norbert.juffa@amd.com)
549
NN_fstp1
,
// Alias of Store Real and Pop
550
NN_fcom2
,
// Alias of Compare Real
551
NN_fcomp3
,
// Alias of Compare Real and Pop
552
NN_fxch4
,
// Alias of Exchange Registers
553
NN_fcomp5
,
// Alias of Compare Real and Pop
554
NN_ffreep
,
// Free Register and Pop
555
NN_fxch7
,
// Alias of Exchange Registers
556
NN_fstp8
,
// Alias of Store Real and Pop
557
NN_fstp9
,
// Alias of Store Real and Pop
558
// Pentium 4 instructions
559
NN_addpd
,
// Add Packed Double-Precision Floating-Point Values
560
NN_addsd
,
// Add Scalar Double-Precision Floating-Point Values
561
NN_andnpd
,
// Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values
562
NN_andpd
,
// Bitwise Logical AND of Packed Double-Precision Floating-Point Values
563
NN_clflush
,
// Flush Cache Line
564
NN_cmppd
,
// Compare Packed Double-Precision Floating-Point Values
565
NN_cmpsd
,
// Compare Scalar Double-Precision Floating-Point Values
566
NN_comisd
,
// Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
567
NN_cvtdq2pd
,
// Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values
568
NN_cvtdq2ps
,
// Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
569
NN_cvtpd2dq
,
// Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
570
NN_cvtpd2pi
,
// Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
571
NN_cvtpd2ps
,
// Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values
572
NN_cvtpi2pd
,
// Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
573
NN_cvtps2dq
,
// Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
574
NN_cvtps2pd
,
// Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values
575
NN_cvtsd2si
,
// Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer
576
NN_cvtsd2ss
,
// Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value
577
NN_cvtsi2sd
,
// Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value
578
NN_cvtss2sd
,
// Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value
579
NN_cvttpd2dq
,
// Convert With Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
580
NN_cvttpd2pi
,
// Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
581
NN_cvttps2dq
,
// Convert With Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
582
NN_cvttsd2si
,
// Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer
583
NN_divpd
,
// Divide Packed Double-Precision Floating-Point Values
584
NN_divsd
,
// Divide Scalar Double-Precision Floating-Point Values
585
NN_lfence
,
// Load Fence
586
NN_maskmovdqu
,
// Store Selected Bytes of Double Quadword
587
NN_maxpd
,
// Return Maximum Packed Double-Precision Floating-Point Values
588
NN_maxsd
,
// Return Maximum Scalar Double-Precision Floating-Point Value
589
NN_mfence
,
// Memory Fence
590
NN_minpd
,
// Return Minimum Packed Double-Precision Floating-Point Values
591
NN_minsd
,
// Return Minimum Scalar Double-Precision Floating-Point Value
592
NN_movapd
,
// Move Aligned Packed Double-Precision Floating-Point Values
593
NN_movdq2q
,
// Move Quadword from XMM to MMX Register
594
NN_movdqa
,
// Move Aligned Double Quadword
595
NN_movdqu
,
// Move Unaligned Double Quadword
596
NN_movhpd
,
// Move High Packed Double-Precision Floating-Point Values
597
NN_movlpd
,
// Move Low Packed Double-Precision Floating-Point Values
598
NN_movmskpd
,
// Extract Packed Double-Precision Floating-Point Sign Mask
599
NN_movntdq
,
// Store Double Quadword Using Non-Temporal Hint
600
NN_movnti
,
// Store Doubleword Using Non-Temporal Hint
601
NN_movntpd
,
// Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint
602
NN_movq2dq
,
// Move Quadword from MMX to XMM Register
603
NN_movsd
,
// Move Scalar Double-Precision Floating-Point Values
604
NN_movupd
,
// Move Unaligned Packed Double-Precision Floating-Point Values
605
NN_mulpd
,
// Multiply Packed Double-Precision Floating-Point Values
606
NN_mulsd
,
// Multiply Scalar Double-Precision Floating-Point Values
607
NN_orpd
,
// Bitwise Logical OR of Double-Precision Floating-Point Values
608
NN_paddq
,
// Add Packed Quadword Integers
609
NN_pause
,
// Spin Loop Hint
610
NN_pmuludq
,
// Multiply Packed Unsigned Doubleword Integers
611
NN_pshufd
,
// Shuffle Packed Doublewords
612
NN_pshufhw
,
// Shuffle Packed High Words
613
NN_pshuflw
,
// Shuffle Packed Low Words
614
NN_pslldq
,
// Shift Double Quadword Left Logical
615
NN_psrldq
,
// Shift Double Quadword Right Logical
616
NN_psubq
,
// Subtract Packed Quadword Integers
617
NN_punpckhqdq
,
// Unpack High Data
618
NN_punpcklqdq
,
// Unpack Low Data
619
NN_shufpd
,
// Shuffle Packed Double-Precision Floating-Point Values
620
NN_sqrtpd
,
// Compute Square Roots of Packed Double-Precision Floating-Point Values
621
NN_sqrtsd
,
// Compute Square Rootof Scalar Double-Precision Floating-Point Value
622
NN_subpd
,
// Subtract Packed Double-Precision Floating-Point Values
623
NN_subsd
,
// Subtract Scalar Double-Precision Floating-Point Values
624
NN_ucomisd
,
// Unordered Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
625
NN_unpckhpd
,
// Unpack and Interleave High Packed Double-Precision Floating-Point Values
626
NN_unpcklpd
,
// Unpack and Interleave Low Packed Double-Precision Floating-Point Values
627
NN_xorpd
,
// Bitwise Logical OR of Double-Precision Floating-Point Values
628
// AMD syscall/sysret instructions
629
NN_syscall
,
// Low latency system call
630
NN_sysret
,
// Return from system call
631
// AMD64 instructions
632
NN_swapgs
,
// Exchange GS base with KernelGSBase MSR
633
// New Pentium instructions (SSE3)
634
NN_movddup
,
// Move One Double-FP and Duplicate
635
NN_movshdup
,
// Move Packed Single-FP High and Duplicate
636
NN_movsldup
,
// Move Packed Single-FP Low and Duplicate
637
// Missing AMD64 instructions
638
NN_movsxd
,
// Move with Sign-Extend Doubleword
639
NN_cmpxchg16b
,
// Compare and Exchange 16 Bytes
640
// SSE3 instructions
641
NN_addsubpd
,
// Add /Sub packed DP FP numbers
642
NN_addsubps
,
// Add /Sub packed SP FP numbers
643
NN_haddpd
,
// Add horizontally packed DP FP numbers
644
NN_haddps
,
// Add horizontally packed SP FP numbers
645
NN_hsubpd
,
// Sub horizontally packed DP FP numbers
646
NN_hsubps
,
// Sub horizontally packed SP FP numbers
647
NN_monitor
,
// Set up a linear address range to be monitored by hardware
648
NN_mwait
,
// Wait until write-back store performed within the range specified by the MONITOR instruction
649
NN_fisttp
,
// Store ST in intXX (chop) and pop
650
NN_lddqu
,
// Load unaligned integer 128-bit
651
// SSSE3 instructions
652
NN_psignb
,
// Packed SIGN Byte
653
NN_psignw
,
// Packed SIGN Word
654
NN_psignd
,
// Packed SIGN Doubleword
655
NN_pshufb
,
// Packed Shuffle Bytes
656
NN_pmulhrsw
,
// Packed Multiply High with Round and Scale
657
NN_pmaddubsw
,
// Multiply and Add Packed Signed and Unsigned Bytes
658
NN_phsubsw
,
// Packed Horizontal Subtract and Saturate
659
NN_phaddsw
,
// Packed Horizontal Add and Saturate
660
NN_phaddw
,
// Packed Horizontal Add Word
661
NN_phaddd
,
// Packed Horizontal Add Doubleword
662
NN_phsubw
,
// Packed Horizontal Subtract Word
663
NN_phsubd
,
// Packed Horizontal Subtract Doubleword
664
NN_palignr
,
// Packed Align Right
665
NN_pabsb
,
// Packed Absolute Value Byte
666
NN_pabsw
,
// Packed Absolute Value Word
667
NN_pabsd
,
// Packed Absolute Value Doubleword
668
// VMX instructions
669
NN_vmcall
,
// Call to VM Monitor
670
NN_vmclear
,
// Clear Virtual Machine Control Structure
671
NN_vmlaunch
,
// Launch Virtual Machine
672
NN_vmresume
,
// Resume Virtual Machine
673
NN_vmptrld
,
// Load Pointer to Virtual Machine Control Structure
674
NN_vmptrst
,
// Store Pointer to Virtual Machine Control Structure
675
NN_vmread
,
// Read Field from Virtual Machine Control Structure
676
NN_vmwrite
,
// Write Field from Virtual Machine Control Structure
677
NN_vmxoff
,
// Leave VMX Operation
678
NN_vmxon
,
// Enter VMX Operation
679
// Undefined Instruction
680
NN_ud2
,
// Undefined Instruction
681
// Added with x86-64
682
NN_rdtscp
,
// Read Time-Stamp Counter and Processor ID
683
// Geode LX 3DNow! extensions
684
NN_pfrcpv
,
// Reciprocal Approximation for a Pair of 32-bit Floats
685
NN_pfrsqrtv
,
// Reciprocal Square Root Approximation for a Pair of 32-bit Floats
686
// SSE2 pseudoinstructions
687
NN_cmpeqpd
,
// Packed Double-FP Compare EQ
688
NN_cmpltpd
,
// Packed Double-FP Compare LT
689
NN_cmplepd
,
// Packed Double-FP Compare LE
690
NN_cmpunordpd
,
// Packed Double-FP Compare UNORD
691
NN_cmpneqpd
,
// Packed Double-FP Compare NOT EQ
692
NN_cmpnltpd
,
// Packed Double-FP Compare NOT LT
693
NN_cmpnlepd
,
// Packed Double-FP Compare NOT LE
694
NN_cmpordpd
,
// Packed Double-FP Compare ORDERED
695
NN_cmpeqsd
,
// Scalar Double-FP Compare EQ
696
NN_cmpltsd
,
// Scalar Double-FP Compare LT
697
NN_cmplesd
,
// Scalar Double-FP Compare LE
698
NN_cmpunordsd
,
// Scalar Double-FP Compare UNORD
699
NN_cmpneqsd
,
// Scalar Double-FP Compare NOT EQ
700
NN_cmpnltsd
,
// Scalar Double-FP Compare NOT LT
701
NN_cmpnlesd
,
// Scalar Double-FP Compare NOT LE
702
NN_cmpordsd
,
// Scalar Double-FP Compare ORDERED
703
// SSSE4.1 instructions
704
NN_blendpd
,
// Blend Packed Double Precision Floating-Point Values
705
NN_blendps
,
// Blend Packed Single Precision Floating-Point Values
706
NN_blendvpd
,
// Variable Blend Packed Double Precision Floating-Point Values
707
NN_blendvps
,
// Variable Blend Packed Single Precision Floating-Point Values
708
NN_dppd
,
// Dot Product of Packed Double Precision Floating-Point Values
709
NN_dpps
,
// Dot Product of Packed Single Precision Floating-Point Values
710
NN_extractps
,
// Extract Packed Single Precision Floating-Point Value
711
NN_insertps
,
// Insert Packed Single Precision Floating-Point Value
712
NN_movntdqa
,
// Load Double Quadword Non-Temporal Aligned Hint
713
NN_mpsadbw
,
// Compute Multiple Packed Sums of Absolute Difference
714
NN_packusdw
,
// Pack with Unsigned Saturation
715
NN_pblendvb
,
// Variable Blend Packed Bytes
716
NN_pblendw
,
// Blend Packed Words
717
NN_pcmpeqq
,
// Compare Packed Qword Data for Equal
718
NN_pextrb
,
// Extract Byte
719
NN_pextrd
,
// Extract Dword
720
NN_pextrq
,
// Extract Qword
721
NN_phminposuw
,
// Packed Horizontal Word Minimum
722
NN_pinsrb
,
// Insert Byte
723
NN_pinsrd
,
// Insert Dword
724
NN_pinsrq
,
// Insert Qword
725
NN_pmaxsb
,
// Maximum of Packed Signed Byte Integers
726
NN_pmaxsd
,
// Maximum of Packed Signed Dword Integers
727
NN_pmaxud
,
// Maximum of Packed Unsigned Dword Integers
728
NN_pmaxuw
,
// Maximum of Packed Word Integers
729
NN_pminsb
,
// Minimum of Packed Signed Byte Integers
730
NN_pminsd
,
// Minimum of Packed Signed Dword Integers
731
NN_pminud
,
// Minimum of Packed Unsigned Dword Integers
732
NN_pminuw
,
// Minimum of Packed Word Integers
733
NN_pmovsxbw
,
// Packed Move with Sign Extend
734
NN_pmovsxbd
,
// Packed Move with Sign Extend
735
NN_pmovsxbq
,
// Packed Move with Sign Extend
736
NN_pmovsxwd
,
// Packed Move with Sign Extend
737
NN_pmovsxwq
,
// Packed Move with Sign Extend
738
NN_pmovsxdq
,
// Packed Move with Sign Extend
739
NN_pmovzxbw
,
// Packed Move with Zero Extend
740
NN_pmovzxbd
,
// Packed Move with Zero Extend
741
NN_pmovzxbq
,
// Packed Move with Zero Extend
742
NN_pmovzxwd
,
// Packed Move with Zero Extend
743
NN_pmovzxwq
,
// Packed Move with Zero Extend
744
NN_pmovzxdq
,
// Packed Move with Zero Extend
745
NN_pmuldq
,
// Multiply Packed Signed Dword Integers
746
NN_pmulld
,
// Multiply Packed Signed Dword Integers and Store Low Result
747
NN_ptest
,
// Logical Compare
748
NN_roundpd
,
// Round Packed Double Precision Floating-Point Values
749
NN_roundps
,
// Round Packed Single Precision Floating-Point Values
750
NN_roundsd
,
// Round Scalar Double Precision Floating-Point Values
751
NN_roundss
,
// Round Scalar Single Precision Floating-Point Values
752
// SSSE4.2 instructions
753
NN_crc32
,
// Accumulate CRC32 Value
754
NN_pcmpestri
,
// Packed Compare Explicit Length Strings, Return Index
755
NN_pcmpestrm
,
// Packed Compare Explicit Length Strings, Return Mask
756
NN_pcmpistri
,
// Packed Compare Implicit Length Strings, Return Index
757
NN_pcmpistrm
,
// Packed Compare Implicit Length Strings, Return Mask
758
NN_pcmpgtq
,
// Compare Packed Data for Greater Than
759
NN_popcnt
,
// Return the Count of Number of Bits Set to 1
760
// AMD SSE4a instructions
761
NN_extrq
,
// Extract Field From Register
762
NN_insertq
,
// Insert Field
763
NN_movntsd
,
// Move Non-Temporal Scalar Double-Precision Floating-Point
764
NN_movntss
,
// Move Non-Temporal Scalar Single-Precision Floating-Point
765
NN_lzcnt
,
// Leading Zero Count
766
// xsave/xrstor instructions
767
NN_xgetbv
,
// Get Value of Extended Control Register
768
NN_xrstor
,
// Restore Processor Extended States
769
NN_xsave
,
// Save Processor Extended States
770
NN_xsetbv
,
// Set Value of Extended Control Register
771
// Intel Safer Mode Extensions (SMX)
772
NN_getsec
,
// Safer Mode Extensions (SMX) Instruction
773
// AMD-V Virtualization ISA Extension
774
NN_clgi
,
// Clear Global Interrupt Flag
775
NN_invlpga
,
// Invalidate TLB Entry in a Specified ASID
776
NN_skinit
,
// Secure Init and Jump with Attestation
777
NN_stgi
,
// Set Global Interrupt Flag
778
NN_vmexit
,
// Stop Executing Guest, Begin Executing Host
779
NN_vmload
,
// Load State from VMCB
780
NN_vmmcall
,
// Call VMM
781
NN_vmrun
,
// Run Virtual Machine
782
NN_vmsave
,
// Save State to VMCB
783
// VMX+ instructions
784
NN_invept
,
// Invalidate Translations Derived from EPT
785
NN_invvpid
,
// Invalidate Translations Based on VPID
786
// Intel Atom instructions
787
NN_movbe
,
// Move Data After Swapping Bytes
788
// Intel AES instructions
789
NN_aesenc
,
// Perform One Round of an AES Encryption Flow
790
NN_aesenclast
,
// Perform the Last Round of an AES Encryption Flow
791
NN_aesdec
,
// Perform One Round of an AES Decryption Flow
792
NN_aesdeclast
,
// Perform the Last Round of an AES Decryption Flow
793
NN_aesimc
,
// Perform the AES InvMixColumn Transformation
794
NN_aeskeygenassist
,
// AES Round Key Generation Assist
795
// Carryless multiplication
796
NN_pclmulqdq
,
// Carry-Less Multiplication Quadword
797
// Returns modifies by operand size prefixes
798
NN_retnw
,
// Return Near from Procedure (use16)
799
NN_retnd
,
// Return Near from Procedure (use32)
800
NN_retnq
,
// Return Near from Procedure (use64)
801
NN_retfw
,
// Return Far from Procedure (use16)
802
NN_retfd
,
// Return Far from Procedure (use32)
803
NN_retfq
,
// Return Far from Procedure (use64)
804
// RDRAND support
805
NN_rdrand
,
// Read Random Number
806
// new GPR instructions
807
NN_adcx
,
// Unsigned Integer Addition of Two Operands with Carry Flag
808
NN_adox
,
// Unsigned Integer Addition of Two Operands with Overflow Flag
809
NN_andn
,
// Logical AND NOT
810
NN_bextr
,
// Bit Field Extract
811
NN_blsi
,
// Extract Lowest Set Isolated Bit
812
NN_blsmsk
,
// Get Mask Up to Lowest Set Bit
813
NN_blsr
,
// Reset Lowest Set Bit
814
NN_bzhi
,
// Zero High Bits Starting with Specified Bit Position
815
NN_clac
,
// Clear AC Flag in EFLAGS Register
816
NN_mulx
,
// Unsigned Multiply Without Affecting Flags
817
NN_pdep
,
// Parallel Bits Deposit
818
NN_pext
,
// Parallel Bits Extract
819
NN_rorx
,
// Rotate Right Logical Without Affecting Flags
820
NN_sarx
,
// Shift Arithmetically Right Without Affecting Flags
821
NN_shlx
,
// Shift Logically Left Without Affecting Flags
822
NN_shrx
,
// Shift Logically Right Without Affecting Flags
823
NN_stac
,
// Set AC Flag in EFLAGS Register
824
NN_tzcnt
,
// Count the Number of Trailing Zero Bits
825
NN_xsaveopt
,
// Save Processor Extended States Optimized
826
NN_invpcid
,
// Invalidate Processor Context ID
827
NN_rdseed
,
// Read Random Seed
828
NN_rdfsbase
,
// Read FS Segment Base
829
NN_rdgsbase
,
// Read GS Segment Base
830
NN_wrfsbase
,
// Write FS Segment Base
831
NN_wrgsbase
,
// Write GS Segment Base
832
// new AVX instructions
833
NN_vaddpd
,
// Add Packed Double-Precision Floating-Point Values
834
NN_vaddps
,
// Packed Single-FP Add
835
NN_vaddsd
,
// Add Scalar Double-Precision Floating-Point Values
836
NN_vaddss
,
// Scalar Single-FP Add
837
NN_vaddsubpd
,
// Add /Sub packed DP FP numbers
838
NN_vaddsubps
,
// Add /Sub packed SP FP numbers
839
NN_vaesdec
,
// Perform One Round of an AES Decryption Flow
840
NN_vaesdeclast
,
// Perform the Last Round of an AES Decryption Flow
841
NN_vaesenc
,
// Perform One Round of an AES Encryption Flow
842
NN_vaesenclast
,
// Perform the Last Round of an AES Encryption Flow
843
NN_vaesimc
,
// Perform the AES InvMixColumn Transformation
844
NN_vaeskeygenassist
,
// AES Round Key Generation Assist
845
NN_vandnpd
,
// Bitwise Logical AND NOT of Packed Double-Precision Floating-Point Values
846
NN_vandnps
,
// Bitwise Logical And Not for Single-FP
847
NN_vandpd
,
// Bitwise Logical AND of Packed Double-Precision Floating-Point Values
848
NN_vandps
,
// Bitwise Logical And for Single-FP
849
NN_vblendpd
,
// Blend Packed Double Precision Floating-Point Values
850
NN_vblendps
,
// Blend Packed Single Precision Floating-Point Values
851
NN_vblendvpd
,
// Variable Blend Packed Double Precision Floating-Point Values
852
NN_vblendvps
,
// Variable Blend Packed Single Precision Floating-Point Values
853
NN_vbroadcastf128
,
// Broadcast 128 Bits of Floating-Point Data
854
NN_vbroadcasti128
,
// Broadcast 128 Bits of Integer Data
855
NN_vbroadcastsd
,
// Broadcast Double-Precision Floating-Point Element
856
NN_vbroadcastss
,
// Broadcast Single-Precision Floating-Point Element
857
NN_vcmppd
,
// Compare Packed Double-Precision Floating-Point Values
858
NN_vcmpps
,
// Packed Single-FP Compare
859
NN_vcmpsd
,
// Compare Scalar Double-Precision Floating-Point Values
860
NN_vcmpss
,
// Scalar Single-FP Compare
861
NN_vcomisd
,
// Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
862
NN_vcomiss
,
// Scalar Ordered Single-FP Compare and Set EFLAGS
863
NN_vcvtdq2pd
,
// Convert Packed Doubleword Integers to Packed Single-Precision Floating-Point Values
864
NN_vcvtdq2ps
,
// Convert Packed Doubleword Integers to Packed Double-Precision Floating-Point Values
865
NN_vcvtpd2dq
,
// Convert Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
866
NN_vcvtpd2ps
,
// Convert Packed Double-Precision Floating-Point Values to Packed Single-Precision Floating-Point Values
867
NN_vcvtph2ps
,
// Convert 16-bit FP Values to Single-Precision FP Values
868
NN_vcvtps2dq
,
// Convert Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
869
NN_vcvtps2pd
,
// Convert Packed Single-Precision Floating-Point Values to Packed Double-Precision Floating-Point Values
870
NN_vcvtps2ph
,
// Convert Single-Precision FP value to 16-bit FP value
871
NN_vcvtsd2si
,
// Convert Scalar Double-Precision Floating-Point Value to Doubleword Integer
872
NN_vcvtsd2ss
,
// Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value
873
NN_vcvtsi2sd
,
// Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value
874
NN_vcvtsi2ss
,
// Scalar signed INT32 to Single-FP conversion
875
NN_vcvtss2sd
,
// Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value
876
NN_vcvtss2si
,
// Scalar Single-FP to signed INT32 conversion
877
NN_vcvttpd2dq
,
// Convert With Truncation Packed Double-Precision Floating-Point Values to Packed Doubleword Integers
878
NN_vcvttps2dq
,
// Convert With Truncation Packed Single-Precision Floating-Point Values to Packed Doubleword Integers
879
NN_vcvttsd2si
,
// Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer
880
NN_vcvttss2si
,
// Scalar Single-FP to signed INT32 conversion (truncate)
881
NN_vdivpd
,
// Divide Packed Double-Precision Floating-Point Values
882
NN_vdivps
,
// Packed Single-FP Divide
883
NN_vdivsd
,
// Divide Scalar Double-Precision Floating-Point Values
884
NN_vdivss
,
// Scalar Single-FP Divide
885
NN_vdppd
,
// Dot Product of Packed Double Precision Floating-Point Values
886
NN_vdpps
,
// Dot Product of Packed Single Precision Floating-Point Values
887
NN_vextractf128
,
// Extract Packed Floating-Point Values
888
NN_vextracti128
,
// Extract Packed Integer Values
889
NN_vextractps
,
// Extract Packed Floating-Point Values
890
NN_vfmadd132pd
,
// Fused Multiply-Add of Packed Double-Precision Floating-Point Values
891
NN_vfmadd132ps
,
// Fused Multiply-Add of Packed Single-Precision Floating-Point Values
892
NN_vfmadd132sd
,
// Fused Multiply-Add of Scalar Double-Precision Floating-Point Values
893
NN_vfmadd132ss
,
// Fused Multiply-Add of Scalar Single-Precision Floating-Point Values
894
NN_vfmadd213pd
,
// Fused Multiply-Add of Packed Double-Precision Floating-Point Values
895
NN_vfmadd213ps
,
// Fused Multiply-Add of Packed Single-Precision Floating-Point Values
896
NN_vfmadd213sd
,
// Fused Multiply-Add of Scalar Double-Precision Floating-Point Values
897
NN_vfmadd213ss
,
// Fused Multiply-Add of Scalar Single-Precision Floating-Point Values
898
NN_vfmadd231pd
,
// Fused Multiply-Add of Packed Double-Precision Floating-Point Values
899
NN_vfmadd231ps
,
// Fused Multiply-Add of Packed Single-Precision Floating-Point Values
900
NN_vfmadd231sd
,
// Fused Multiply-Add of Scalar Double-Precision Floating-Point Values
901
NN_vfmadd231ss
,
// Fused Multiply-Add of Scalar Single-Precision Floating-Point Values
902
NN_vfmaddsub132pd
,
// Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values
903
NN_vfmaddsub132ps
,
// Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values
904
NN_vfmaddsub213pd
,
// Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values
905
NN_vfmaddsub213ps
,
// Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values
906
NN_vfmaddsub231pd
,
// Fused Multiply-Alternating Add/Subtract of Packed Double-Precision Floating-Point Values
907
NN_vfmaddsub231ps
,
// Fused Multiply-Alternating Add/Subtract of Packed Single-Precision Floating-Point Values
908
NN_vfmsub132pd
,
// Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values
909
NN_vfmsub132ps
,
// Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values
910
NN_vfmsub132sd
,
// Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values
911
NN_vfmsub132ss
,
// Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values
912
NN_vfmsub213pd
,
// Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values
913
NN_vfmsub213ps
,
// Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values
914
NN_vfmsub213sd
,
// Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values
915
NN_vfmsub213ss
,
// Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values
916
NN_vfmsub231pd
,
// Fused Multiply-Subtract of Packed Double-Precision Floating-Point Values
917
NN_vfmsub231ps
,
// Fused Multiply-Subtract of Packed Single-Precision Floating-Point Values
918
NN_vfmsub231sd
,
// Fused Multiply-Subtract of Scalar Double-Precision Floating-Point Values
919
NN_vfmsub231ss
,
// Fused Multiply-Subtract of Scalar Single-Precision Floating-Point Values
920
NN_vfmsubadd132pd
,
// Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values
921
NN_vfmsubadd132ps
,
// Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values
922
NN_vfmsubadd213pd
,
// Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values
923
NN_vfmsubadd213ps
,
// Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values
924
NN_vfmsubadd231pd
,
// Fused Multiply-Alternating Subtract/Add of Packed Double-Precision Floating-Point Values
925
NN_vfmsubadd231ps
,
// Fused Multiply-Alternating Subtract/Add of Packed Single-Precision Floating-Point Values
926
NN_vfnmadd132pd
,
// Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values
927
NN_vfnmadd132ps
,
// Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values
928
NN_vfnmadd132sd
,
// Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values
929
NN_vfnmadd132ss
,
// Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values
930
NN_vfnmadd213pd
,
// Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values
931
NN_vfnmadd213ps
,
// Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values
932
NN_vfnmadd213sd
,
// Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values
933
NN_vfnmadd213ss
,
// Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values
934
NN_vfnmadd231pd
,
// Fused Negative Multiply-Add of Packed Double-Precision Floating-Point Values
935
NN_vfnmadd231ps
,
// Fused Negative Multiply-Add of Packed Single-Precision Floating-Point Values
936
NN_vfnmadd231sd
,
// Fused Negative Multiply-Add of Scalar Double-Precision Floating-Point Values
937
NN_vfnmadd231ss
,
// Fused Negative Multiply-Add of Scalar Single-Precision Floating-Point Values
938
NN_vfnmsub132pd
,
// Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values
939
NN_vfnmsub132ps
,
// Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values
940
NN_vfnmsub132sd
,
// Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values
941
NN_vfnmsub132ss
,
// Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values
942
NN_vfnmsub213pd
,
// Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values
943
NN_vfnmsub213ps
,
// Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values
944
NN_vfnmsub213sd
,
// Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values
945
NN_vfnmsub213ss
,
// Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values
946
NN_vfnmsub231pd
,
// Fused Negative Multiply-Subtract of Packed Double-Precision Floating-Point Values
947
NN_vfnmsub231ps
,
// Fused Negative Multiply-Subtract of Packed Single-Precision Floating-Point Values
948
NN_vfnmsub231sd
,
// Fused Negative Multiply-Subtract of Scalar Double-Precision Floating-Point Values
949
NN_vfnmsub231ss
,
// Fused Negative Multiply-Subtract of Scalar Single-Precision Floating-Point Values
950
NN_vgatherdps
,
// Gather Packed SP FP Values Using Signed Dword Indices
951
NN_vgatherdpd
,
// Gather Packed DP FP Values Using Signed Dword Indices
952
NN_vgatherqps
,
// Gather Packed SP FP Values Using Signed Qword Indices
953
NN_vgatherqpd
,
// Gather Packed DP FP Values Using Signed Qword Indices
954
NN_vhaddpd
,
// Add horizontally packed DP FP numbers
955
NN_vhaddps
,
// Add horizontally packed SP FP numbers
956
NN_vhsubpd
,
// Sub horizontally packed DP FP numbers
957
NN_vhsubps
,
// Sub horizontally packed SP FP numbers
958
NN_vinsertf128
,
// Insert Packed Floating-Point Values
959
NN_vinserti128
,
// Insert Packed Integer Values
960
NN_vinsertps
,
// Insert Packed Single Precision Floating-Point Value
961
NN_vlddqu
,
// Load Unaligned Packed Integer Values
962
NN_vldmxcsr
,
// Load Streaming SIMD Extensions Technology Control/Status Register
963
NN_vmaskmovdqu
,
// Store Selected Bytes of Double Quadword with NT Hint
964
NN_vmaskmovpd
,
// Conditionally Load Packed Double-Precision Floating-Point Values
965
NN_vmaskmovps
,
// Conditionally Load Packed Single-Precision Floating-Point Values
966
NN_vmaxpd
,
// Return Maximum Packed Double-Precision Floating-Point Values
967
NN_vmaxps
,
// Packed Single-FP Maximum
968
NN_vmaxsd
,
// Return Maximum Scalar Double-Precision Floating-Point Value
969
NN_vmaxss
,
// Scalar Single-FP Maximum
970
NN_vminpd
,
// Return Minimum Packed Double-Precision Floating-Point Values
971
NN_vminps
,
// Packed Single-FP Minimum
972
NN_vminsd
,
// Return Minimum Scalar Double-Precision Floating-Point Value
973
NN_vminss
,
// Scalar Single-FP Minimum
974
NN_vmovapd
,
// Move Aligned Packed Double-Precision Floating-Point Values
975
NN_vmovaps
,
// Move Aligned Four Packed Single-FP
976
NN_vmovd
,
// Move 32 bits
977
NN_vmovddup
,
// Move One Double-FP and Duplicate
978
NN_vmovdqa
,
// Move Aligned Double Quadword
979
NN_vmovdqu
,
// Move Unaligned Double Quadword
980
NN_vmovhlps
,
// Move High to Low Packed Single-FP
981
NN_vmovhpd
,
// Move High Packed Double-Precision Floating-Point Values
982
NN_vmovhps
,
// Move High Packed Single-FP
983
NN_vmovlhps
,
// Move Low to High Packed Single-FP
984
NN_vmovlpd
,
// Move Low Packed Double-Precision Floating-Point Values
985
NN_vmovlps
,
// Move Low Packed Single-FP
986
NN_vmovmskpd
,
// Extract Packed Double-Precision Floating-Point Sign Mask
987
NN_vmovmskps
,
// Move Mask to Register
988
NN_vmovntdq
,
// Store Double Quadword Using Non-Temporal Hint
989
NN_vmovntdqa
,
// Load Double Quadword Non-Temporal Aligned Hint
990
NN_vmovntpd
,
// Store Packed Double-Precision Floating-Point Values Using Non-Temporal Hint
991
NN_vmovntps
,
// Move Aligned Four Packed Single-FP Non Temporal
992
NN_vmovq
,
// Move 64 bits
993
NN_vmovsd
,
// Move Scalar Double-Precision Floating-Point Values
994
NN_vmovshdup
,
// Move Packed Single-FP High and Duplicate
995
NN_vmovsldup
,
// Move Packed Single-FP Low and Duplicate
996
NN_vmovss
,
// Move Scalar Single-FP
997
NN_vmovupd
,
// Move Unaligned Packed Double-Precision Floating-Point Values
998
NN_vmovups
,
// Move Unaligned Four Packed Single-FP
999
NN_vmpsadbw
,
// Compute Multiple Packed Sums of Absolute Difference
1000
NN_vmulpd
,
// Multiply Packed Double-Precision Floating-Point Values
1001
NN_vmulps
,
// Packed Single-FP Multiply
1002
NN_vmulsd
,
// Multiply Scalar Double-Precision Floating-Point Values
1003
NN_vmulss
,
// Scalar Single-FP Multiply
1004
NN_vorpd
,
// Bitwise Logical OR of Double-Precision Floating-Point Values
1005
NN_vorps
,
// Bitwise Logical OR for Single-FP Data
1006
NN_vpabsb
,
// Packed Absolute Value Byte
1007
NN_vpabsd
,
// Packed Absolute Value Doubleword
1008
NN_vpabsw
,
// Packed Absolute Value Word
1009
NN_vpackssdw
,
// Pack with Signed Saturation (Dword->Word)
1010
NN_vpacksswb
,
// Pack with Signed Saturation (Word->Byte)
1011
NN_vpackusdw
,
// Pack with Unsigned Saturation
1012
NN_vpackuswb
,
// Pack with Unsigned Saturation (Word->Byte)
1013
NN_vpaddb
,
// Packed Add Byte
1014
NN_vpaddd
,
// Packed Add Dword
1015
NN_vpaddq
,
// Add Packed Quadword Integers
1016
NN_vpaddsb
,
// Packed Add with Saturation (Byte)
1017
NN_vpaddsw
,
// Packed Add with Saturation (Word)
1018
NN_vpaddusb
,
// Packed Add Unsigned with Saturation (Byte)
1019
NN_vpaddusw
,
// Packed Add Unsigned with Saturation (Word)
1020
NN_vpaddw
,
// Packed Add Word
1021
NN_vpalignr
,
// Packed Align Right
1022
NN_vpand
,
// Bitwise Logical And
1023
NN_vpandn
,
// Bitwise Logical And Not
1024
NN_vpavgb
,
// Packed Average (Byte)
1025
NN_vpavgw
,
// Packed Average (Word)
1026
NN_vpblendd
,
// Blend Packed Dwords
1027
NN_vpblendvb
,
// Variable Blend Packed Bytes
1028
NN_vpblendw
,
// Blend Packed Words
1029
NN_vpbroadcastb
,
// Broadcast a Byte Integer
1030
NN_vpbroadcastd
,
// Broadcast a Dword Integer
1031
NN_vpbroadcastq
,
// Broadcast a Qword Integer
1032
NN_vpbroadcastw
,
// Broadcast a Word Integer
1033
NN_vpclmulqdq
,
// Carry-Less Multiplication Quadword
1034
NN_vpcmpeqb
,
// Packed Compare for Equal (Byte)
1035
NN_vpcmpeqd
,
// Packed Compare for Equal (Dword)
1036
NN_vpcmpeqq
,
// Compare Packed Qword Data for Equal
1037
NN_vpcmpeqw
,
// Packed Compare for Equal (Word)
1038
NN_vpcmpestri
,
// Packed Compare Explicit Length Strings, Return Index
1039
NN_vpcmpestrm
,
// Packed Compare Explicit Length Strings, Return Mask
1040
NN_vpcmpgtb
,
// Packed Compare for Greater Than (Byte)
1041
NN_vpcmpgtd
,
// Packed Compare for Greater Than (Dword)
1042
NN_vpcmpgtq
,
// Compare Packed Data for Greater Than
1043
NN_vpcmpgtw
,
// Packed Compare for Greater Than (Word)
1044
NN_vpcmpistri
,
// Packed Compare Implicit Length Strings, Return Index
1045
NN_vpcmpistrm
,
// Packed Compare Implicit Length Strings, Return Mask
1046
NN_vperm2f128
,
// Permute Floating-Point Values
1047
NN_vperm2i128
,
// Permute Integer Values
1048
NN_vpermd
,
// Full Doublewords Element Permutation
1049
NN_vpermilpd
,
// Permute Double-Precision Floating-Point Values
1050
NN_vpermilps
,
// Permute Single-Precision Floating-Point Values
1051
NN_vpermpd
,
// Permute Double-Precision Floating-Point Elements
1052
NN_vpermps
,
// Permute Single-Precision Floating-Point Elements
1053
NN_vpermq
,
// Qwords Element Permutation
1054
NN_vpextrb
,
// Extract Byte
1055
NN_vpextrd
,
// Extract Dword
1056
NN_vpextrq
,
// Extract Qword
1057
NN_vpextrw
,
// Extract Word
1058
NN_vpgatherdd
,
// Gather Packed Dword Values Using Signed Dword Indices
1059
NN_vpgatherdq
,
// Gather Packed Qword Values Using Signed Dword Indices
1060
NN_vpgatherqd
,
// Gather Packed Dword Values Using Signed Qword Indices
1061
NN_vpgatherqq
,
// Gather Packed Qword Values Using Signed Qword Indices
1062
NN_vphaddd
,
// Packed Horizontal Add Doubleword
1063
NN_vphaddsw
,
// Packed Horizontal Add and Saturate
1064
NN_vphaddw
,
// Packed Horizontal Add Word
1065
NN_vphminposuw
,
// Packed Horizontal Word Minimum
1066
NN_vphsubd
,
// Packed Horizontal Subtract Doubleword
1067
NN_vphsubsw
,
// Packed Horizontal Subtract and Saturate
1068
NN_vphsubw
,
// Packed Horizontal Subtract Word
1069
NN_vpinsrb
,
// Insert Byte
1070
NN_vpinsrd
,
// Insert Dword
1071
NN_vpinsrq
,
// Insert Qword
1072
NN_vpinsrw
,
// Insert Word
1073
NN_vpmaddubsw
,
// Multiply and Add Packed Signed and Unsigned Bytes
1074
NN_vpmaddwd
,
// Packed Multiply and Add
1075
NN_vpmaskmovd
,
// Conditionally Store Dword Values Using Mask
1076
NN_vpmaskmovq
,
// Conditionally Store Qword Values Using Mask
1077
NN_vpmaxsb
,
// Maximum of Packed Signed Byte Integers
1078
NN_vpmaxsd
,
// Maximum of Packed Signed Dword Integers
1079
NN_vpmaxsw
,
// Packed Signed Integer Word Maximum
1080
NN_vpmaxub
,
// Packed Unsigned Integer Byte Maximum
1081
NN_vpmaxud
,
// Maximum of Packed Unsigned Dword Integers
1082
NN_vpmaxuw
,
// Maximum of Packed Word Integers
1083
NN_vpminsb
,
// Minimum of Packed Signed Byte Integers
1084
NN_vpminsd
,
// Minimum of Packed Signed Dword Integers
1085
NN_vpminsw
,
// Packed Signed Integer Word Minimum
1086
NN_vpminub
,
// Packed Unsigned Integer Byte Minimum
1087
NN_vpminud
,
// Minimum of Packed Unsigned Dword Integers
1088
NN_vpminuw
,
// Minimum of Packed Word Integers
1089
NN_vpmovmskb
,
// Move Byte Mask to Integer
1090
NN_vpmovsxbd
,
// Packed Move with Sign Extend
1091
NN_vpmovsxbq
,
// Packed Move with Sign Extend
1092
NN_vpmovsxbw
,
// Packed Move with Sign Extend
1093
NN_vpmovsxdq
,
// Packed Move with Sign Extend
1094
NN_vpmovsxwd
,
// Packed Move with Sign Extend
1095
NN_vpmovsxwq
,
// Packed Move with Sign Extend
1096
NN_vpmovzxbd
,
// Packed Move with Zero Extend
1097
NN_vpmovzxbq
,
// Packed Move with Zero Extend
1098
NN_vpmovzxbw
,
// Packed Move with Zero Extend
1099
NN_vpmovzxdq
,
// Packed Move with Zero Extend
1100
NN_vpmovzxwd
,
// Packed Move with Zero Extend
1101
NN_vpmovzxwq
,
// Packed Move with Zero Extend
1102
NN_vpmuldq
,
// Multiply Packed Signed Dword Integers
1103
NN_vpmulhrsw
,
// Packed Multiply High with Round and Scale
1104
NN_vpmulhuw
,
// Packed Multiply High Unsigned
1105
NN_vpmulhw
,
// Packed Multiply High
1106
NN_vpmulld
,
// Multiply Packed Signed Dword Integers and Store Low Result
1107
NN_vpmullw
,
// Packed Multiply Low
1108
NN_vpmuludq
,
// Multiply Packed Unsigned Doubleword Integers
1109
NN_vpor
,
// Bitwise Logical Or
1110
NN_vpsadbw
,
// Packed Sum of Absolute Differences
1111
NN_vpshufb
,
// Packed Shuffle Bytes
1112
NN_vpshufd
,
// Shuffle Packed Doublewords
1113
NN_vpshufhw
,
// Shuffle Packed High Words
1114
NN_vpshuflw
,
// Shuffle Packed Low Words
1115
NN_vpsignb
,
// Packed SIGN Byte
1116
NN_vpsignd
,
// Packed SIGN Doubleword
1117
NN_vpsignw
,
// Packed SIGN Word
1118
NN_vpslld
,
// Packed Shift Left Logical (Dword)
1119
NN_vpslldq
,
// Shift Double Quadword Left Logical
1120
NN_vpsllq
,
// Packed Shift Left Logical (Qword)
1121
NN_vpsllvd
,
// Variable Bit Shift Left Logical (Dword)
1122
NN_vpsllvq
,
// Variable Bit Shift Left Logical (Qword)
1123
NN_vpsllw
,
// Packed Shift Left Logical (Word)
1124
NN_vpsrad
,
// Packed Shift Right Arithmetic (Dword)
1125
NN_vpsravd
,
// Variable Bit Shift Right Arithmetic
1126
NN_vpsraw
,
// Packed Shift Right Arithmetic (Word)
1127
NN_vpsrld
,
// Packed Shift Right Logical (Dword)
1128
NN_vpsrldq
,
// Shift Double Quadword Right Logical (Qword)
1129
NN_vpsrlq
,
// Packed Shift Right Logical (Qword)
1130
NN_vpsrlvd
,
// Variable Bit Shift Right Logical (Dword)
1131
NN_vpsrlvq
,
// Variable Bit Shift Right Logical (Qword)
1132
NN_vpsrlw
,
// Packed Shift Right Logical (Word)
1133
NN_vpsubb
,
// Packed Subtract Byte
1134
NN_vpsubd
,
// Packed Subtract Dword
1135
NN_vpsubq
,
// Subtract Packed Quadword Integers
1136
NN_vpsubsb
,
// Packed Subtract with Saturation (Byte)
1137
NN_vpsubsw
,
// Packed Subtract with Saturation (Word)
1138
NN_vpsubusb
,
// Packed Subtract Unsigned with Saturation (Byte)
1139
NN_vpsubusw
,
// Packed Subtract Unsigned with Saturation (Word)
1140
NN_vpsubw
,
// Packed Subtract Word
1141
NN_vptest
,
// Logical Compare
1142
NN_vpunpckhbw
,
// Unpack High Packed Data (Byte->Word)
1143
NN_vpunpckhdq
,
// Unpack High Packed Data (Dword->Qword)
1144
NN_vpunpckhqdq
,
// Unpack High Packed Data (Qword->Xmmword)
1145
NN_vpunpckhwd
,
// Unpack High Packed Data (Word->Dword)
1146
NN_vpunpcklbw
,
// Unpack Low Packed Data (Byte->Word)
1147
NN_vpunpckldq
,
// Unpack Low Packed Data (Dword->Qword)
1148
NN_vpunpcklqdq
,
// Unpack Low Packed Data (Qword->Xmmword)
1149
NN_vpunpcklwd
,
// Unpack Low Packed Data (Word->Dword)
1150
NN_vpxor
,
// Bitwise Logical Exclusive Or
1151
NN_vrcpps
,
// Packed Single-FP Reciprocal
1152
NN_vrcpss
,
// Scalar Single-FP Reciprocal
1153
NN_vroundpd
,
// Round Packed Double Precision Floating-Point Values
1154
NN_vroundps
,
// Round Packed Single Precision Floating-Point Values
1155
NN_vroundsd
,
// Round Scalar Double Precision Floating-Point Values
1156
NN_vroundss
,
// Round Scalar Single Precision Floating-Point Values
1157
NN_vrsqrtps
,
// Packed Single-FP Square Root Reciprocal
1158
NN_vrsqrtss
,
// Scalar Single-FP Square Root Reciprocal
1159
NN_vshufpd
,
// Shuffle Packed Double-Precision Floating-Point Values
1160
NN_vshufps
,
// Shuffle Single-FP
1161
NN_vsqrtpd
,
// Compute Square Roots of Packed Double-Precision Floating-Point Values
1162
NN_vsqrtps
,
// Packed Single-FP Square Root
1163
NN_vsqrtsd
,
// Compute Square Rootof Scalar Double-Precision Floating-Point Value
1164
NN_vsqrtss
,
// Scalar Single-FP Square Root
1165
NN_vstmxcsr
,
// Store Streaming SIMD Extensions Technology Control/Status Register
1166
NN_vsubpd
,
// Subtract Packed Double-Precision Floating-Point Values
1167
NN_vsubps
,
// Packed Single-FP Subtract
1168
NN_vsubsd
,
// Subtract Scalar Double-Precision Floating-Point Values
1169
NN_vsubss
,
// Scalar Single-FP Subtract
1170
NN_vtestpd
,
// Packed Double-Precision Floating-Point Bit Test
1171
NN_vtestps
,
// Packed Single-Precision Floating-Point Bit Test
1172
NN_vucomisd
,
// Unordered Compare Scalar Ordered Double-Precision Floating-Point Values and Set EFLAGS
1173
NN_vucomiss
,
// Scalar Unordered Single-FP Compare and Set EFLAGS
1174
NN_vunpckhpd
,
// Unpack and Interleave High Packed Double-Precision Floating-Point Values
1175
NN_vunpckhps
,
// Unpack High Packed Single-FP Data
1176
NN_vunpcklpd
,
// Unpack and Interleave Low Packed Double-Precision Floating-Point Values
1177
NN_vunpcklps
,
// Unpack Low Packed Single-FP Data
1178
NN_vxorpd
,
// Bitwise Logical OR of Double-Precision Floating-Point Values
1179
NN_vxorps
,
// Bitwise Logical XOR for Single-FP Data
1180
NN_vzeroall
,
// Zero All YMM Registers
1181
NN_vzeroupper
,
// Zero Upper Bits of YMM Registers
1182
// Transactional Synchronization Extensions
1183
NN_xabort
,
// Transaction Abort
1184
NN_xbegin
,
// Transaction Begin
1185
NN_xend
,
// Transaction End
1186
NN_xtest
,
// Test If In Transactional Execution
1187
// Virtual PC synthetic instructions
1188
NN_vmgetinfo
,
// Virtual PC - Get VM Information
1189
NN_vmsetinfo
,
// Virtual PC - Set VM Information
1190
NN_vmdxdsbl
,
// Virtual PC - Disable Direct Execution
1191
NN_vmdxenbl
,
// Virtual PC - Enable Direct Execution
1192
NN_vmcpuid
,
// Virtual PC - Virtualized CPU Information
1193
NN_vmhlt
,
// Virtual PC - Halt
1194
NN_vmsplaf
,
// Virtual PC - Spin Lock Acquisition Failed
1195
NN_vmpushfd
,
// Virtual PC - Push virtualized flags register
1196
NN_vmpopfd
,
// Virtual PC - Pop virtualized flags register
1197
NN_vmcli
,
// Virtual PC - Clear Interrupt Flag
1198
NN_vmsti
,
// Virtual PC - Set Interrupt Flag
1199
NN_vmiretd
,
// Virtual PC - Return From Interrupt
1200
NN_vmsgdt
,
// Virtual PC - Store Global Descriptor Table
1201
NN_vmsidt
,
// Virtual PC - Store Interrupt Descriptor Table
1202
NN_vmsldt
,
// Virtual PC - Store Local Descriptor Table
1203
NN_vmstr
,
// Virtual PC - Store Task Register
1204
NN_vmsdte
,
// Virtual PC - Store to Descriptor Table Entry
1205
NN_vpcext
,
// Virtual PC - ISA extension
1206
// AMD FMA4
1207
NN_vfmaddsubps
,
// Multiply with Alternating Add/Subtract of Packed Single-Precision Floating-Point
1208
NN_vfmaddsubpd
,
// Multiply with Alternating Add/Subtract of Packed Double-Precision Floating-Point
1209
NN_vfmsubaddps
,
// Multiply with Alternating Subtract/Add of Packed Single-Precision Floating-Point
1210
NN_vfmsubaddpd
,
// Multiply with Alternating Subtract/Add of Packed Double-Precision Floating-Point
1211
NN_vfmaddps
,
// Multiply and Add Packed Single-Precision Floating-Point
1212
NN_vfmaddpd
,
// Multiply and Add Packed Double-Precision Floating-Point
1213
NN_vfmaddss
,
// Multiply and Add Scalar Single-Precision Floating-Point
1214
NN_vfmaddsd
,
// Multiply and Add Scalar Double-Precision Floating-Point
1215
NN_vfmsubps
,
// Multiply and Subtract Packed Single-Precision Floating-Point
1216
NN_vfmsubpd
,
// Multiply and Subtract Packed Double-Precision Floating-Point
1217
NN_vfmsubss
,
// Multiply and Subtract Scalar Single-Precision Floating-Point
1218
NN_vfmsubsd
,
// Multiply and Subtract Scalar Double-Precision Floating-Point
1219
NN_vfnmaddps
,
// Negative Multiply and Add Packed Single-Precision Floating-Point
1220
NN_vfnmaddpd
,
// Negative Multiply and Add Packed Double-Precision Floating-Point
1221
NN_vfnmaddss
,
// Negative Multiply and Add Scalar Single-Precision Floating-Point
1222
NN_vfnmaddsd
,
// Negative Multiply and Add Double Single-Precision Floating-Point
1223
NN_vfnmsubps
,
// Negative Multiply and Subtract Packed Single-Precision Floating-Point
1224
NN_vfnmsubpd
,
// Negative Multiply and Subtract Packed Double-Precision Floating-Point
1225
NN_vfnmsubss
,
// Negative Multiply and Subtract Scalar Single-Precision Floating-Point
1226
NN_vfnmsubsd
,
// Negative Multiply and Subtract Double Single-Precision Floating-Point
1227
// Intel Memory Protection Extensions (MPX)
1228
NN_bndmk
,
// Make Bounds
1229
NN_bndcl
,
// Check Lower Bound
1230
NN_bndcu
,
// Check Upper Bound
1231
NN_bndcn
,
// Check Upper Bound
1232
NN_bndmov
,
// Move Bounds
1233
NN_bndldx
,
// Load Extended Bounds Using Address Translation
1234
NN_bndstx
,
// Store Extended Bounds Using Address Translation
1235
// New xstate instructions
1236
NN_xrstors
,
// Restore Processor Extended States Supervisor
1237
NN_xsavec
,
// Save Processor Extended States with Compaction
1238
NN_xsaves
,
// Save Processor Extended States Supervisor
1239
// PREFETCHWT1 support
1240
NN_prefetchwt1
,
// Prefetch Vector Data Into Caches with Intent to Write and T1 Hint
1241
// Memory instructions
1242
NN_clflushopt
,
// Flush a Cache Line Optimized
1243
NN_clwb
,
// Cache Line Write Back
1244
NN_pcommit
,
// Persistent Commit (deprecated by Intel)
1245
// Protection Key Rights for User Pages
1246
NN_rdpkru
,
// Read Protection Key Rights for User Pages
1247
NN_wrpkru
,
// Write Data to User Page Key Register
1248
// AVX comparison pseudo-ops
1249
NN_vcmpeqpd
,
// Compare Packed Double-Precision Floating-Point Values - Equal (ordered, non-signaling)
1250
NN_vcmpltpd
,
// Compare Packed Double-Precision Floating-Point Values - Less-than (ordered, signaling)
1251
NN_vcmplepd
,
// Compare Packed Double-Precision Floating-Point Values - Less-than-or-equal (ordered, signaling)
1252
NN_vcmpunordpd
,
// Compare Packed Double-Precision Floating-Point Values - Unordered (non-signaling)
1253
NN_vcmpneqpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-equal (unordered, non-signaling)
1254
NN_vcmpnltpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-less-than (unordered, signaling)
1255
NN_vcmpnlepd
,
// Compare Packed Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, signaling)
1256
NN_vcmpordpd
,
// Compare Packed Double-Precision Floating-Point Values - Ordered (non-signaling)
1257
NN_vcmpeq_uqpd
,
// Compare Packed Double-Precision Floating-Point Values - Equal (unordered, non-signaling)
1258
NN_vcmpngepd
,
// Compare Packed Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, signaling)
1259
NN_vcmpngtpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-greater-than (unordered, signaling)
1260
NN_vcmpfalsepd
,
// Compare Packed Double-Precision Floating-Point Values - False (ordered, non-signaling)
1261
NN_vcmpneq_oqpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-equal (ordered, non-signaling)
1262
NN_vcmpgepd
,
// Compare Packed Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, signaling)
1263
NN_vcmpgtpd
,
// Compare Packed Double-Precision Floating-Point Values - Greater-than (ordered, signaling)
1264
NN_vcmptruepd
,
// Compare Packed Double-Precision Floating-Point Values - True (unordered, non-signaling)
1265
NN_vcmpeq_ospd
,
// Compare Packed Double-Precision Floating-Point Values - Equal (ordered, signaling)
1266
NN_vcmplt_oqpd
,
// Compare Packed Double-Precision Floating-Point Values - Less-than (ordered, non-signaling)
1267
NN_vcmple_oqpd
,
// Compare Packed Double-Precision Floating-Point Values - Less-than-or-equal (ordered, non-signaling)
1268
NN_vcmpunord_spd
,
// Compare Packed Double-Precision Floating-Point Values - Unordered (signaling)
1269
NN_vcmpneq_uspd
,
// Compare Packed Double-Precision Floating-Point Values - Not-equal (unordered, signaling)
1270
NN_vcmpnlt_uqpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-less-than (unordered, non-signaling)
1271
NN_vcmpnle_uqpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, non-signaling)
1272
NN_vcmpord_spd
,
// Compare Packed Double-Precision Floating-Point Values - Ordered (signaling)
1273
NN_vcmpeq_uspd
,
// Compare Packed Double-Precision Floating-Point Values - Equal (unordered, signaling)
1274
NN_vcmpnge_uqpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, non-signaling)
1275
NN_vcmpngt_uqpd
,
// Compare Packed Double-Precision Floating-Point Values - Not-greater-than (unordered, non-signaling)
1276
NN_vcmpfalse_ospd
,
// Compare Packed Double-Precision Floating-Point Values - False (ordered, signaling)
1277
NN_vcmpneq_ospd
,
// Compare Packed Double-Precision Floating-Point Values - Not-equal (ordered, signaling)
1278
NN_vcmpge_oqpd
,
// Compare Packed Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, non-signaling)
1279
NN_vcmpgt_oqpd
,
// Compare Packed Double-Precision Floating-Point Values - Greater-than (ordered, non-signaling)
1280
NN_vcmptrue_uspd
,
// Compare Packed Double-Precision Floating-Point Values - True (unordered, signaling)
1281
NN_vcmpeqps
,
// Packed Single-FP Compare - Equal (ordered, non-signaling)
1282
NN_vcmpltps
,
// Packed Single-FP Compare - Less-than (ordered, signaling)
1283
NN_vcmpleps
,
// Packed Single-FP Compare - Less-than-or-equal (ordered, signaling)
1284
NN_vcmpunordps
,
// Packed Single-FP Compare - Unordered (non-signaling)
1285
NN_vcmpneqps
,
// Packed Single-FP Compare - Not-equal (unordered, non-signaling)
1286
NN_vcmpnltps
,
// Packed Single-FP Compare - Not-less-than (unordered, signaling)
1287
NN_vcmpnleps
,
// Packed Single-FP Compare - Not-less-than-or-equal (unordered, signaling)
1288
NN_vcmpordps
,
// Packed Single-FP Compare - Ordered (non-signaling)
1289
NN_vcmpeq_uqps
,
// Packed Single-FP Compare - Equal (unordered, non-signaling)
1290
NN_vcmpngeps
,
// Packed Single-FP Compare - Not-greater-than-or-equal (unordered, signaling)
1291
NN_vcmpngtps
,
// Packed Single-FP Compare - Not-greater-than (unordered, signaling)
1292
NN_vcmpfalseps
,
// Packed Single-FP Compare - False (ordered, non-signaling)
1293
NN_vcmpneq_oqps
,
// Packed Single-FP Compare - Not-equal (ordered, non-signaling)
1294
NN_vcmpgeps
,
// Packed Single-FP Compare - Greater-than-or-equal (ordered, signaling)
1295
NN_vcmpgtps
,
// Packed Single-FP Compare - Greater-than (ordered, signaling)
1296
NN_vcmptrueps
,
// Packed Single-FP Compare - True (unordered, non-signaling)
1297
NN_vcmpeq_osps
,
// Packed Single-FP Compare - Equal (ordered, signaling)
1298
NN_vcmplt_oqps
,
// Packed Single-FP Compare - Less-than (ordered, non-signaling)
1299
NN_vcmple_oqps
,
// Packed Single-FP Compare - Less-than-or-equal (ordered, non-signaling)
1300
NN_vcmpunord_sps
,
// Packed Single-FP Compare - Unordered (signaling)
1301
NN_vcmpneq_usps
,
// Packed Single-FP Compare - Not-equal (unordered, signaling)
1302
NN_vcmpnlt_uqps
,
// Packed Single-FP Compare - Not-less-than (unordered, non-signaling)
1303
NN_vcmpnle_uqps
,
// Packed Single-FP Compare - Not-less-than-or-equal (unordered, non-signaling)
1304
NN_vcmpord_sps
,
// Packed Single-FP Compare - Ordered (signaling)
1305
NN_vcmpeq_usps
,
// Packed Single-FP Compare - Equal (unordered, signaling)
1306
NN_vcmpnge_uqps
,
// Packed Single-FP Compare - Not-greater-than-or-equal (unordered, non-signaling)
1307
NN_vcmpngt_uqps
,
// Packed Single-FP Compare - Not-greater-than (unordered, non-signaling)
1308
NN_vcmpfalse_osps
,
// Packed Single-FP Compare - False (ordered, signaling)
1309
NN_vcmpneq_osps
,
// Packed Single-FP Compare - Not-equal (ordered, signaling)
1310
NN_vcmpge_oqps
,
// Packed Single-FP Compare - Greater-than-or-equal (ordered, non-signaling)
1311
NN_vcmpgt_oqps
,
// Packed Single-FP Compare - Greater-than (ordered, non-signaling)
1312
NN_vcmptrue_usps
,
// Packed Single-FP Compare - True (unordered, signaling)
1313
NN_vcmpeqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Equal (ordered, non-signaling)
1314
NN_vcmpltsd
,
// Compare Scalar Double-Precision Floating-Point Values - Less-than (ordered, signaling)
1315
NN_vcmplesd
,
// Compare Scalar Double-Precision Floating-Point Values - Less-than-or-equal (ordered, signaling)
1316
NN_vcmpunordsd
,
// Compare Scalar Double-Precision Floating-Point Values - Unordered (non-signaling)
1317
NN_vcmpneqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-equal (unordered, non-signaling)
1318
NN_vcmpnltsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-less-than (unordered, signaling)
1319
NN_vcmpnlesd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, signaling)
1320
NN_vcmpordsd
,
// Compare Scalar Double-Precision Floating-Point Values - Ordered (non-signaling)
1321
NN_vcmpeq_uqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Equal (unordered, non-signaling)
1322
NN_vcmpngesd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, signaling)
1323
NN_vcmpngtsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-greater-than (unordered, signaling)
1324
NN_vcmpfalsesd
,
// Compare Scalar Double-Precision Floating-Point Values - False (ordered, non-signaling)
1325
NN_vcmpneq_oqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-equal (ordered, non-signaling)
1326
NN_vcmpgesd
,
// Compare Scalar Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, signaling)
1327
NN_vcmpgtsd
,
// Compare Scalar Double-Precision Floating-Point Values - Greater-than (ordered, signaling)
1328
NN_vcmptruesd
,
// Compare Scalar Double-Precision Floating-Point Values - True (unordered, non-signaling)
1329
NN_vcmpeq_ossd
,
// Compare Scalar Double-Precision Floating-Point Values - Equal (ordered, signaling)
1330
NN_vcmplt_oqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Less-than (ordered, non-signaling)
1331
NN_vcmple_oqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Less-than-or-equal (ordered, non-signaling)
1332
NN_vcmpunord_ssd
,
// Compare Scalar Double-Precision Floating-Point Values - Unordered (signaling)
1333
NN_vcmpneq_ussd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-equal (unordered, signaling)
1334
NN_vcmpnlt_uqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-less-than (unordered, non-signaling)
1335
NN_vcmpnle_uqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-less-than-or-equal (unordered, non-signaling)
1336
NN_vcmpord_ssd
,
// Compare Scalar Double-Precision Floating-Point Values - Ordered (signaling)
1337
NN_vcmpeq_ussd
,
// Compare Scalar Double-Precision Floating-Point Values - Equal (unordered, signaling)
1338
NN_vcmpnge_uqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-greater-than-or-equal (unordered, non-signaling)
1339
NN_vcmpngt_uqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-greater-than (unordered, non-signaling)
1340
NN_vcmpfalse_ossd
,
// Compare Scalar Double-Precision Floating-Point Values - False (ordered, signaling)
1341
NN_vcmpneq_ossd
,
// Compare Scalar Double-Precision Floating-Point Values - Not-equal (ordered, signaling)
1342
NN_vcmpge_oqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Greater-than-or-equal (ordered, non-signaling)
1343
NN_vcmpgt_oqsd
,
// Compare Scalar Double-Precision Floating-Point Values - Greater-than (ordered, non-signaling)
1344
NN_vcmptrue_ussd
,
// Compare Scalar Double-Precision Floating-Point Values - True (unordered, signaling)
1345
NN_vcmpeqss
,
// Scalar Single-FP Compare - Equal (ordered, non-signaling)
1346
NN_vcmpltss
,
// Scalar Single-FP Compare - Less-than (ordered, signaling)
1347
NN_vcmpless
,
// Scalar Single-FP Compare - Less-than-or-equal (ordered, signaling)
1348
NN_vcmpunordss
,
// Scalar Single-FP Compare - Unordered (non-signaling)
1349
NN_vcmpneqss
,
// Scalar Single-FP Compare - Not-equal (unordered, non-signaling)
1350
NN_vcmpnltss
,
// Scalar Single-FP Compare - Not-less-than (unordered, signaling)
1351
NN_vcmpnless
,
// Scalar Single-FP Compare - Not-less-than-or-equal (unordered, signaling)
1352
NN_vcmpordss
,
// Scalar Single-FP Compare - Ordered (non-signaling)
1353
NN_vcmpeq_uqss
,
// Scalar Single-FP Compare - Equal (unordered, non-signaling)
1354
NN_vcmpngess
,
// Scalar Single-FP Compare - Not-greater-than-or-equal (unordered, signaling)
1355
NN_vcmpngtss
,
// Scalar Single-FP Compare - Not-greater-than (unordered, signaling)
1356
NN_vcmpfalsess
,
// Scalar Single-FP Compare - False (ordered, non-signaling)
1357
NN_vcmpneq_oqss
,
// Scalar Single-FP Compare - Not-equal (ordered, non-signaling)
1358
NN_vcmpgess
,
// Scalar Single-FP Compare - Greater-than-or-equal (ordered, signaling)
1359
NN_vcmpgtss
,
// Scalar Single-FP Compare - Greater-than (ordered, signaling)
1360
NN_vcmptruess
,
// Scalar Single-FP Compare - True (unordered, non-signaling)
1361
NN_vcmpeq_osss
,
// Scalar Single-FP Compare - Equal (ordered, signaling)
1362
NN_vcmplt_oqss
,
// Scalar Single-FP Compare - Less-than (ordered, non-signaling)
1363
NN_vcmple_oqss
,
// Scalar Single-FP Compare - Less-than-or-equal (ordered, non-signaling)
1364
NN_vcmpunord_sss
,
// Scalar Single-FP Compare - Unordered (signaling)
1365
NN_vcmpneq_usss
,
// Scalar Single-FP Compare - Not-equal (unordered, signaling)
1366
NN_vcmpnlt_uqss
,
// Scalar Single-FP Compare - Not-less-than (unordered, non-signaling)
1367
NN_vcmpnle_uqss
,
// Scalar Single-FP Compare - Not-less-than-or-equal (unordered, non-signaling)
1368
NN_vcmpord_sss
,
// Scalar Single-FP Compare - Ordered (signaling)
1369
NN_vcmpeq_usss
,
// Scalar Single-FP Compare - Equal (unordered, signaling)
1370
NN_vcmpnge_uqss
,
// Scalar Single-FP Compare - Not-greater-than-or-equal (unordered, non-signaling)
1371
NN_vcmpngt_uqss
,
// Scalar Single-FP Compare - Not-greater-than (unordered, non-signaling)
1372
NN_vcmpfalse_osss
,
// Scalar Single-FP Compare - False (ordered, signaling)
1373
NN_vcmpneq_osss
,
// Scalar Single-FP Compare - Not-equal (ordered, signaling)
1374
NN_vcmpge_oqss
,
// Scalar Single-FP Compare - Greater-than-or-equal (ordered, non-signaling)
1375
NN_vcmpgt_oqss
,
// Scalar Single-FP Compare - Greater-than (ordered, non-signaling)
1376
NN_vcmptrue_usss
,
// Scalar Single-FP Compare - True (unordered, signaling)
1377
// AVX-512 instructions
1378
NN_valignd
,
// Align Doubleword Vectors
1379
NN_valignq
,
// Align Quadword Vectors
1380
NN_vblendmpd
,
// Blend Float64 Vectors Using an OpMask Control
1381
NN_vblendmps
,
// Blend Float32 Vectors Using an OpMask Control
1382
NN_vpblendmb
,
// Blend Byte Vectors Using an Opmask Control
1383
NN_vpblendmw
,
// Blend Word Vectors Using an Opmask Control
1384
NN_vpblendmd
,
// Blend Int32 Vectors Using an OpMask Control
1385
NN_vpblendmq
,
// Blend Int64 Vectors Using an OpMask Control
1386
NN_vbroadcastf32x2
,
// Load with Broadcast Floating-Point Data
1387
NN_vbroadcastf32x4
,
// Load with Broadcast Floating-Point Data
1388
NN_vbroadcastf64x2
,
// Load with Broadcast Floating-Point Data
1389
NN_vbroadcastf32x8
,
// Load with Broadcast Floating-Point Data
1390
NN_vbroadcastf64x4
,
// Load with Broadcast Floating-Point Data
1391
NN_vbroadcasti32x2
,
// Load Integer and Broadcast
1392
NN_vbroadcasti32x4
,
// Load Integer and Broadcast
1393
NN_vbroadcasti64x2
,
// Load Integer and Broadcast
1394
NN_vbroadcasti32x8
,
// Load Integer and Broadcast
1395
NN_vbroadcasti64x4
,
// Load Integer and Broadcast
1396
NN_vcompresspd
,
// Store Sparse Packed Double-Precision Floating-Point Values into Dense Memory
1397
NN_vcompressps
,
// Store Sparse Packed Single-Precision Floating-Point Values into Dense Memory
1398
NN_vcvtpd2qq
,
// Convert Packed Double-Precision Floating-Point Values to Packed Quadword Integers
1399
NN_vcvtpd2udq
,
// Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers
1400
NN_vcvtpd2uqq
,
// Convert Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers
1401
NN_vcvtps2udq
,
// Convert Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values
1402
NN_vcvtps2qq
,
// Convert Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values
1403
NN_vcvtps2uqq
,
// Convert Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values
1404
NN_vcvtqq2pd
,
// Convert Packed Quadword Integers to Packed Double-Precision Floating-Point Values
1405
NN_vcvtqq2ps
,
// Convert Packed Quadword Integers to Packed Single-Precision Floating-Point Values
1406
NN_vcvtsd2usi
,
// Convert Scalar Double-Precision Floating-Point Value to Unsigned Doubleword Integer
1407
NN_vcvtss2usi
,
// Convert Scalar Single-Precision Floating-Point Value to Unsigned Doubleword Integer
1408
NN_vcvttpd2qq
,
// Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Quadword Integers
1409
NN_vcvttpd2udq
,
// Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Doubleword Integers
1410
NN_vcvttpd2uqq
,
// Convert with Truncation Packed Double-Precision Floating-Point Values to Packed Unsigned Quadword Integers
1411
NN_vcvttps2udq
,
// Convert with Truncation Packed Single-Precision Floating-Point Values to Packed Unsigned Doubleword Integer Values
1412
NN_vcvttps2qq
,
// Convert with Truncation Packed Single Precision Floating-Point Values to Packed Singed Quadword Integer Values
1413
NN_vcvttps2uqq
,
// Convert with Truncation Packed Single Precision Floating-Point Values to Packed Unsigned Quadword Integer Values
1414
NN_vcvttsd2usi
,
// Convert with Truncation Scalar Double-Precision Floating-Point Value to Unsigned Integer
1415
NN_vcvttss2usi
,
// Convert with Truncation Scalar Single-Precision Floating-Point Value to Unsigned Integer
1416
NN_vcvtudq2pd
,
// Convert Packed Unsigned Doubleword Integers to Packed Double-Precision Floating-Point Values
1417
NN_vcvtudq2ps
,
// Convert Packed Unsigned Doubleword Integers to Packed Single-Precision Floating-Point Values
1418
NN_vcvtuqq2pd
,
// Convert Packed Unsigned Quadword Integers to Packed Double-Precision Floating-Point Values
1419
NN_vcvtuqq2ps
,
// Convert Packed Unsigned Quadword Integers to Packed Single-Precision Floating-Point Values
1420
NN_vcvtusi2sd
,
// Convert Unsigned Integer to Scalar Double-Precision Floating-Point Value
1421
NN_vcvtusi2ss
,
// Convert Unsigned Integer to Scalar Single-Precision Floating-Point Value
1422
NN_vdbpsadbw
,
// Double Block Packed Sum-Absolute-Differences (SAD) on Unsigned Bytes
1423
NN_vexpandpd
,
// Load Sparse Packed Double-Precision Floating-Point Values from Dense Memory
1424
NN_vexpandps
,
// Load Sparse Packed Single-Precision Floating-Point Values from Dense Memory
1425
NN_vextractf32x4
,
// Extract Packed Floating-Point Values
1426
NN_vextractf64x2
,
// Extract Packed Floating-Point Values
1427
NN_vextractf32x8
,
// Extract Packed Floating-Point Values
1428
NN_vextractf64x4
,
// Extract Packed Floating-Point Values
1429
NN_vextracti32x4
,
// Extract packed Integer Values
1430
NN_vextracti64x2
,
// Extract packed Integer Values
1431
NN_vextracti32x8
,
// Extract packed Integer Values
1432
NN_vextracti64x4
,
// Extract packed Integer Values
1433
NN_vfixupimmpd
,
// Fix Up Special Packed Float64 Values
1434
NN_vfixupimmps
,
// Fix Up Special Packed Float32 Values
1435
NN_vfixupimmsd
,
// Fix Up Special Scalar Float64 Value
1436
NN_vfixupimmss
,
// Fix Up Special Scalar Float32 Value
1437
NN_vfpclasspd
,
// Tests Types Of a Packed Float64 Values
1438
NN_vfpclassps
,
// Tests Types Of a Packed Float32 Values
1439
NN_vfpclasssd
,
// Tests Types Of a Scalar Float64 Values
1440
NN_vfpclassss
,
// Tests Types Of a Scalar Float32 Values
1441
NN_vgetexppd
,
// Convert Exponents of Packed DP FP Values to DP FP Values
1442
NN_vgetexpps
,
// Convert Exponents of Packed SP FP Values to SP FP Values
1443
NN_vgetexpsd
,
// Convert Exponents of Scalar DP FP Values to DP FP Value
1444
NN_vgetexpss
,
// Convert Exponents of Scalar SP FP Values to SP FP Value
1445
NN_vgetmantpd
,
// Extract Float64 Vector of Normalized Mantissas from Float64 Vector
1446
NN_vgetmantps
,
// Extract Float32 Vector of Normalized Mantissas from Float32 Vector
1447
NN_vgetmantsd
,
// Extract Float64 of Normalized Mantissas from Float64 Scalar
1448
NN_vgetmantss
,
// Extract Float32 Vector of Normalized Mantissa from Float32 Vector
1449
NN_vinsertf32x4
,
// Insert Packed Floating-Point Values
1450
NN_vinsertf64x2
,
// Insert Packed Floating-Point Values
1451
NN_vinsertf32x8
,
// Insert Packed Floating-Point Values
1452
NN_vinsertf64x4
,
// Insert Packed Floating-Point Values
1453
NN_vinserti32x4
,
// Insert Packed Integer Values
1454
NN_vinserti64x2
,
// Insert Packed Integer Values
1455
NN_vinserti32x8
,
// Insert Packed Integer Values
1456
NN_vinserti64x4
,
// Insert Packed Integer Values
1457
NN_vmovdqa32
,
// Move Aligned Packed Integer Values
1458
NN_vmovdqa64
,
// Move Aligned Packed Integer Values
1459
NN_vmovdqu8
,
// Move Unaligned Packed Integer Values
1460
NN_vmovdqu16
,
// Move Unaligned Packed Integer Values
1461
NN_vmovdqu32
,
// Move Unaligned Packed Integer Values
1462
NN_vmovdqu64
,
// Move Unaligned Packed Integer Values
1463
NN_vpabsq
,
// Packed Absolute Value
1464
NN_vpandd
,
// Logical AND
1465
NN_vpandq
,
// Logical AND
1466
NN_vpandnd
,
// Logical AND NOT
1467
NN_vpandnq
,
// Logical AND NOT
1468
NN_vpbroadcastmb2q
,
// Broadcast Mask to Vector Register
1469
NN_vpbroadcastmw2d
,
// Broadcast Mask to Vector Register
1470
NN_vpcmpb
,
// Compare Packed Byte Values Into Mask
1471
NN_vpcmpub
,
// Compare Packed Byte Values Into Mask
1472
NN_vpcmpd
,
// Compare Packed Integer Values into Mask
1473
NN_vpcmpud
,
// Compare Packed Integer Values into Mask
1474
NN_vpcmpq
,
// Compare Packed Integer Values into Mask
1475
NN_vpcmpuq
,
// Compare Packed Integer Values into Mask
1476
NN_vpcmpw
,
// Compare Packed Word Values Into Mask
1477
NN_vpcmpuw
,
// Compare Packed Word Values Into Mask
1478
NN_vpcompressd
,
// Store Sparse Packed Doubleword Integer Values into Dense Memory/Register
1479
NN_vpcompressq
,
// Store Sparse Packed Quadword Integer Values into Dense Memory/Register
1480
NN_vpconflictd
,
// Detect Conflicts Within a Vector of Packed Dword Values into Dense Memory/Register
1481
NN_vpconflictq
,
// Detect Conflicts Within a Vector of Packed Qword Values into Dense Memory/Register
1482
NN_vpermb
,
// Permute Packed Bytes Elements
1483
NN_vpermw
,
// Permute Packed Words Elements
1484
NN_vpermi2b
,
// Full Permute of Bytes From Two Tables Overwriting the Index
1485
NN_vpermi2w
,
// Full Permute From Two Tables Overwriting the Index
1486
NN_vpermi2d
,
// Full Permute From Two Tables Overwriting the Index
1487
NN_vpermi2q
,
// Full Permute From Two Tables Overwriting the Index
1488
NN_vpermi2ps
,
// Full Permute From Two Tables Overwriting the Index
1489
NN_vpermi2pd
,
// Full Permute From Two Tables Overwriting the Index
1490
NN_vpermt2b
,
// Full Permute of Bytes From Two Tables Overwriting a Table
1491
NN_vpermt2w
,
// Full Permute from Two Tables Overwriting one Table
1492
NN_vpermt2d
,
// Full Permute from Two Tables Overwriting one Table
1493
NN_vpermt2q
,
// Full Permute from Two Tables Overwriting one Table
1494
NN_vpermt2ps
,
// Full Permute from Two Tables Overwriting one Table
1495
NN_vpermt2pd
,
// Full Permute from Two Tables Overwriting one Table
1496
NN_vpexpandd
,
// Load Sparse Packed Doubleword Integer Values from Dense Memory/Register
1497
NN_vpexpandq
,
// Load Sparse Packed Quadword Integer Values from Dense Memory/Register
1498
NN_vplzcntd
,
// Count the Number of Leading Zero Bits for Packed Dword Values
1499
NN_vplzcntq
,
// Count the Number of Leading Zero Bits for Packed Qword Values
1500
NN_vpmadd52luq
,
// Packed Multiply of Unsigned 52-bit Integers and Add the Low 52-bit Products to Qword Accumulators
1501
NN_vpmadd52huq
,
// Packed Multiply of Unsigned 52-bit Unsigned Integers and Add High 52-bit Products to 64-bit Accumulators
1502
NN_vpmaxsq
,
// Maximum of Packed Signed Integers
1503
NN_vpmaxuq
,
// Maximum of Packed Unsigned Integers
1504
NN_vpminsq
,
// Minimum of Packed Signed Integers
1505
NN_vpminuq
,
// Minimum of Packed Unsigned Integers
1506
NN_vpmovm2b
,
// Convert a Mask Register to a Vector Register
1507
NN_vpmovm2w
,
// Convert a Mask Register to a Vector Register
1508
NN_vpmovm2d
,
// Convert a Mask Register to a Vector Register
1509
NN_vpmovm2q
,
// Convert a Mask Register to a Vector Register
1510
NN_vpmovb2m
,
// Convert a Vector Register to a Mask
1511
NN_vpmovw2m
,
// Convert a Vector Register to a Mask
1512
NN_vpmovd2m
,
// Convert a Vector Register to a Mask
1513
NN_vpmovq2m
,
// Convert a Vector Register to a Mask
1514
NN_vpmovqb
,
// Down Convert QWord to Byte
1515
NN_vpmovsqb
,
// Down Convert QWord to Byte
1516
NN_vpmovusqb
,
// Down Convert QWord to Byte
1517
NN_vpmovqw
,
// Down Convert QWord to Word
1518
NN_vpmovsqw
,
// Down Convert QWord to Word
1519
NN_vpmovusqw
,
// Down Convert QWord to Word
1520
NN_vpmovqd
,
// Down Convert QWord to DWord
1521
NN_vpmovsqd
,
// Down Convert QWord to DWord
1522
NN_vpmovusqd
,
// Down Convert QWord to DWord
1523
NN_vpmovdb
,
// Down Convert DWord to Byte
1524
NN_vpmovsdb
,
// Down Convert DWord to Byte
1525
NN_vpmovusdb
,
// Down Convert DWord to Byte
1526
NN_vpmovdw
,
// Down Convert DWord to Word
1527
NN_vpmovsdw
,
// Down Convert DWord to Word
1528
NN_vpmovusdw
,
// Down Convert DWord to Word
1529
NN_vpmovwb
,
// Down Convert Word to Byte
1530
NN_vpmovswb
,
// Down Convert Word to Byte
1531
NN_vpmovuswb
,
// Down Convert Word to Byte
1532
NN_vpmullq
,
// Multiply Packed Integers and Store Low Result
1533
NN_vpmultishiftqb
,
// Select Packed Unaligned Bytes from Quadword Sources
1534
NN_vpord
,
// Bitwise Logical Or
1535
NN_vporq
,
// Bitwise Logical Or
1536
NN_vprold
,
// Bit Rotate Left
1537
NN_vprolvd
,
// Bit Rotate Left
1538
NN_vprolq
,
// Bit Rotate Left
1539
NN_vprolvq
,
// Bit Rotate Left
1540
NN_vprord
,
// Bit Rotate Right
1541
NN_vprorvd
,
// Bit Rotate Right
1542
NN_vprorq
,
// Bit Rotate Right
1543
NN_vprorvq
,
// Bit Rotate Right
1544
NN_vpscatterdd
,
// Scatter Packed Dword with Signed Dword
1545
NN_vpscatterdq
,
// Scatter Packed Qword with Signed Qword Indices
1546
NN_vpscatterqd
,
// Scatter Packed Dword with Signed Dword
1547
NN_vpscatterqq
,
// Scatter Packed Qword with Signed Qword Indices
1548
NN_vpsraq
,
// Bit Shift Arithmetic Right
1549
NN_vpsllvw
,
// Variable Bit Shift Left Logical
1550
NN_vpsrlvw
,
// Variable Bit Shift Right Logical
1551
NN_vptestnmb
,
// Logical NAND and Set
1552
NN_vptestnmw
,
// Logical NAND and Set
1553
NN_vptestnmd
,
// Logical NAND and Set
1554
NN_vptestnmq
,
// Logical NAND and Set
1555
NN_vshuff32x4
,
// Shuffle Packed Values at 128-bit Granularity
1556
NN_vshuff64x2
,
// Shuffle Packed Values at 128-bit Granularity
1557
NN_vshufi32x4
,
// Shuffle Packed Values at 128-bit Granularity
1558
NN_vshufi64x2
,
// Shuffle Packed Values at 128-bit Granularity
1559
NN_vpternlogd
,
// Bitwise Ternary Logic
1560
NN_vpternlogq
,
// Bitwise Ternary Logic
1561
NN_vptestmb
,
// Logical AND and Set Mask
1562
NN_vptestmw
,
// Logical AND and Set Mask
1563
NN_vptestmd
,
// Logical AND and Set Mask
1564
NN_vptestmq
,
// Logical AND and Set Mask
1565
NN_vpsravw
,
// Variable Bit Shift Right Arithmetic
1566
NN_vpsravq
,
// Variable Bit Shift Right Arithmetic
1567
NN_vpxord
,
// Exclusive Or
1568
NN_vpxorq
,
// Exclusive Or
1569
NN_vrangepd
,
// Range Restriction Calculation For Packed Pairs of Float64 Values
1570
NN_vrangeps
,
// Range Restriction Calculation For Packed Pairs of Float32 Values
1571
NN_vrangesd
,
// Range Restriction Calculation From a pair of Scalar Float64 Values
1572
NN_vrangess
,
// Range Restriction Calculation From a Pair of Scalar Float32 Values
1573
NN_vrcp14pd
,
// Compute Approximate Reciprocals of Packed Float64 Values
1574
NN_vrcp14sd
,
// Compute Approximate Reciprocal of Scalar Float64 Value
1575
NN_vrcp14ps
,
// Compute Approximate Reciprocals of Packed Float32 Values
1576
NN_vrcp14ss
,
// Compute Approximate Reciprocal of Scalar Float32 Value
1577
NN_vreducepd
,
// Perform Reduction Transformation on Packed Float64 Values
1578
NN_vreducesd
,
// Perform a Reduction Transformation on a Scalar Float64 Value
1579
NN_vreduceps
,
// Perform Reduction Transformation on Packed Float32 Values
1580
NN_vreducess
,
// Perform a Reduction Transformation on a Scalar Float32 Value
1581
NN_vrndscalepd
,
// Round Packed Float64 Values To Include A Given Number Of Fraction Bits
1582
NN_vrndscalesd
,
// Round Scalar Float64 Value To Include A Given Number Of Fraction Bits
1583
NN_vrndscaleps
,
// Round Packed Float32 Values To Include A Given Number Of Fraction Bits
1584
NN_vrndscaless
,
// Round Scalar Float32 Value To Include A Given Number Of Fraction Bits
1585
NN_vrsqrt14pd
,
// Compute Approximate Reciprocals of Square Roots of Packed Float64 Values
1586
NN_vrsqrt14sd
,
// Compute Approximate Reciprocal of Square Root of Scalar Float64 Value
1587
NN_vrsqrt14ps
,
// Compute Approximate Reciprocals of Square Roots of Packed Float32 Values
1588
NN_vrsqrt14ss
,
// Compute Approximate Reciprocal of Square Root of Scalar Float32 Value
1589
NN_vscalefpd
,
// Scale Packed Float64 Values With Float64 Values
1590
NN_vscalefsd
,
// Scale Scalar Float64 Values With Float64 Values
1591
NN_vscalefps
,
// Scale Packed Float32 Values With Float32 Values
1592
NN_vscalefss
,
// Scale Scalar Float32 Value With Float32 Value
1593
NN_vscatterdps
,
// Scatter Packed Single, Packed Double with Signed Dword and Qword Indices
1594
NN_vscatterdpd
,
// Scatter Packed Single, Packed Double with Signed Dword and Qword Indices
1595
NN_vscatterqps
,
// Scatter Packed Single, Packed Double with Signed Dword and Qword Indices
1596
NN_vscatterqpd
,
// Scatter Packed Single, Packed Double with Signed Dword and Qword Indices
1597
NN_vexp2pd
,
// Approximation to the Exponential 2^x of Packed Double-Precision Floating-Point Values with Less Than 2^-23 Relative Error
1598
NN_vexp2ps
,
// Approximation to the Exponential 2^x of Packed Single-Precision Floating-Point Values with Less Than 2^-23 Relative Error
1599
NN_vrcp28pd
,
// Approximation to the Reciprocal of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error
1600
NN_vrcp28sd
,
// Approximation to the Reciprocal of Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error
1601
NN_vrcp28ps
,
// Approximation to the Reciprocal of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error
1602
NN_vrcp28ss
,
// Approximation to the Reciprocal of Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error
1603
NN_vrsqrt28pd
,
// Approximation to the Reciprocal Square Root of Packed Double-Precision Floating-Point Values with Less Than 2^-28 Relative Error
1604
NN_vrsqrt28sd
,
// Approximation to the Reciprocal Square Root of Scalar Double-Precision Floating-Point Value with Less Than 2^-28 Relative Error
1605
NN_vrsqrt28ps
,
// Approximation to the Reciprocal Square Root of Packed Single-Precision Floating-Point Values with Less Than 2^-28 Relative Error
1606
NN_vrsqrt28ss
,
// Approximation to the Reciprocal Square Root of Scalar Single-Precision Floating-Point Value with Less Than 2^-28 Relative Error
1607
NN_vgatherpf0dps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint
1608
NN_vgatherpf0qps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint
1609
NN_vgatherpf0dpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint
1610
NN_vgatherpf0qpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint
1611
NN_vgatherpf1dps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint
1612
NN_vgatherpf1qps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint
1613
NN_vgatherpf1dpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint
1614
NN_vgatherpf1qpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint
1615
NN_vscatterpf0dps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write
1616
NN_vscatterpf0qps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write
1617
NN_vscatterpf0dpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write
1618
NN_vscatterpf0qpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T0 Hint with Intent to Write
1619
NN_vscatterpf1dps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write
1620
NN_vscatterpf1qps
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write
1621
NN_vscatterpf1dpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write
1622
NN_vscatterpf1qpd
,
// Sparse Prefetch Packed SP/DP Data Values with Signed Dword, Signed Qword Indices Using T1 Hint with Intent to Write
1623
// AVX-512 comparison pseudo-ops
1624
NN_vpcmpltd
,
// Compare Packed Integer Values into Mask
1625
NN_vpcmpled
,
// Compare Packed Integer Values into Mask
1626
NN_vpcmpneqd
,
// Compare Packed Integer Values into Mask
1627
NN_vpcmpnltd
,
// Compare Packed Integer Values into Mask
1628
NN_vpcmpnled
,
// Compare Packed Integer Values into Mask
1629
NN_vpcmpequd
,
// Compare Packed Integer Values into Mask
1630
NN_vpcmpltud
,
// Compare Packed Integer Values into Mask
1631
NN_vpcmpleud
,
// Compare Packed Integer Values into Mask
1632
NN_vpcmpnequd
,
// Compare Packed Integer Values into Mask
1633
NN_vpcmpnltud
,
// Compare Packed Integer Values into Mask
1634
NN_vpcmpnleud
,
// Compare Packed Integer Values into Mask
1635
NN_vpcmpltq
,
// Compare Packed Integer Values into Mask
1636
NN_vpcmpleq
,
// Compare Packed Integer Values into Mask
1637
NN_vpcmpneqq
,
// Compare Packed Integer Values into Mask
1638
NN_vpcmpnltq
,
// Compare Packed Integer Values into Mask
1639
NN_vpcmpnleq
,
// Compare Packed Integer Values into Mask
1640
NN_vpcmpequq
,
// Compare Packed Integer Values into Mask
1641
NN_vpcmpltuq
,
// Compare Packed Integer Values into Mask
1642
NN_vpcmpleuq
,
// Compare Packed Integer Values into Mask
1643
NN_vpcmpnequq
,
// Compare Packed Integer Values into Mask
1644
NN_vpcmpnltuq
,
// Compare Packed Integer Values into Mask
1645
NN_vpcmpnleuq
,
// Compare Packed Integer Values into Mask
1646
// Opmask instructions
1647
NN_kaddw
,
// ADD Two Masks
1648
NN_kaddb
,
// ADD Two Masks
1649
NN_kaddq
,
// ADD Two Masks
1650
NN_kaddd
,
// ADD Two Masks
1651
NN_kandw
,
// Bitwise Logical AND Masks
1652
NN_kandb
,
// Bitwise Logical AND Masks
1653
NN_kandq
,
// Bitwise Logical AND Masks
1654
NN_kandd
,
// Bitwise Logical AND Masks
1655
NN_kandnw
,
// Bitwise Logical AND NOT Masks
1656
NN_kandnb
,
// Bitwise Logical AND NOT Masks
1657
NN_kandnq
,
// Bitwise Logical AND NOT Masks
1658
NN_kandnd
,
// Bitwise Logical AND NOT Masks
1659
NN_kmovw
,
// Move from and to Mask Registers
1660
NN_kmovb
,
// Move from and to Mask Registers
1661
NN_kmovq
,
// Move from and to Mask Registers
1662
NN_kmovd
,
// Move from and to Mask Registers
1663
NN_kunpckbw
,
// Unpack for Mask Registers
1664
NN_kunpckwd
,
// Unpack for Mask Registers
1665
NN_kunpckdq
,
// Unpack for Mask Registers
1666
NN_knotw
,
// NOT Mask Register
1667
NN_knotb
,
// NOT Mask Register
1668
NN_knotq
,
// NOT Mask Register
1669
NN_knotd
,
// NOT Mask Register
1670
NN_korw
,
// Bitwise Logical OR Masks
1671
NN_korb
,
// Bitwise Logical OR Masks
1672
NN_korq
,
// Bitwise Logical OR Masks
1673
NN_kord
,
// Bitwise Logical OR Masks
1674
NN_kortestw
,
// OR Masks And Set Flags
1675
NN_kortestb
,
// OR Masks And Set Flags
1676
NN_kortestq
,
// OR Masks And Set Flags
1677
NN_kortestd
,
// OR Masks And Set Flags
1678
NN_kshiftlw
,
// Shift Left Mask Registers
1679
NN_kshiftlb
,
// Shift Left Mask Registers
1680
NN_kshiftlq
,
// Shift Left Mask Registers
1681
NN_kshiftld
,
// Shift Left Mask Registers
1682
NN_kshiftrw
,
// Shift Right Mask Registers
1683
NN_kshiftrb
,
// Shift Right Mask Registers
1684
NN_kshiftrq
,
// Shift Right Mask Registers
1685
NN_kshiftrd
,
// Shift Right Mask Registers
1686
NN_kxnorw
,
// Bitwise Logical XNOR Masks
1687
NN_kxnorb
,
// Bitwise Logical XNOR Masks
1688
NN_kxnorq
,
// Bitwise Logical XNOR Masks
1689
NN_kxnord
,
// Bitwise Logical XNOR Masks
1690
NN_ktestw
,
// Packed Bit Test Masks and Set Flags
1691
NN_ktestb
,
// Packed Bit Test Masks and Set Flags
1692
NN_ktestq
,
// Packed Bit Test Masks and Set Flags
1693
NN_ktestd
,
// Packed Bit Test Masks and Set Flags
1694
NN_kxorw
,
// Bitwise Logical XOR Masks
1695
NN_kxorb
,
// Bitwise Logical XOR Masks
1696
NN_kxorq
,
// Bitwise Logical XOR Masks
1697
NN_kxord
,
// Bitwise Logical XOR Masks
1698
// SHA Extensions
1699
NN_sha1rnds4
,
// Perform Four Rounds of SHA1 Operation
1700
NN_sha1nexte
,
// Calculate SHA1 State Variable E after Four Rounds
1701
NN_sha1msg1
,
// Perform an Intermediate Calculation for the Next Four SHA1 Message Dwords
1702
NN_sha1msg2
,
// Perform a Final Calculation for the Next Four SHA1 Message Dwords
1703
NN_sha256rnds2
,
// Perform Two Rounds of SHA256 Operation
1704
NN_sha256msg1
,
// Perform an Intermediate Calculation for the Next Four SHA256 Message Dwords
1705
NN_sha256msg2
,
// Perform a Final Calculation for the Next Four SHA256 Message Dwords
1706
// Intel Software Guard Extensions
1707
NN_encls
,
// Execute an Enclave System Function of Specified Leaf Number
1708
NN_enclu
,
// Execute an Enclave User Function of Specified Leaf Number
1709
// AMD XOP
1710
NN_vfrczpd
,
// Extract Fraction Packed Double-Precision Floating-Point
1711
NN_vfrczps
,
// Extract Fraction Packed Single-Precision Floating-Point
1712
NN_vfrczsd
,
// Extract Fraction Scalar Double-Precision Floating-Point
1713
NN_vfrczss
,
// Extract Fraction Scalar Single-Precision Floating Point
1714
NN_vpcmov
,
// Vector Conditional Moves
1715
NN_vpcomb
,
// Compare Vector Signed Bytes
1716
NN_vpcomd
,
// Compare Vector Signed Doublewords
1717
NN_vpcomq
,
// Compare Vector Signed Quadwords
1718
NN_vpcomub
,
// Compare Vector Unsigned Bytes
1719
NN_vpcomud
,
// Compare Vector Unsigned Doublewords
1720
NN_vpcomuq
,
// Compare Vector Unsigned Quadwords
1721
NN_vpcomuw
,
// Compare Vector Unsigned Words
1722
NN_vpcomw
,
// Compare Vector Signed Words
1723
NN_vpermil2pd
,
// Permute Two-Source Double-Precision Floating-Point Values
1724
NN_vpermil2ps
,
// Permute Two-Source Single-Precision Floating-Point Values
1725
NN_vphaddbd
,
// Packed Horizontal Add Signed Byte to Signed Doubleword
1726
NN_vphaddbq
,
// Packed Horizontal Add Signed Byte to Signed Quadword
1727
NN_vphaddbw
,
// Packed Horizontal Add Signed Byte to Signed Word
1728
NN_vphadddq
,
// Packed Horizontal Add Signed Doubleword to Signed Quadword
1729
NN_vphaddubd
,
// Packed Horizontal Add Unsigned Byte to Doubleword
1730
NN_vphaddubq
,
// Packed Horizontal Add Unsigned Byte to Quadword
1731
NN_vphaddubw
,
// Packed Horizontal Add Unsigned Byte to Word
1732
NN_vphaddudq
,
// Packed Horizontal Add Unsigned Doubleword to Quadword
1733
NN_vphadduwd
,
// Packed Horizontal Add Unsigned Word to Doubleword
1734
NN_vphadduwq
,
// Packed Horizontal Add Unsigned Word to Quadword
1735
NN_vphaddwd
,
// Packed Horizontal Add Signed Word to Signed Doubleword
1736
NN_vphaddwq
,
// Packed Horizontal Add Signed Word to Signed Quadword
1737
NN_vphsubbw
,
// Packed Horizontal Subtract Signed Byte to Signed Word
1738
NN_vphsubdq
,
// Packed Horizontal Subtract Signed Doubleword to Signed Quadword
1739
NN_vphsubwd
,
// Packed Horizontal Subtract Signed Word to Signed Doubleword
1740
NN_vpmacsdd
,
// Packed Multiply Accumulate Signed Doubleword to Signed Doubleword
1741
NN_vpmacsdqh
,
// Packed Multiply Accumulate Signed High Doubleword to Signed Quadword
1742
NN_vpmacsdql
,
// Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword
1743
NN_vpmacssdd
,
// Packed Multiply Accumulate Signed Doubleword to Signed Doubleword with Saturation
1744
NN_vpmacssdqh
,
// Packed Multiply Accumulate Signed High Doubleword to Signed Quadword with Saturation
1745
NN_vpmacssdql
,
// Packed Multiply Accumulate Signed Low Doubleword to Signed Quadword with Saturation
1746
NN_vpmacsswd
,
// Packed Multiply Accumulate Signed Word to Signed Doubleword with Saturation
1747
NN_vpmacssww
,
// Packed Multiply Accumulate Signed Word to Signed Word with Saturation
1748
NN_vpmacswd
,
// Packed Multiply Accumulate Signed Word to Signed Doubleword
1749
NN_vpmacsww
,
// Packed Multiply Accumulate Signed Word to Signed Word
1750
NN_vpmadcsswd
,
// Packed Multiply, Add and Accumulate Signed Word to Signed Doubleword with Saturation
1751
NN_vpmadcswd
,
// Packed Multiply Add and Accumulate Signed Word to Signed Doubleword
1752
NN_vpperm
,
// Packed Permute Bytes
1753
NN_vprotb
,
// Packed Rotate Bytes
1754
NN_vprotd
,
// Packed Rotate Doublewords
1755
NN_vprotq
,
// Packed Rotate Quadwords
1756
NN_vprotw
,
// Packed Rotate Words
1757
NN_vpshab
,
// Packed Shift Arithmetic Bytes
1758
NN_vpshad
,
// Packed Shift Arithmetic Doublewords
1759
NN_vpshaq
,
// Packed Shift Arithmetic Quadwords
1760
NN_vpshaw
,
// Packed Shift Arithmetic Words
1761
NN_vpshlb
,
// Packed Shift Logical Bytes
1762
NN_vpshld
,
// Packed Shift Logical Doublewords
1763
NN_vpshlq
,
// Packed Shift Logical Quadwords
1764
NN_vpshlw
,
// Packed Shift Logical Words
1765
// AMD XOP comparison pseudo-ops
1766
NN_vpcomltb
,
// Compare Vector Signed Bytes
1767
NN_vpcomleb
,
// Compare Vector Signed Bytes
1768
NN_vpcomgtb
,
// Compare Vector Signed Bytes
1769
NN_vpcomgeb
,
// Compare Vector Signed Bytes
1770
NN_vpcomeqb
,
// Compare Vector Signed Bytes
1771
NN_vpcomneqb
,
// Compare Vector Signed Bytes
1772
NN_vpcomfalseb
,
// Compare Vector Signed Bytes
1773
NN_vpcomtrueb
,
// Compare Vector Signed Bytes
1774
NN_vpcomltw
,
// Compare Vector Signed Words
1775
NN_vpcomlew
,
// Compare Vector Signed Words
1776
NN_vpcomgtw
,
// Compare Vector Signed Words
1777
NN_vpcomgew
,
// Compare Vector Signed Words
1778
NN_vpcomeqw
,
// Compare Vector Signed Words
1779
NN_vpcomneqw
,
// Compare Vector Signed Words
1780
NN_vpcomfalsew
,
// Compare Vector Signed Words
1781
NN_vpcomtruew
,
// Compare Vector Signed Words
1782
NN_vpcomltd
,
// Compare Vector Signed Doublewords
1783
NN_vpcomled
,
// Compare Vector Signed Doublewords
1784
NN_vpcomgtd
,
// Compare Vector Signed Doublewords
1785
NN_vpcomged
,
// Compare Vector Signed Doublewords
1786
NN_vpcomeqd
,
// Compare Vector Signed Doublewords
1787
NN_vpcomneqd
,
// Compare Vector Signed Doublewords
1788
NN_vpcomfalsed
,
// Compare Vector Signed Doublewords
1789
NN_vpcomtrued
,
// Compare Vector Signed Doublewords
1790
NN_vpcomltq
,
// Compare Vector Signed Quadwords
1791
NN_vpcomleq
,
// Compare Vector Signed Quadwords
1792
NN_vpcomgtq
,
// Compare Vector Signed Quadwords
1793
NN_vpcomgeq
,
// Compare Vector Signed Quadwords
1794
NN_vpcomeqq
,
// Compare Vector Signed Quadwords
1795
NN_vpcomneqq
,
// Compare Vector Signed Quadwords
1796
NN_vpcomfalseq
,
// Compare Vector Signed Quadwords
1797
NN_vpcomtrueq
,
// Compare Vector Signed Quadwords
1798
NN_vpcomltub
,
// Compare Vector Unsigned Bytes
1799
NN_vpcomleub
,
// Compare Vector Unsigned Bytes
1800
NN_vpcomgtub
,
// Compare Vector Unsigned Bytes
1801
NN_vpcomgeub
,
// Compare Vector Unsigned Bytes
1802
NN_vpcomequb
,
// Compare Vector Unsigned Bytes
1803
NN_vpcomnequb
,
// Compare Vector Unsigned Bytes
1804
NN_vpcomfalseub
,
// Compare Vector Unsigned Bytes
1805
NN_vpcomtrueub
,
// Compare Vector Unsigned Bytes
1806
NN_vpcomltuw
,
// Compare Vector Unsigned Words
1807
NN_vpcomleuw
,
// Compare Vector Unsigned Words
1808
NN_vpcomgtuw
,
// Compare Vector Unsigned Words
1809
NN_vpcomgeuw
,
// Compare Vector Unsigned Words
1810
NN_vpcomequw
,
// Compare Vector Unsigned Words
1811
NN_vpcomnequw
,
// Compare Vector Unsigned Words
1812
NN_vpcomfalseuw
,
// Compare Vector Unsigned Words
1813
NN_vpcomtrueuw
,
// Compare Vector Unsigned Words
1814
NN_vpcomltud
,
// Compare Vector Unsigned Doublewords
1815
NN_vpcomleud
,
// Compare Vector Unsigned Doublewords
1816
NN_vpcomgtud
,
// Compare Vector Unsigned Doublewords
1817
NN_vpcomgeud
,
// Compare Vector Unsigned Doublewords
1818
NN_vpcomequd
,
// Compare Vector Unsigned Doublewords
1819
NN_vpcomnequd
,
// Compare Vector Unsigned Doublewords
1820
NN_vpcomfalseud
,
// Compare Vector Unsigned Doublewords
1821
NN_vpcomtrueud
,
// Compare Vector Unsigned Doublewords
1822
NN_vpcomltuq
,
// Compare Vector Unsigned Quadwords
1823
NN_vpcomleuq
,
// Compare Vector Unsigned Quadwords
1824
NN_vpcomgtuq
,
// Compare Vector Unsigned Quadwords
1825
NN_vpcomgeuq
,
// Compare Vector Unsigned Quadwords
1826
NN_vpcomequq
,
// Compare Vector Unsigned Quadwords
1827
NN_vpcomnequq
,
// Compare Vector Unsigned Quadwords
1828
NN_vpcomfalseuq
,
// Compare Vector Unsigned Quadwords
1829
NN_vpcomtrueuq
,
// Compare Vector Unsigned Quadwords
1830
// AMD Excavator
1831
NN_monitorx
,
// Setup Monitor Address
1832
NN_mwaitx
,
// Monitor Wait with Timeout
1833
// AMD Zen
1834
NN_clzero
,
// Zero out 64 byte cache
1835
// Intel Processor Trace
1836
NN_ptwrite
,
// Write Data to a Processor Trace Packet
1837
// new Intel AVX-512 instructions (December 2016)
1838
NN_v4fmaddps
,
// Packed Single-Precision Floating-Point Fused Multiply-Add (4-iterations)
1839
NN_v4fnmaddps
,
// Packed Single-Precision Floating-Point Fused Multiply-Add (4-iterations)
1840
NN_v4fmaddss
,
// Scalar Single-Precision Floating-Point Fused Multiply-Add (4-iterations)
1841
NN_v4fnmaddss
,
// Scalar Single-Precision Floating-Point Fused Multiply-Add (4-iterations)
1842
NN_vp4dpwssd
,
// Dot Product of Signed Words with Dword Accumulation (4-iterations)
1843
NN_vp4dpwssds
,
// Dot Product of Signed Words with Dword Accumulation and Saturation (4-iterations)
1844
NN_vpopcntd
,
// Return the Count of Number of Bits Set to 1 in DWORD
1845
NN_vpopcntq
,
// Return the Count of Number of Bits Set to 1 in QWORD
1846
// Read Processor ID
1847
NN_rdpid
,
// Read Processor ID
1848
// Invoke VM function
1849
NN_vmfunc
,
// Invoke VM function
1850
// Control-flow Enforcement
1851
NN_incsspd
,
// Increment Shadow Stack Pointer (by 4)
1852
NN_incsspq
,
// Increment Shadow Stack Pointer (by 8)
1853
NN_rdsspd
,
// Read (low 32 bits of) Shadow Stack Pointer
1854
NN_rdsspq
,
// Read Shadow Stack Pointer
1855
NN_saveprevssp
,
// Save Previous Shadow Stack Pointer
1856
NN_rstorssp
,
// Restore saved Shadow Stack Pointer
1857
NN_wrssd
,
// Write (4 bytes) to shadow stack
1858
NN_wrssq
,
// Write (8 bytes) to shadow stack
1859
NN_wrussd
,
// Write (4 bytes) to User Shadow Stack
1860
NN_wrussq
,
// Write (8 bytes) to User Shadow Stack
1861
NN_setssbsy
,
// Mark Shadow Stack Busy
1862
NN_clrssbsy
,
// Clear Shadow Stack Busy Flag
1863
NN_endbr64
,
// Terminate an Indirect Branch in 64-bit Mode
1864
NN_endbr32
,
// Terminate an Indirect Branch in 32-bit and Compatibility Mode
1865
// Undefined Instruction
1866
NN_ud0
,
// Undefined Instruction
1867
NN_ud1
,
// Undefined Instruction
1868
// Enqueue Stores
1869
NN_enqcmd
,
// Enqueue Command
1870
NN_enqcmds
,
// Enqueue Command Supervisor
1871
// AMD Zen2
1872
NN_mcommit
,
// Commit Stores to Memory
1873
NN_rdpru
,
// Read Processor Register
1874
// Intel Tremont instructions
1875
NN_cldemote
,
// Cache Line Demote
1876
NN_enclv
,
// Execute an Enclave VMM Function of Specified Leaf Number
1877
// Direct Stores
1878
NN_movdiri
,
// Move Doubleword as Direct Store
1879
NN_movdir64b
,
// Move 64 Bytes as Direct Store
1880
// Intel WAITPKG instructions
1881
NN_tpause
,
// Timed PAUSE
1882
NN_umonitor
,
// User Level Set Up Monitor Address
1883
NN_umwait
,
// User Level Monitor Wait
1884
// Intel Sapphire Rapids instructions
1885
NN_serialize
,
// Serialize Instruction Execution
1886
// Intel TSX
1887
NN_xresldtrk
,
// Resume Tracking Load Addresses
1888
NN_xsusldtrk
,
// Suspend Tracking Load Addresses
1889
// Intel Affine Transformation instructions
1890
NN_gf2p8mulb
,
// Galois Field Multiply Bytes
1891
NN_gf2p8affineqb
,
// Computes Affine Transformation
1892
NN_gf2p8affineinvqb
,
// Computes Inverse Affine Transformation
1893
// VEX versions
1894
NN_vgf2p8mulb
,
// Galois Field Multiply Bytes
1895
NN_vgf2p8affineqb
,
// Computes Affine Transformation
1896
NN_vgf2p8affineinvqb
,
// Computes Inverse Affine Transformation
1897
// Intrinsics for Saving and Restoring the Extended Processor States (64-bits)
1898
NN_fxsave64
,
// Fast save FP context (64-bits)
1899
NN_fxrstor64
,
// Fast restore FP context (64-bits)
1900
// AVX-VNNI
1901
NN_vpdpbusd
,
// Multiply and Add Unsigned and Signed Bytes
1902
NN_vpdpbusds
,
// Multiply and Add Unsigned and Signed Bytes With Saturation
1903
NN_vpdpwssd
,
// Multiply and Add Signed Word Integers
1904
NN_vpdpwssds
,
// Multiply and Add Signed Word Integers With Saturation
1905
// AVX512-VBMI2
1906
NN_vpcompressb
,
// Store Sparse Packed Byte Integer Values Into Dense Memory/Register
1907
NN_vpcompressw
,
// Store Sparse Packed Word Integer Values Into Dense Memory/Register
1908
NN_vpexpandb
,
// Expand Byte Values
1909
NN_vpexpandw
,
// Expand Word Values
1910
NN_vpshldw
,
// Concatenate and Shift Packed Data Left Logical
1911
NN_vpshldd
,
// Concatenate and Shift Packed Data Left Logical
1912
NN_vpshldq
,
// Concatenate and Shift Packed Data Left Logical
1913
NN_vpshldvw
,
// Concatenate and Variable Shift Packed Data Left Logical
1914
NN_vpshldvd
,
// Concatenate and Variable Shift Packed Data Left Logical
1915
NN_vpshldvq
,
// Concatenate and Variable Shift Packed Data Left Logical
1916
NN_vpshrdw
,
// Concatenate and Shift Packed Data Right Logical
1917
NN_vpshrdd
,
// Concatenate and Shift Packed Data Right Logical
1918
NN_vpshrdq
,
// Concatenate and Shift Packed Data Right Logical
1919
NN_vpshrdvw
,
// Concatenate and Variable Shift Packed Data Right Logical
1920
NN_vpshrdvd
,
// Concatenate and Variable Shift Packed Data Right Logical
1921
NN_vpshrdvq
,
// Concatenate and Variable Shift Packed Data Right Logical
1922
// AVX512-BITALG
1923
NN_vpopcntb
,
// Return the Count of Number of Bits Set to 1 in BYTE
1924
NN_vpopcntw
,
// Return the Count of Number of Bits Set to 1 in WORD
1925
NN_vpshufbitqmb
,
// Shuffle Bits From Quadword Elements Using Byte Indexes Into Mask
1926
// AVX512-VP2INTERSECT
1927
NN_vp2intersectd
,
// Compute Intersection Between DWORDS to aPair of Mask Registers
1928
NN_vp2intersectq
,
// Compute Intersection Between QUADWORDS to aPair of Mask Registers
1929
// AVX512-BF16
1930
NN_vcvtne2ps2bf16
,
// Convert Two Packed Single Data to One Packed BF16 Data
1931
NN_vcvtneps2bf16
,
// Convert Packed Single Data to Packed BF16 Data
1932
NN_vdpbf16ps
,
// Dot Product of BF16 Pairs Accumulated Into Packed Single Precision
1933
// AVX512-FP16
1934
NN_vaddph
,
// Add Packed FP16 Values
1935
NN_vcmpph
,
// Compare Packed FP16 Values
1936
NN_vcvtdq2ph
,
// Convert Packed Signed Doubleword Integers to Packed FP16 Values
1937
NN_vcvtpd2ph
,
// Convert Packed Double Precision FP Values to Packed FP16 Values
1938
NN_vcvtph2dq
,
// Convert Packed FP16 Values to Signed Doubleword Integers
1939
NN_vcvtph2pd
,
// Convert Packed FP16 Values to FP64 Values
1940
NN_vcvtph2psx
,
// Convert Packed FP16 Values to Single Precision Floating-Point Values
1941
NN_vcvtph2qq
,
// Convert Packed FP16 Values to Signed Quadword Integer Values
1942
NN_vcvtph2udq
,
// Convert Packed FP16 Values to Unsigned Doubleword Integers
1943
NN_vcvtph2uqq
,
// Convert Packed FP16 Values to Unsigned Quadword Integers
1944
NN_vcvtph2uw
,
// Convert Packed FP16 Values to Unsigned Word Integers
1945
NN_vcvtph2w
,
// Convert Packed FP16 Values to Signed Word Integers
1946
NN_vcvtps2phx
,
// Convert Packed Single Precision Floating-Point Values to Packed FP16 Values
1947
NN_vcvtqq2ph
,
// Convert Packed Signed Quadword Integers to Packed FP16 Values
1948
NN_vcvttph2dq
,
// Convert with Truncation Packed FP16 Values to Signed Doubleword Integers
1949
NN_vcvttph2qq
,
// Convert with Truncation Packed FP16 Values to Signed Quadword Integers
1950
NN_vcvttph2udq
,
// Convert with Truncation Packed FP16 Values to Unsigned Doubleword Integers
1951
NN_vcvttph2uqq
,
// Convert with Truncation Packed FP16 Values to Unsigned Quadword Integers
1952
NN_vcvttph2uw
,
// Convert Packed FP16 Values to Unsigned Word Integers
1953
NN_vcvttph2w
,
// Convert Packed FP16 Values to Signed Word Integers
1954
NN_vcvtudq2ph
,
// Convert Packed Unsigned Doubleword Integers to Packed FP16 Values
1955
NN_vcvtuqq2ph
,
// Convert Packed Unsigned Quadword Integers to Packed FP16 Values
1956
NN_vcvtuw2ph
,
// Convert Packed Unsigned Word Integers to FP16 Values
1957
NN_vcvtw2ph
,
// Convert Packed Signed Word Integers to FP16 Values
1958
NN_vdivph
,
// Divide Packed FP16 Values
1959
NN_vfcmaddcph
,
// Complex Multiply and Accumulate FP16 Values
1960
NN_vfcmulcph
,
// Complex Multiply FP16 Values
1961
NN_vfmadd132ph
,
// Fused Multiply-Add of Packed FP16 Values
1962
NN_vfmadd213ph
,
// Fused Multiply-Add of Packed FP16 Values
1963
NN_vfmadd231ph
,
// Fused Multiply-Add of Packed FP16 Values
1964
NN_vfmaddcph
,
// Complex Multiply and Accumulate FP16 Values
1965
NN_vfmaddsub132ph
,
// Fused Multiply-Alternating Add/Subtract of Packed FP16 Values
1966
NN_vfmaddsub213ph
,
// Fused Multiply-Alternating Add/Subtract of Packed FP16 Values
1967
NN_vfmaddsub231ph
,
// Fused Multiply-Alternating Add/Subtract of Packed FP16 Values
1968
NN_vfmsub132ph
,
// Fused Multiply-Subtract of Packed FP16 Values
1969
NN_vfmsub213ph
,
// Fused Multiply-Subtract of Packed FP16 Values
1970
NN_vfmsub231ph
,
// Fused Multiply-Subtract of Packed FP16 Values
1971
NN_vfmsubadd132ph
,
// Fused Multiply-Alternating Subtract/Add of Packed FP16 Values
1972
NN_vfmsubadd213ph
,
// Fused Multiply-Alternating Subtract/Add of Packed FP16 Values
1973
NN_vfmsubadd231ph
,
// Fused Multiply-Alternating Subtract/Add of Packed FP16 Values
1974
NN_vfmulcph
,
// Complex Multiply FP16 Values
1975
NN_vfnmadd132ph
,
// Fused Multiply-Add of Packed FP16 Values
1976
NN_vfnmadd213ph
,
// Fused Multiply-Add of Packed FP16 Values
1977
NN_vfnmadd231ph
,
// Fused Multiply-Add of Packed FP16 Values
1978
NN_vfnmsub132ph
,
// Fused Multiply-Subtract of Packed FP16 Values
1979
NN_vfnmsub213ph
,
// Fused Multiply-Subtract of Packed FP16 Values
1980
NN_vfnmsub231ph
,
// Fused Multiply-Subtract of Packed FP16 Values
1981
NN_vfpclassph
,
// Test Types of Packed FP16 Values
1982
NN_vgetexpph
,
// Fused Multiply-Subtract of Packed FP16 Values
1983
NN_vgetmantph
,
// Extract FP16 Vector of Normalized Mantissas from FP16 Vector
1984
NN_vmaxph
,
// Return Maximum of Packed FP16 Values
1985
NN_vminph
,
// Return Minimum of Packed FP16 Values
1986
NN_vmulph
,
// Multiply Packed FP16 Values
1987
NN_vrcpph
,
// Compute Reciprocals of Packed FP16 Values
1988
NN_vreduceph
,
// Perform Reduction Transformation on Packed FP16 Values
1989
NN_vrndscaleph
,
// Round Packed FP16 Values to Include a Given Number of Fraction Bits
1990
NN_vrsqrtph
,
// Compute Reciprocals of Square Roots of Packed FP16 Values
1991
NN_vscalefph
,
// Scale Packed FP16 Values with FP16 Values
1992
NN_vsqrtph
,
// Compute Square Root of Packed FP16 Values
1993
NN_vsubph
,
// Subtract Packed FP16 Values
1994
// AVX512-FP16-128N
1995
NN_vmovw
,
// Move Word
1996
// AVX512-FP16-SCALAR
1997
NN_vaddsh
,
// Add Scalar FP16 Values
1998
NN_vcmpsh
,
// Compare Scalar FP16 Values
1999
NN_vcomish
,
// Compare Scalar Ordered FP16 Values and Set EFLAGS
2000
NN_vcvtsd2sh
,
// Convert Low FP64 Value to an FP16 Value
2001
NN_vcvtsh2sd
,
// Convert Low FP16 Value to an FP64 Value
2002
NN_vcvtsh2si
,
// Convert Low FP16 Value to Signed Integer
2003
NN_vcvtsh2ss
,
// Convert Low FP16 Value to FP32 Value
2004
NN_vcvtsh2usi
,
// Convert Low FP16 Value to Unsigned Integer
2005
NN_vcvtsi2sh
,
// Convert a Signed Doubleword/Quadword Integer to an FP16 Value
2006
NN_vcvtss2sh
,
// Convert Low FP32 Value to an FP16 Value
2007
NN_vcvttsh2si
,
// Convert with Truncation Low FP16 Value to a Signed Integer
2008
NN_vcvttsh2usi
,
// Convert with Truncation Low FP16 Value to an Unsigned Integer
2009
NN_vcvtusi2sh
,
// Convert Unsigned Doubleword Integer to an FP16 Value
2010
NN_vdivsh
,
// Divide Scalar FP16 Values
2011
NN_vfcmaddcsh
,
// Complex Multiply and Accumulate Scalar FP16 Values
2012
NN_vfcmulcsh
,
// Complex Multiply Scalar FP16 Values
2013
NN_vfmadd132sh
,
// Fused Multiply-Add of Scalar FP16 Values
2014
NN_vfmadd213sh
,
// Fused Multiply-Add of Scalar FP16 Values
2015
NN_vfmadd231sh
,
// Fused Multiply-Add of Scalar FP16 Values
2016
NN_vfmaddcsh
,
// Complex Multiply and Accumulate Scalar FP16 Values
2017
NN_vfmsub132sh
,
// Fused Multiply-Subtract of Scalar FP16 Values
2018
NN_vfmsub213sh
,
// Fused Multiply-Subtract of Scalar FP16 Values
2019
NN_vfmsub231sh
,
// Fused Multiply-Subtract of Scalar FP16 Values
2020
NN_vfmulcsh
,
// Complex Multiply Scalar FP16 Values
2021
NN_vfnmadd132sh
,
// Fused Multiply-Add of Scalar FP16 Values
2022
NN_vfnmadd213sh
,
// Fused Multiply-Add of Scalar FP16 Values
2023
NN_vfnmadd231sh
,
// Fused Multiply-Add of Scalar FP16 Values
2024
NN_vfnmsub132sh
,
// Fused Multiply-Subtract of Scalar FP16 Values
2025
NN_vfnmsub213sh
,
// Fused Multiply-Subtract of Scalar FP16 Values
2026
NN_vfnmsub231sh
,
// Fused Multiply-Subtract of Scalar FP16 Values
2027
NN_vfpclasssh
,
// Test Types of Packed FP16 Values
2028
NN_vgetexpsh
,
// Convert Exponents of Packed FP16 Values to FP16 Values
2029
NN_vgetmantsh
,
// Extract FP16 Vector of Normalized Mantissas from FP16 Vector
2030
NN_vmaxsh
,
// Return Maximum of Scalar FP16 Values
2031
NN_vminsh
,
// Return Minimum Scalar FP16 Value
2032
NN_vmovsh
,
// Move Scalar FP16 Value
2033
NN_vmulsh
,
// Multiply Scalar FP16 Values
2034
NN_vrcpsh
,
// Compute Reciprocals of Packed FP16 Values
2035
NN_vreducesh
,
// Perform Reduction Transformation on Packed FP16 Values
2036
NN_vrndscalesh
,
// Round Packed FP16 Values to Include a Given Number of Fraction Bits
2037
NN_vrsqrtsh
,
// Compute Reciprocals of Square Roots of Packed FP16 Values
2038
NN_vscalefsh
,
// Scale Packed FP16 Values with FP16 Values
2039
NN_vsqrtsh
,
// Compute Square Root of Scalar FP16 Value
2040
NN_vsubsh
,
// Subtract Scalar FP16 Value
2041
NN_vucomish
,
// Unordered Compare Scalar FP16 Values and Set EFLAGS
2042
// User Interrupt (UINTR)
2043
NN_clui
,
// Clear User Interrupt Flag
2044
NN_stui
,
// Set User Interrupt Flag
2045
NN_testui
,
// Determine User Interrupt Flag
2046
NN_uiret
,
// User-Interrupt Return
2047
NN_senduipi
,
// Send User Interprocessor Interrupts
2048
// Prediction history reset (HRESET)
2049
NN_hreset
,
// History Reset
2050
// Intel Xeon 6 Granite Rapids microarch PREFETCHI
2051
NN_prefetchit0
,
// Prefetch code into all levels of the cache hierarchy
2052
NN_prefetchit1
,
// Prefetch code into all but the first-level of the cache hierarchy
2053
// VIA PadLock vendor extension
2054
NN_montmul
,
// Montgomery Multiplication
2055
NN_xsha1
,
// Hash Function SHA-1
2056
NN_xsha256
,
// Hash Function SHA-256
2057
NN_xstore
,
// Store Available Random Bytes
2058
NN_xcryptecb
,
// AES Electronic Code Book
2059
NN_xcryptcbc
,
// AES Cipher Block Chaining
2060
NN_xcryptctr
,
// AES Counter Mode
2061
NN_xcryptcfb
,
// AES Cipher Feedback Mode
2062
NN_xcryptofb
,
// AES Output Feedback Mode
2063
NN_last
,
2064
};
2065
/*
2066
* Interactive disassembler (IDA).
2067
* Copyright (c) 1990-2026 Hex-Rays
2068
* ALL RIGHTS RESERVED.
2069
*
2070
*/
2071
enum
2072
{
2073
I5_null
= 0,
// Unknown Operation
2074
//
2075
// Intel 8080-8085 instructions
2076
//
2077
I5_aci
,
2078
I5_adc
,
Z80_adc
=
I5_adc
,
2079
I5_add
,
Z80_add
=
I5_add
,
2080
I5_adi
,
2081
I5_ana
,
2082
I5_ani
,
2083
I5_call
,
2084
I5_cnz
,
2085
I5_cz
,
2086
I5_cnc
,
2087
I5_cc
,
2088
I5_cpo
,
2089
I5_cpe
,
2090
I5_cp
,
2091
I5_cm
,
2092
I5_cmc
,
2093
I5_cmp
,
2094
I5_cpi
,
2095
I5_cma
,
2096
I5_daa
,
2097
I5_dad
,
2098
I5_dcr
,
2099
I5_dcx
,
2100
I5_di
,
Z80_di
=
I5_di
,
2101
I5_ei
,
Z80_ei
=
I5_ei
,
2102
I5_halt
,
2103
I5_in
,
Z80_in
=
I5_in
,
2104
I5_inr
,
2105
I5_inx
,
2106
I5_jmp
,
2107
I5_jnz
,
2108
I5_jz
,
2109
I5_jnc
,
2110
I5_jc
,
2111
I5_jpo
,
2112
I5_jpe
,
2113
I5_jp
,
2114
I5_jm
,
2115
I5_lda
,
2116
I5_ldax
,
2117
I5_lhld
,
2118
I5_lxi
,
2119
I5_mov
,
2120
I5_mvi
,
2121
I5_nop
,
2122
I5_ora
,
2123
I5_ori
,
2124
I5_out
,
Z80_out
=
I5_out
,
2125
I5_pchl
,
2126
I5_pop
,
Z80_pop
=
I5_pop
,
2127
I5_push
,
Z80_push
=
I5_push
,
2128
I5_ret
,
2129
I5_rnz
,
2130
I5_rz
,
2131
I5_rnc
,
2132
I5_rc
,
2133
I5_rpo
,
2134
I5_rpe
,
2135
I5_rp
,
2136
I5_rm
,
2137
I5_ral
,
2138
I5_rlc
,
2139
I5_rar
,
2140
I5_rrc
,
2141
I5_rst
,
2142
I5_sbb
,
2143
I5_sbi
,
2144
I5_stc
,
2145
I5_sphl
,
2146
I5_sta
,
2147
I5_stax
,
2148
I5_shld
,
2149
I5_sui
,
2150
I5_sub
,
Z80_sub
=
I5_sub
,
2151
I5_xra
,
2152
I5_xri
,
2153
I5_xchg
,
2154
I5_xthl
,
2155
I5_rim
,
2156
I5_sim
,
2157
//
2158
// Z80 extensions
2159
//
2160
Z80_and
,
2161
Z80_bit
,
2162
Z80_call
,
2163
Z80_ccf
,
2164
Z80_cp
,
2165
Z80_cpd
,
2166
Z80_cpdr
,
2167
Z80_cpi
,
2168
Z80_cpir
,
2169
Z80_cpl
,
2170
Z80_dec
,
2171
Z80_djnz
,
2172
Z80_ex
,
2173
Z80_exx
,
2174
Z80_halt
,
2175
Z80_im
,
2176
Z80_inc
,
2177
Z80_ind
,
2178
Z80_indr
,
2179
Z80_ini
,
2180
Z80_inir
,
2181
Z80_jp
,
2182
Z80_jr
,
2183
Z80_ld
,
2184
Z80_ldd
,
2185
Z80_lddr
,
2186
Z80_ldi
,
2187
Z80_ldir
,
2188
Z80_neg
,
2189
Z80_or
,
2190
Z80_otdr
,
2191
Z80_otir
,
2192
Z80_outd
,
2193
Z80_outi
,
2194
Z80_res
,
2195
Z80_ret
,
2196
Z80_reti
,
2197
Z80_retn
,
2198
Z80_rl
,
2199
Z80_rla
,
2200
Z80_rlc
,
2201
Z80_rlca
,
2202
Z80_rld
,
2203
Z80_rr
,
2204
Z80_rra
,
2205
Z80_rrc
,
2206
Z80_rrca
,
2207
Z80_rrd
,
2208
Z80_scf
,
2209
Z80_sbc
,
2210
Z80_set
,
2211
Z80_sla
,
2212
Z80_sra
,
2213
Z80_srl
,
2214
Z80_xor
,
2215
Z80_inp
,
// undocumented
2216
Z80_outp
,
// undocumented
2217
Z80_srr
,
// undocumented
2218
//
2219
// HD64180 extensions
2220
//
2221
HD_in0
,
Z80_in0
=
HD_in0
,
2222
HD_mlt
,
Z80_mlt
=
HD_mlt
,
2223
HD_otim
,
Z80_otim
=
HD_otim
,
2224
HD_otimr
,
Z80_otimr
=
HD_otimr
,
2225
HD_otdm
,
Z80_otdm
=
HD_otdm
,
2226
HD_otdmr
,
Z80_otdmr
=
HD_otdmr
,
2227
HD_out0
,
Z80_out0
=
HD_out0
,
2228
HD_slp
,
Z80_slp
=
HD_slp
,
2229
HD_tst
,
Z80_tst
=
HD_tst
,
2230
HD_tstio
,
Z80_tstio
=
HD_tstio
,
2231
//
2232
// A80 special instructions
2233
//
2234
A80_lbcd
,
2235
A80_lded
,
2236
A80_lspd
,
2237
A80_lixd
,
2238
A80_liyd
,
2239
A80_sbcd
,
2240
A80_sded
,
2241
A80_sspd
,
2242
A80_sixd
,
2243
A80_siyd
,
2244
A80_xtix
,
2245
A80_xtiy
,
2246
A80_spix
,
2247
A80_spiy
,
2248
A80_pcix
,
2249
A80_pciy
,
2250
A80_mvra
,
2251
A80_mvia
,
2252
A80_mvar
,
2253
A80_mvai
,
2254
A80_addix
,
2255
A80_addiy
,
2256
A80_addc
,
2257
A80_addcix
,
2258
A80_addciy
,
2259
A80_subc
,
2260
A80_subcix
,
2261
A80_subciy
,
2262
A80_jrc
,
2263
A80_jrnc
,
2264
A80_jrz
,
2265
A80_jrnz
,
2266
A80_cmpi
,
2267
A80_cmpd
,
2268
A80_im0
,
2269
A80_im1
,
2270
A80_im2
,
2271
A80_otd
,
2272
A80_oti
,
2273
// Intel 8085 undocumented instructions
2274
// (info from http://oak.oakland.edu/pub/cpm/maclib/i8085.lib)
2275
I5_dsub
,
// (HL) <- (HL)-(BC), affects all flags
2276
I5_arhl
,
// SHIFT HL RIGHT ONE BIT, (H7 IS DUPLICATED, L0 IS SHIFTED INTO CY)
2277
I5_rdel
,
// ROTATE DE LEFT ONE BIT THRU CY, (E0 RECEIVES CY, CY RECEIVES D7)
2278
I5_ldhi
,
// (DE) <- (HL)+arg
2279
I5_ldsi
,
// (DE) <- (SP)+arg
2280
I5_shlx
,
// ((DE)) <- (HL)
2281
I5_lhlx
,
// (HL) <- ((DE))
2282
I5_rstv
,
// RESTART 40H ON V (OVERFLOW)
2283
I5_jx5
,
// JUMP IF X5 SET
2284
I5_jnx5
,
// JUMP IF NOT X5 SET
2285
// Z380 instructions
2286
Z80_cplw
,
// Complement HL register
2287
Z80_swap
,
// Swap upper register word with lower register word
2288
Z80_inw
,
// Input word
2289
Z80_outw
,
// Output word
2290
Z80_ldw
,
// Load word
2291
Z80_addw
,
// Add word
2292
Z80_subw
,
// Subtract word
2293
Z80_adcw
,
// Add with carry word
2294
Z80_sbcw
,
// Subtract with borrow word
2295
Z80_andw
,
// AND logical word
2296
Z80_xorw
,
// XOR logical word
2297
Z80_orw
,
// OR logical word
2298
Z80_cpw
,
// Compare word
2299
Z80_ddir
,
// Decoder directive
2300
Z80_calr
,
// Call relative
2301
Z80_ldctl
,
// Load control register
2302
Z80_mtest
,
// Mode test
2303
Z80_exxx
,
// Exchange Index Register with Alternate Bank
2304
Z80_exxy
,
// Exchange Index Register with Alternate Bank
2305
Z80_exall
,
// Exchange all registers with Alternate Bank
2306
Z80_setc
,
// Set control bit
2307
Z80_resc
,
// Reset control bit
2308
Z80_rlcw
,
// Rotate Left Circular Word
2309
Z80_rrcw
,
// Rotate Right Circular Word
2310
Z80_rlw
,
// Rotate Left Word
2311
Z80_rrw
,
// Rotate Right Word
2312
Z80_slaw
,
// Shift Left Arithmetic Word
2313
Z80_sraw
,
// Shift Right Arithmetic Word
2314
Z80_srlw
,
// Shift Right Logical Word
2315
Z80_multw
,
// Multiply Word
2316
Z80_multuw
,
// Multiply Word Unsigned
2317
Z80_divuw
,
// Divide unsigned
2318
Z80_outaw
,
// Output word direct to port address
2319
Z80_inaw
,
// Input word direct from port address
2320
Z80_outa
,
// Output byte direct to port address
2321
Z80_ina
,
// Input byte direct from port address
2322
Z80_negw
,
// Negate word
2323
Z80_exts
,
// Extend byte sign
2324
Z80_extsw
,
// Extend word sign
2325
Z80_btest
,
// Bank test
2326
Z80_ldiw
,
// Load and increment (word)
2327
Z80_ldirw
,
// Load and increment, repeat (word)
2328
Z80_lddw
,
// Load and decrement (word)
2329
Z80_lddrw
,
// Load and decrement, repeat (word)
2330
Z80_iniw
,
// Input and increment (word)
2331
Z80_inirw
,
// Input and increment, repeat (word)
2332
Z80_indw
,
// Input and decrement (word)
2333
Z80_indrw
,
// Input and decrement, repeat (word)
2334
Z80_outiw
,
// Output and increment (word)
2335
Z80_otirw
,
// Output and increment, repeat (word)
2336
Z80_outdw
,
// Output and decrement (word)
2337
Z80_otdrw
,
// Output and decrement, repeat (word)
2338
// Gameboy instructions
2339
GB_ldh
,
2340
GB_stop
,
2341
I5_last
,
2342
};
2343
/*
2344
* Interactive disassembler (IDA).
2345
* Copyright (c) 1990-2026 Hex-Rays
2346
* ALL RIGHTS RESERVED.
2347
*
2348
*/
2349
enum
2350
{
2351
I860_null
= 0,
// Unknown Operation
2352
//
2353
// Intel 860 XP instructions
2354
//
2355
I860_adds
,
2356
I860_addu
,
2357
I860_and
,
2358
I860_andh
,
2359
I860_andnot
,
2360
I860_andnoth
,
2361
I860_bc
,
2362
I860_bc_t
,
2363
I860_bla
,
2364
I860_bnc
,
2365
I860_bnc_t
,
2366
I860_br
,
2367
I860_bri
,
2368
I860_bte
,
2369
I860_btne
,
2370
I860_call
,
2371
I860_calli
,
2372
I860_fadd
,
2373
I860_faddp
,
2374
I860_faddz
,
2375
I860_famov
,
2376
I860_fiadd
,
2377
I860_fisub
,
2378
I860_fix
,
2379
I860_fld
,
2380
I860_flush
,
2381
I860_fmlow_dd
,
2382
I860_fmul
,
2383
I860_form
,
2384
I860_frcp
,
2385
I860_frsqr
,
2386
I860_fst
,
2387
I860_fsub
,
2388
I860_ftrunc
,
2389
I860_fxfr
,
2390
I860_fzchkl
,
2391
I860_fzchks
,
2392
I860_introvr
,
2393
I860_ixfr
,
2394
I860_ld_c
,
2395
I860_ld
,
2396
I860_ldint
,
2397
I860_ldio
,
2398
I860_lock
,
2399
I860_or
,
2400
I860_orh
,
2401
I860_pfadd
,
2402
I860_pfaddp
,
2403
I860_pfaddz
,
2404
I860_pfamov
,
2405
I860_pfeq
,
2406
I860_pfgt
,
2407
I860_pfiadd
,
2408
I860_pfisub
,
2409
I860_pfix
,
2410
I860_pfld
,
2411
I860_pfle
,
2412
I860_pfmul
,
2413
I860_pfmul3_dd
,
2414
I860_pform
,
2415
I860_pfsub
,
2416
I860_pftrunc
,
2417
I860_pfzchkl
,
2418
I860_pfzchks
,
2419
I860_pst_d
,
2420
I860_scyc
,
2421
I860_shl
,
2422
I860_shr
,
2423
I860_shra
,
2424
I860_shrd
,
2425
I860_st_c
,
2426
I860_st
,
2427
I860_stio
,
2428
I860_subs
,
2429
I860_subu
,
2430
I860_trap
,
2431
I860_unlock
,
2432
I860_xor
,
2433
I860_xorh
,
2434
//
2435
// iNTEL 860 XP Pipelined F-P instructions
2436
//
2437
I860_r2p1
,
2438
I860_r2pt
,
2439
I860_r2ap1
,
2440
I860_r2apt
,
2441
I860_i2p1
,
2442
I860_i2pt
,
2443
I860_i2ap1
,
2444
I860_i2apt
,
2445
I860_rat1p2
,
2446
I860_m12apm
,
2447
I860_ra1p2
,
2448
I860_m12ttpa
,
2449
I860_iat1p2
,
2450
I860_m12tpm
,
2451
I860_ia1p2
,
2452
I860_m12tpa
,
2453
I860_r2s1
,
2454
I860_r2st
,
2455
I860_r2as1
,
2456
I860_r2ast
,
2457
I860_i2s1
,
2458
I860_i2st
,
2459
I860_i2as1
,
2460
I860_i2ast
,
2461
I860_rat1s2
,
2462
I860_m12asm
,
2463
I860_ra1s2
,
2464
I860_m12ttsa
,
2465
I860_iat1s2
,
2466
I860_m12tsm
,
2467
I860_ia1s2
,
2468
I860_m12tsa
,
2469
I860_mr2p1
,
2470
I860_mr2pt
,
2471
I860_mr2mp1
,
2472
I860_mr2mpt
,
2473
I860_mi2p1
,
2474
I860_mi2pt
,
2475
I860_mi2mp1
,
2476
I860_mi2mpt
,
2477
I860_mrmt1p2
,
2478
I860_mm12mpm
,
2479
I860_mrm1p2
,
2480
I860_mm12ttpm
,
2481
I860_mimt1p2
,
2482
I860_mm12tpm
,
2483
I860_mim1p2
,
2484
I860_mr2s1
,
2485
I860_mr2st
,
2486
I860_mr2ms1
,
2487
I860_mr2mst
,
2488
I860_mi2s1
,
2489
I860_mi2st
,
2490
I860_mi2ms1
,
2491
I860_mi2mst
,
2492
I860_mrmt1s2
,
2493
I860_mm12msm
,
2494
I860_mrm1s2
,
2495
I860_mm12ttsm
,
2496
I860_mimt1s2
,
2497
I860_mm12tsm
,
2498
I860_mim1s2
,
2499
I860_last
,
2500
};
2501
/*
2502
* Interactive disassembler (IDA).
2503
* Copyright (c) 1990-2026 Hex-Rays
2504
* ALL RIGHTS RESERVED.
2505
*
2506
*/
2507
enum
2508
{
2509
I51_null
= 0,
// Unknown Operation
2510
I51_acall
,
// Absolute Call
2511
I51_add
,
// Add Second Operand to Acc
2512
I51_addc
,
// Add Second Operand to Acc with carry
2513
I51_ajmp
,
// Absolute Jump
2514
I51_anl
,
// Logical AND (op1 &= op2)
2515
I51_cjne
,
// Compare Operands and JNE
2516
I51_clr
,
// Clear Operand (0)
2517
I51_cpl
,
// Complement Operand
2518
I51_da
,
// Decimal Adjust Accumulator
2519
I51_dec
,
// Decrement Operand
2520
I51_div
,
// Divide Acc by B
2521
I51_djnz
,
// Decrement Operand and JNZ
2522
I51_inc
,
// Increment Operand
2523
I51_jb
,
// Jump if Bit is set
2524
I51_jbc
,
// Jump if Bit is set & clear Bit
2525
I51_jc
,
// Jump if Carry is set
2526
I51_jmp
,
// Jump indirect relative to Data Pointer
2527
I51_jnb
,
// Jump if Bit is clear
2528
I51_jnc
,
// Jump if Carry is clear
2529
I51_jnz
,
// Jump if Acc is not zero
2530
I51_jz
,
// Jump if Acc is zero
2531
I51_lcall
,
// Long Subroutine Call
2532
I51_ljmp
,
// Long Jump
2533
I51_mov
,
// Move (Op1 <- Op2)
2534
I51_movc
,
// Move code byte relative to second op to Acc
2535
I51_movx
,
// Move from/to external RAM
2536
I51_mul
,
// Multiply Acc by B
2537
I51_nop
,
// No operation
2538
I51_orl
,
// Logical OR (op1 |= op2)
2539
I51_pop
,
// Pop from Stack and put in Direct RAM
2540
I51_push
,
// Push from Direct RAM to Stack
2541
I51_ret
,
// Return from subroutine
2542
I51_reti
,
// Return from Interrupt
2543
I51_rl
,
// Rotate Acc left
2544
I51_rlc
,
// Rotate Acc left through Carry
2545
I51_rr
,
// Rotate Acc right
2546
I51_rrc
,
// Rotate Acc right through Carry
2547
I51_setb
,
// Set Direct Bit
2548
I51_sjmp
,
// Short jump
2549
I51_subb
,
// Subtract Second Operand from Acc with Borrow
2550
I51_swap
,
// Swap nibbles of Acc
2551
I51_xch
,
// Exchange Operands
2552
I51_xchd
,
// Exchange Digit in Acc with Indirect RAM
2553
I51_xrl
,
// Exclusive OR (op1 ^= op2)
2554
// 80251 instructions
2555
I51_jsle
,
// Jump if less than or equal (signed)
2556
I51_jsg
,
// Jump if greater than (signed)
2557
I51_jle
,
// Jump if less than or equal
2558
I51_jg
,
// Jump if greater than
2559
I51_jsl
,
// Jump if less than (signed)
2560
I51_jsge
,
// Jump if greater than or equal (signed)
2561
I51_je
,
// Jump if equal
2562
I51_jne
,
// Jump if not equal
2563
I51_trap
,
// Trap
2564
I51_ejmp
,
// Extended jump
2565
I51_ecall
,
// Extended call
2566
I51_eret
,
// Extended return
2567
I51_movh
,
// Move immediate 16-bit data to the high word of a dword (double-word) register
2568
I51_movz
,
// Move 8-bit register to 16-bit register with zero extension
2569
I51_movs
,
// Move 8-bit register to 16-bit register with sign extension
2570
I51_srl
,
// Shift logical right by 1 bit
2571
I51_sra
,
// Shift arithmetic right by 1 bit
2572
I51_sll
,
// Shift logical left by 1 bit
2573
I51_sub
,
// Subtract
2574
I51_cmp
,
// Compare
2575
// 51mx instructions
2576
I51_emov
,
// Move (A <- @PRi+disp) or (@PRi+disp <- A)
2577
I51_last
,
2578
};
2579
/*
2580
* Interactive disassembler (IDA).
2581
* Copyright (c) 1990-2026 Hex-Rays
2582
* ALL RIGHTS RESERVED.
2583
*
2584
*/
2585
enum
2586
{
2587
TMS_null
= 0,
// Unknown Operation
2588
TMS_abs
,
// Absolute value of Acc
2589
TMS_adcb
,
// Add ACCB to Acc With Carry
2590
TMS_add
,
// Add to Acc
2591
TMS_addb
,
// Add ACCB to Acc
2592
TMS_addc
,
// Add to Acc With Carry
2593
TMS_adds
,
// Add to Acc With Sign-Extension Suppressed
2594
TMS_addt
,
// Add to Acc With Shift Specified by TREG1
2595
TMS_adrk
,
// Add to Aux Register With Short Immediate
2596
TMS_and
,
// AND With Acc
2597
TMS_andb
,
// AND ACCD With Acc
2598
TMS_apac
,
// Add P Register to Acc
2599
TMS_apl
,
// AND Data Memory Value With DBMR
2600
TMS_apl2
,
// AND Data Memory Value With Long Constant
2601
TMS_b
,
// Branch Unconditionally
2602
TMS_bacc
,
// Branch to Location (Acc)
2603
TMS_baccd
,
// Branch to Location (Acc) Delayed
2604
TMS_banz
,
// Branch on Aux Register Not Zero
2605
TMS_banzd
,
// Branch on Aux Register Not Zero Delayed
2606
TMS_bcnd
,
// Branch Conditionally
2607
TMS_bcndd
,
// Branch Conditionally Delayed
2608
TMS_bd
,
// Branch Unconditionally Delayed
2609
TMS_bit
,
// Test Bit
2610
TMS_bitt
,
// Test Bit Specified by TREG2
2611
TMS_bldd
,
// Block Move From Data Memory to Data Memory
2612
TMS_bldp
,
// Block Move From Data Memory to Program Memory
2613
TMS_blpd
,
// Block Move From Program Memory to Data Memory
2614
TMS_bsar
,
// Barrel Shift
2615
TMS_cala
,
// Call Subroutine at (Acc)
2616
TMS_calad
,
// Call Subroutine at (Acc) Delayed
2617
TMS_call
,
// Call Unconditionally
2618
TMS_calld
,
// Call Unconditionally Delayed
2619
TMS_cc
,
// Call Conditionally
2620
TMS_ccd
,
// Call Conditionally Delayed
2621
TMS_clrc
,
// Clear Control Bit
2622
TMS_cmpl
,
// Complement Acc
2623
TMS_cmpr
,
// Compare Aux Register With ARCR
2624
TMS_cpl
,
// Compare DBMR With Data Value
2625
TMS_cpl2
,
// Compare Long Immediate With Data Value
2626
TMS_crgt
,
// Test for Acc Greater Than ACCB
2627
TMS_crlt
,
// Test for Acc Smaller Than ACCB
2628
TMS_dmov
,
// Data Move in Data Memory
2629
TMS_estop
,
// Emulator Stop
2630
TMS_exar
,
// Exchange ACCB With Acc
2631
TMS_idle
,
// Idle Until Interrupt
2632
TMS_idle2
,
// Idle Until Interrupt - Low Power Mode
2633
TMS_in
,
// Input Data From Port
2634
TMS_intr
,
// Soft Interrupt
2635
TMS_lacb
,
// Load Acc With ACCB
2636
TMS_lacc
,
// Load Acc With Shift
2637
TMS_lacl
,
// Load Low Acc and Clear High Acc
2638
TMS_lact
,
// Load Acc With Shift Specified by TREG1
2639
TMS_lamm
,
// Load Acc With Memory-Mapped Register
2640
TMS_lar
,
// Load Aux Register
2641
TMS_ldp
,
// Load Data Memory Pointer
2642
TMS_lmmr
,
// Load Memory-Mapped Register
2643
TMS_lph
,
// Load Product High Register
2644
TMS_lst
,
// Load Status Register
2645
TMS_lt
,
// Load TREG0
2646
TMS_lta
,
// Load TREG0 and Accumulate Previous Product
2647
TMS_ltd
,
// Load TREG0,Accumulate Previous Product and Move Data
2648
TMS_ltp
,
// Load TREG0 and Store P -> Acc
2649
TMS_lts
,
// Load TREG0 and Subtract Previous Product
2650
TMS_mac
,
// Multiply and Accumulate
2651
TMS_macd
,
// Multiply and Accumulate With Data Move
2652
TMS_madd
,
// Multiply and Accumulate With Data Move and Dynamic Addressing
2653
TMS_mads
,
// Multiply and Accumulate With Dynamic Addressing
2654
TMS_mar
,
// Modify Aux Register
2655
TMS_mpy
,
// Multiply
2656
TMS_mpya
,
// Multiply and Accumulate Previous Product
2657
TMS_mpys
,
// Multiply and Subtract Previous Product
2658
TMS_mpyu
,
// Multiply Unsigned
2659
TMS_neg
,
// Negate Acc
2660
TMS_nmi
,
// Nonmaskable Interrupt
2661
TMS_nop
,
// No Operation
2662
TMS_norm
,
// Normalize Contents of Acc
2663
TMS_opl
,
// OR With DBMS
2664
TMS_opl2
,
// OR With Long Immediate
2665
TMS_or
,
// OR With Acc
2666
TMS_orb
,
// OR ACCB With Accumulator
2667
TMS_out
,
// Out Data to Port
2668
TMS_pac
,
// Load Acc <- P
2669
TMS_pop
,
// Pop Top of Stack to Low Acc
2670
TMS_popd
,
// Pop Top of Stack to Data Memory
2671
TMS_pshd
,
// Push Data Memory Value Onto Stack
2672
TMS_push
,
// Push Low Acc Onto Stack
2673
TMS_ret
,
// Return From Subroutine
2674
TMS_retc
,
// Return Conditionally
2675
TMS_retcd
,
// Return Conditionally Delayed
2676
TMS_retd
,
// Return From Subroutine Delayed
2677
TMS_rete
,
// Enable Interrupts and Return From Interrupt
2678
TMS_reti
,
// Return From Interrupt
2679
TMS_rol
,
// Rotate Acc Left
2680
TMS_rolb
,
// Rotate ACCB and Acc Left
2681
TMS_ror
,
// Rotate Acc Right
2682
TMS_rorb
,
// Rotate ACCB and Acc Right
2683
TMS_rpt
,
// Repeat Next Instruction
2684
TMS_rptb
,
// Repeat Block
2685
TMS_rptz
,
// Repeat Preceded by Clearing Acc and P
2686
TMS_sacb
,
// Store Acc in ACCB
2687
TMS_sach
,
// Store High Acc With Shift
2688
TMS_sacl
,
// Store Low Acc With Shift
2689
TMS_samm
,
// Store Acc in Memory-Mapped Register
2690
TMS_sar
,
// Store Aux Register
2691
TMS_sath
,
// Barrel Shift Acc as Specified by TREG1(4)
2692
TMS_satl
,
// Barrel Shift Acc as Specified by TREG1(3-0)
2693
TMS_sbb
,
// Subtract ACCB From Acc
2694
TMS_sbbb
,
// Subtract ACCB From Acc With Borrow
2695
TMS_sbrk
,
// Subtract From Aux Register Short Immediate
2696
TMS_setc
,
// Set Control Bit
2697
TMS_sfl
,
// Shift Acc Left
2698
TMS_sflb
,
// Shift ACCB and Acc Left
2699
TMS_sfr
,
// Shift Acc Right
2700
TMS_sfrb
,
// Shift ACCB and Acc Right
2701
TMS_smmr
,
// Store Memory-Mapped Register
2702
TMS_spac
,
// Subtract P From Acc
2703
TMS_sph
,
// Store High P Register
2704
TMS_spl
,
// Store Low P Register
2705
TMS_splk
,
// Store Parallel Long Immediate
2706
TMS_spm
,
// Store ACCB and Acc Right
2707
TMS_sqra
,
// Square and Accumulate Previous Product
2708
TMS_sqrs
,
// Square and Subtract Previous Product
2709
TMS_sst
,
// Store Status Register
2710
TMS_sub
,
// Subtract From Acc
2711
TMS_subb
,
// Subtract From Acc With Borrow
2712
TMS_subc
,
// Conditional Subtract
2713
TMS_subs
,
// Subtract From Acc With Sign-Extension Suppressed
2714
TMS_subt
,
// Subtract From Acc With Shift Specified by TREG1
2715
TMS_tblr
,
// Table Read
2716
TMS_tblw
,
// Table Write
2717
TMS_trap
,
// Software Interrupt
2718
TMS_xc
,
// Execute Conditionally
2719
TMS_xor
,
// Exclusive-OR With Acc
2720
TMS_xorb
,
// Exclusive-OR of ACCB With Acc
2721
TMS_xpl
,
// Exclusive-OR Data Memory Value
2722
TMS_xpl2
,
// Exclusive-OR Data Memory Value
2723
TMS_zalr
,
// Zero Low Acc Load High Acc With Rounding
2724
TMS_zap
,
// Zero Acc and P
2725
TMS_zpr
,
// Zero P Register
2726
//
2727
// TMS320C2x instructions
2728
//
2729
TMS2_abs
,
// Absolute value of accumulator
2730
TMS2_add
,
// Add to accumulator with shift
2731
TMS2_addc
,
// Add to accumulator with carry
2732
TMS2_addh
,
// Add to high accumulator
2733
TMS2_addk
,
// Add to accumulator short immediate
2734
TMS2_adds
,
// Add to low accumulator with sign extension suppressed
2735
TMS2_addt
,
// Add to accumulator with shift specified by T register
2736
TMS2_adlk
,
// Add to accumulator long immediate with shift
2737
TMS2_adrk
,
// Add to auxiliary register short immediate
2738
TMS2_and
,
// And with accumulator
2739
TMS2_andk
,
// And immediate with accumulator with shift
2740
TMS2_apac
,
// App P register to accumulator
2741
TMS2_b
,
// Branch unconditionally
2742
TMS2_bacc
,
// Branch to address specified by accumulator
2743
TMS2_banz
,
// Bnrach on auxiliary register not zero
2744
TMS2_bbnz
,
// Branch if tc bit != 0
2745
TMS2_bbz
,
// Branch if tc bit = 0
2746
TMS2_bc
,
// Branch on carry
2747
TMS2_bgez
,
// Branch if accumulator >= 0
2748
TMS2_bgz
,
// Branch if accumulator > 0
2749
TMS2_bioz
,
// Branch on i/o status = 0
2750
TMS2_bit
,
// Test bit
2751
TMS2_bitt
,
// Test bit specifed by T register
2752
TMS2_blez
,
// Branch if accumulator <= 0
2753
TMS2_blkd
,
// Block move from data memory to data memory
2754
TMS2_blkp
,
// Block move from program memory to data memory
2755
TMS2_blz
,
// Branch if accumulator < 0
2756
TMS2_bnc
,
// Branch on no carry
2757
TMS2_bnv
,
// Branch if no overflow
2758
TMS2_bnz
,
// Branch if accumulator != 0
2759
TMS2_bv
,
// Branch on overflow
2760
TMS2_bz
,
// Branch if accumulator = 0
2761
TMS2_cala
,
// Call subroutine indirect
2762
TMS2_call
,
// Call subroutine
2763
TMS2_cmpl
,
// Complement accumulator
2764
TMS2_cmpr
,
// Compare auxiliary register with auxiliary register ar0
2765
TMS2_cnfd
,
// Configure block as data memory
2766
TMS2_cnfp
,
// Configure block as program memory
2767
TMS2_conf
,
// Configure block as data/program memory
2768
TMS2_dint
,
// Disable interrupt
2769
TMS2_dmov
,
// Data move in data memory
2770
TMS2_eint
,
// Enable interrupt
2771
TMS2_fort
,
// Format serial port registers
2772
TMS2_idle
,
// Idle until interrupt
2773
TMS2_in
,
// Input data from port
2774
TMS2_lac
,
// Load accumulator with shift
2775
TMS2_lack
,
// Load accumulator short immediate
2776
TMS2_lact
,
// Load accumulator with shift specified by T register
2777
TMS2_lalk
,
// Load accumulator long immediate with shift
2778
TMS2_lar
,
// Load auxiliary register
2779
TMS2_lark
,
// Load auxiliary register short immediate
2780
TMS2_larp
,
// Load auxiliary register pointer
2781
TMS2_ldp
,
// Load data memory page pointer
2782
TMS2_ldpk
,
// Load data memory page pointer immediate
2783
TMS2_lph
,
// Load high P register
2784
TMS2_lrlk
,
// Load auxiliary register long immediate
2785
TMS2_lst
,
// Load status register ST0
2786
TMS2_lst1
,
// Load status register ST1
2787
TMS2_lt
,
// Load T register
2788
TMS2_lta
,
// Load T register and accumulate previous product
2789
TMS2_ltd
,
// Load T register, accumulate previous product and move data
2790
TMS2_ltp
,
// Load T register and store P register in accumulator
2791
TMS2_lts
,
// Load T register and subtract previous product
2792
TMS2_mac
,
// Multiply and accumulate
2793
TMS2_macd
,
// Multiply and accumulate with data move
2794
TMS2_mar
,
// Modify auxiliary register
2795
TMS2_mpy
,
// Multiply (with T register, store product in P register)
2796
TMS2_mpya
,
// Multiply and accumulate previous product
2797
TMS2_mpyk
,
// Multiply immediate
2798
TMS2_mpys
,
// Multiply and subtract previous product
2799
TMS2_mpyu
,
// Multiply unsigned
2800
TMS2_neg
,
// Negate accumulator
2801
TMS2_nop
,
// No operation
2802
TMS2_norm
,
// Normalize contents of accumulator
2803
TMS2_or
,
// Or with accumulator
2804
TMS2_ork
,
// Or immediate with accumulator with shift
2805
TMS2_out
,
// Output data to port
2806
TMS2_pac
,
// Load accumulator with P register
2807
TMS2_pop
,
// Pop top of stack to low accumulator
2808
TMS2_popd
,
// Pop top of stack to data memory
2809
TMS2_pshd
,
// Push data memory value onto stack
2810
TMS2_push
,
// Push low accumulator onto stack
2811
TMS2_rc
,
// Reset carry bit
2812
TMS2_ret
,
// Return from subroutine
2813
TMS2_rfsm
,
// Reset serial port frame synchronization mode
2814
TMS2_rhm
,
// Reset hold mode
2815
TMS2_rol
,
// Rotate accumulator left
2816
TMS2_ror
,
// Rotate acuumulator right
2817
TMS2_rovm
,
// Reset overflow mode
2818
TMS2_rpt
,
// Repeat instruction as specified by data memory value
2819
TMS2_rptk
,
// Repeat instruction as specified by immediate value
2820
TMS2_rsxm
,
// Reset sign extension mode
2821
TMS2_rtc
,
// Reset test/control flag
2822
TMS2_rtxm
,
// Reset serial port transmit mode
2823
TMS2_rxf
,
// Reset external flag
2824
TMS2_sach
,
// Store high accumulator with shift
2825
TMS2_sacl
,
// Store low accumulator with shift
2826
TMS2_sar
,
// Store auxiliary register
2827
TMS2_sblk
,
// Subtract from accumulator long immediate with shift
2828
TMS2_sbrk
,
// Subtract from auxiliary register short immediate
2829
TMS2_sc
,
// Set carry bit
2830
TMS2_sfl
,
// Shift accumulator left
2831
TMS2_sfr
,
// Shift accumulator right
2832
TMS2_sfsm
,
// Set serial port frame synchronization mode
2833
TMS2_shm
,
// Set hold mode
2834
TMS2_sovm
,
// Set overflow mode
2835
TMS2_spac
,
// Subtract P register from accumulator
2836
TMS2_sph
,
// Store high P register
2837
TMS2_spl
,
// Store low P register
2838
TMS2_spm
,
// Set P register output shift mode
2839
TMS2_sqra
,
// Square and accumulate
2840
TMS2_sqrs
,
// Square and subtract previous product
2841
TMS2_sst
,
// Store status register ST0
2842
TMS2_sst1
,
// Store status register ST1
2843
TMS2_ssxm
,
// Set sign extension mode
2844
TMS2_stc
,
// Set test/control flag
2845
TMS2_stxm
,
// Set serial port transmit mode
2846
TMS2_sub
,
// Subtract from accumulator with shift
2847
TMS2_subb
,
// Subtract from accumulator with borrow
2848
TMS2_subc
,
// Conditional subtract
2849
TMS2_subh
,
// Subtract from high accumulator
2850
TMS2_subk
,
// Subtract from accumulator shoft immediate
2851
TMS2_subs
,
// Subtract from low accumulator with sign extension suppressed
2852
TMS2_subt
,
// Subtract from accumulator with shift specified by T register
2853
TMS2_sxf
,
// Set external flag
2854
TMS2_tblr
,
// Table read
2855
TMS2_tblw
,
// Table write
2856
TMS2_trap
,
// Software interrupt
2857
TMS2_xor
,
// Exclusive or with accumulator
2858
TMS2_xork
,
// Exclusive or immediate with accumulator with shift
2859
TMS2_zac
,
// Zero accumulator
2860
TMS2_zalh
,
// Zero low accumulator and load high accumulator
2861
TMS2_zalr
,
// Zero low accumulator and load high accumulator with rounding
2862
TMS2_zals
,
// Zero low accumulator and load high accumulator with sign extension suppressed
2863
TMS_last
,
2864
};
2865
/*
2866
* Interactive disassembler (IDA).
2867
* Copyright (c) 1990-2026 Hex-Rays
2868
* ALL RIGHTS RESERVED.
2869
*
2870
*/
2871
enum
2872
{
2873
M65_null
= 0,
// Unknown Operation
2874
// NMOS instructions
2875
M65_adc
,
// A <- (A) + M + C
2876
M65_anc
,
// A <- A /\ M, C <- ~A7
2877
M65_and
,
// A <- (A) /\ M
2878
M65_ane
,
// M <-[(A)\/$EE] /\ (X)/\(M)
2879
M65_arr
,
// A <- [(A /\ M) >> 1]
2880
M65_asl
,
// C <- A7, A <- (A) << 1
2881
M65_asr
,
// A <- [(A /\ M) >> 1]
2882
M65_bcc
,
// if C=0, PC = PC + offset
2883
M65_bcs
,
// if C=1, PC = PC + offset
2884
M65_beq
,
// if Z=1, PC = PC + offset
2885
M65_bit
,
// Z <- ~(A /\ M) N<-M7 V<-M6
2886
M65_bmi
,
// if N=1, PC = PC + offset
2887
M65_bne
,
// if Z=0, PC = PC + offset
2888
M65_bpl
,
// if N=0, PC = PC + offset
2889
M65_brk
,
// Stack <- PC, PC <- ($fffe)
2890
M65_bvc
,
// if V=0, PC = PC + offset
2891
M65_bvs
,
// if V=1, PC = PC + offset
2892
M65_clc
,
// C <- 0
2893
M65_cld
,
// D <- 0
2894
M65_cli
,
// I <- 0
2895
M65_clv
,
// V <- 0
2896
M65_cmp
,
// (A - M) -> NZC
2897
M65_cpx
,
// (X - M) -> NZC
2898
M65_cpy
,
// (Y - M) -> NZC
2899
M65_dcp
,
// M <- (M)-1, (A-M) -> NZC
2900
M65_dec
,
// M <- (M) - 1
2901
M65_dex
,
// X <- (X) - 1
2902
M65_dey
,
// Y <- (Y) - 1
2903
M65_eor
,
// A <- (A) \-/ M
2904
M65_inc
,
// M <- (M) + 1
2905
M65_inx
,
// X <- (X) +1
2906
M65_iny
,
// Y <- (Y) + 1
2907
M65_isb
,
// M <- (M) - 1,A <- (A)-M-~C
2908
M65_jmp
,
// PC <- Address
2909
M65_jmpi
,
// (PC <- Address)
2910
M65_jsr
,
// Stack <- PC, PC <- Address
2911
M65_lae
,
// X,S,A <- (S /\ M)
2912
M65_lax
,
// A <- M, X <- M
2913
M65_lda
,
// A <- M
2914
M65_ldx
,
// X <- M
2915
M65_ldy
,
// Y <- M
2916
M65_lsr
,
// C <- A0, A <- (A) >> 1
2917
M65_lxa
,
// X04 <- (X04) /\ M04, A04 <- (A04) /\ M04
2918
M65_nop
,
// [no operation]
2919
M65_ora
,
// A <- (A) V M
2920
M65_pha
,
// Stack <- (A)
2921
M65_php
,
// Stack <- (P)
2922
M65_pla
,
// A <- (Stack)
2923
M65_plp
,
// A <- (Stack)
2924
M65_rla
,
// M <- (M << 1) /\ (A)
2925
M65_rol
,
// C <- A7 & A <- A << 1 + C
2926
M65_ror
,
// C<-A0 & A<- (A7=C + A>>1)
2927
M65_rra
,
// M <- (M >> 1) + (A) + C
2928
M65_rti
,
// P <- (Stack), PC <-(Stack)
2929
M65_rts
,
// PC <- (Stack)
2930
M65_sax
,
// M <- (A) /\ (X)
2931
M65_sbc
,
// A <- (A) - M - ~C
2932
M65_sbx
,
// X <- (X)/\(A) - M
2933
M65_sec
,
// C <- 1
2934
M65_sed
,
// D <- 1
2935
M65_sei
,
// I <- 1
2936
M65_sha
,
// M <- (A) /\ (X) /\ (PCH+1)
2937
M65_shs
,
// X <- (A) /\ (X), S <- (X), M <- (X) /\ (PCH+1)
2938
M65_shx
,
// M <- (X) /\ (PCH+1)
2939
M65_shy
,
// M <- (Y) /\ (PCH+1)
2940
M65_slo
,
// M <- (M >> 1) + A + C
2941
M65_sre
,
// M <- (M >> 1) \-/ A
2942
M65_sta
,
// M <- (A)
2943
M65_stx
,
// M <- (X)
2944
M65_sty
,
// M <- (Y)
2945
M65_tax
,
// X <- (A)
2946
M65_tay
,
// Y <- (A)
2947
M65_tsx
,
// X <- (S)
2948
M65_txa
,
// A <- (X)
2949
M65_txs
,
// S <- (X)
2950
M65_tya
,
// A <- (Y)
2951
// CMOS instructions
2952
M65_bbr0
,
// Branch if bit 0 reset
2953
M65_bbr1
,
// Branch if bit 1 reset
2954
M65_bbr2
,
// Branch if bit 2 reset
2955
M65_bbr3
,
// Branch if bit 3 reset
2956
M65_bbr4
,
// Branch if bit 4 reset
2957
M65_bbr5
,
// Branch if bit 5 reset
2958
M65_bbr6
,
// Branch if bit 6 reset
2959
M65_bbr7
,
// Branch if bit 7 reset
2960
M65_bbs0
,
// Branch if bit 0 set
2961
M65_bbs1
,
// Branch if bit 1 set
2962
M65_bbs2
,
// Branch if bit 2 set
2963
M65_bbs3
,
// Branch if bit 3 set
2964
M65_bbs4
,
// Branch if bit 4 set
2965
M65_bbs5
,
// Branch if bit 5 set
2966
M65_bbs6
,
// Branch if bit 6 set
2967
M65_bbs7
,
// Branch if bit 7 set
2968
M65_rmb0
,
// Reset memory bit 0
2969
M65_rmb1
,
// Reset memory bit 1
2970
M65_rmb2
,
// Reset memory bit 2
2971
M65_rmb3
,
// Reset memory bit 3
2972
M65_rmb4
,
// Reset memory bit 4
2973
M65_rmb5
,
// Reset memory bit 5
2974
M65_rmb6
,
// Reset memory bit 6
2975
M65_rmb7
,
// Reset memory bit 7
2976
M65_smb0
,
// Set memory bit 0
2977
M65_smb1
,
// Set memory bit 1
2978
M65_smb2
,
// Set memory bit 2
2979
M65_smb3
,
// Set memory bit 3
2980
M65_smb4
,
// Set memory bit 4
2981
M65_smb5
,
// Set memory bit 5
2982
M65_smb6
,
// Set memory bit 6
2983
M65_smb7
,
// Set memory bit 7
2984
M65_stz
,
// Store zero
2985
M65_tsb
,
// Test and set bits
2986
M65_trb
,
// Test and reset bits
2987
M65_phy
,
// Push Y register
2988
M65_ply
,
// Pull Y register
2989
M65_phx
,
// Push X register
2990
M65_plx
,
// Pull X register
2991
M65_bra
,
// Branch always
2992
M65_wai
,
// Wait for interrupt
2993
M65_stp
,
// Stop processor
2994
M65_last
,
2995
};
2996
// The instruction types (``itype''s)
2997
// m65* CPUs implements.
2998
enum
m65_itype_t
2999
{
3000
// http://www.westerndesigncenter.com/wdc/datasheets/Programmanual.pdf
3001
M65816_null
=0,
// Unknown Operation
3002
M65816_adc
,
// Add with carry
3003
M65816_and
,
// AND A with memory
3004
M65816_asl
,
// Shift memory or A left
3005
M65816_bcc
,
// Branch if carry clear
3006
M65816_bcs
,
// Branch if carry set
3007
M65816_beq
,
// Branch if equal
3008
M65816_bit
,
// Test memory bits against A
3009
M65816_bmi
,
// Branch if minus
3010
M65816_bne
,
// Branch if not equal
3011
M65816_bpl
,
// Branch if plus
3012
M65816_bra
,
// Branch always
3013
M65816_brk
,
// Software break
3014
M65816_brl
,
// Branch always long
3015
M65816_bvc
,
// Branch if overflow clear
3016
M65816_bvs
,
// Branch if overflow set
3017
M65816_clc
,
// Clear carry flag
3018
M65816_cld
,
// Clear decimal mode flag
3019
M65816_cli
,
// Clear interrupt disable flag
3020
M65816_clv
,
// Clear overflow flag
3021
M65816_cmp
,
// Compare A with memory
3022
M65816_cop
,
// Co-processor enable
3023
M65816_cpx
,
// Compare X with memory
3024
M65816_cpy
,
// Compare Y with memory
3025
M65816_dec
,
// Decrement
3026
M65816_dex
,
// Decrement X
3027
M65816_dey
,
// Decrement Y
3028
M65816_eor
,
// XOR A with M
3029
M65816_inc
,
// Increment
3030
M65816_inx
,
// Increment X
3031
M65816_iny
,
// Increment Y
3032
M65816_jml
,
// Jump long (inter-bank)
3033
M65816_jmp
,
// Jump
3034
M65816_jsl
,
// Jump to subroutine long (inter-bank)
3035
M65816_jsr
,
// Jump to subroutine
3036
M65816_lda
,
// Load A from memory
3037
M65816_ldx
,
// Load X from memory
3038
M65816_ldy
,
// Load Y from memory
3039
M65816_lsr
,
// Logical shift memory or A right
3040
M65816_mvn
,
// Block move next
3041
M65816_mvp
,
// Block move prev
3042
M65816_nop
,
// Nop
3043
M65816_ora
,
// Or A with memory
3044
M65816_pea
,
// Push effective absolute address
3045
M65816_pei
,
// Push effective indirect address
3046
M65816_per
,
// Push effective PC-relative indirect address
3047
M65816_pha
,
// Push A
3048
M65816_phb
,
// Push B (data bank register)
3049
M65816_phd
,
// Push D (direct page register)
3050
M65816_phk
,
// Push K (program bank register)
3051
M65816_php
,
// Push processor status
3052
M65816_phx
,
// Push X
3053
M65816_phy
,
// Push Y
3054
M65816_pla
,
// Pull A
3055
M65816_plb
,
// Pull B
3056
M65816_pld
,
// Pull D
3057
M65816_plp
,
// Pull processor status
3058
M65816_plx
,
// Pull X
3059
M65816_ply
,
// Pull Y
3060
M65816_rep
,
// Reset status bits
3061
M65816_rol
,
// Rotate memory or A left
3062
M65816_ror
,
// Rotate memory or A right
3063
M65816_rti
,
// Return from interrupt
3064
M65816_rtl
,
// Return from subroutine long
3065
M65816_rts
,
// Return from subroutine
3066
M65816_sbc
,
// Subtract with borrow from A
3067
M65816_sec
,
// Set carry flag
3068
M65816_sed
,
// Set decimal mode flag
3069
M65816_sei
,
// Set interrupt disable flag
3070
M65816_sep
,
// Set status bits
3071
M65816_sta
,
// Store A to memory
3072
M65816_stp
,
// Stop processor
3073
M65816_stx
,
// Store X to memory
3074
M65816_sty
,
// Store Y to memory
3075
M65816_stz
,
// Store zero to memory
3076
M65816_tax
,
// Transfer A to X
3077
M65816_tay
,
// Transfer A to Y
3078
M65816_tcd
,
// Transfer 16-bit A to D (direct page register)
3079
M65816_tcs
,
// Transfer A to S
3080
M65816_tdc
,
// Transfer 16-bit D to A
3081
M65816_trb
,
// Test and reset memory bits against A
3082
M65816_tsb
,
// Test and set memory bits against A
3083
M65816_tsc
,
// Transfer S to A
3084
M65816_tsx
,
// Transfer S to X
3085
M65816_txa
,
// Transfer X to A
3086
M65816_txs
,
// Transfer X to S
3087
M65816_txy
,
// Transfer X to Y
3088
M65816_tya
,
// Transfer Y to A
3089
M65816_tyx
,
// Transfer Y to X
3090
M65816_wai
,
// Wait for interrupt
3091
M65816_wdm
,
// Reserved
3092
M65816_xba
,
// Exchange bytes in A
3093
M65816_xce
,
// Exchange carry and emulation bits
3094
M65816_last
3095
};
3096
/*
3097
* Interactive disassembler (IDA)
3098
* Copyright (c) 1990-2026 Hex-Rays
3099
* PDP11 module.
3100
* Copyright (c) 1995-2006 by Iouri Kharon.
3101
* E-mail: yjh@styx.cabel.net
3102
*
3103
* ALL RIGHTS RESERVED.
3104
*
3105
*/
3106
enum
3107
{
3108
pdp_null
= 0,
// Unknown Operation
3109
pdp_halt
,
// Stop CPU
3110
pdp_wait
,
// Wait interrupt
3111
pdp_rti
,
// Interrupt return
3112
pdp_bpt
,
// Trap to Debbuger
3113
pdp_iot
,
// Trap to 20 (i/o)
3114
pdp_reset
,
// Reset CPU and device
3115
pdp_rtt
,
// Interrupt return and ignore dbg-flag
3116
pdp_mfpt
,
// Load Processor Type (* hi model)
3117
pdp_jmp
,
// Absolute jmp
3118
pdp_rts
,
// Return into subroutine
3119
pdp_spl
,
// Set Prior.
3120
pdp_nop
,
// Not operation
3121
pdp_clc
,
// Clear C bit in PSW
3122
pdp_clv
,
// Clear V bit in PSW
3123
pdp_clz
,
// Clear Z bit in PSW
3124
pdp_cln
,
// Clear N bit in PSW
3125
pdp_ccc
,
// Clear All Condition bits in PSW
3126
pdp_sec
,
// Set C bit in PSW
3127
pdp_sev
,
// Set V bit in PSW
3128
pdp_sez
,
// Set Z bit in PSW
3129
pdp_sen
,
// Set N bit in PSW
3130
pdp_scc
,
// Set All Condition bits bit in PSW
3131
pdp_swab
,
// Exchange byte in word
3132
pdp_br
,
// Relative jmp
3133
pdp_bne
,
// Jump if Z=0
3134
pdp_beq
,
// Jump if Z=1
3135
pdp_bge
,
// Jump if N^V=0
3136
pdp_blt
,
// Jump if N^V=1
3137
pdp_bgt
,
// Jump if Z|(N^V)=0
3138
pdp_ble
,
// Jump if Z|(N^V)=1
3139
pdp_jsr
,
// Call procedure
3140
pdp_clr
,
// Clear operand
3141
pdp_com
,
// Inverse operand
3142
pdp_inc
,
// Increment operand
3143
pdp_dec
,
// Decrement operand
3144
pdp_neg
,
// op = -op
3145
pdp_adc
,
// Add with Carry
3146
pdp_sbc
,
// Substract with Carry
3147
pdp_tst
,
// Test operand
3148
pdp_ror
,
// Cyclic shift rignt
3149
pdp_rol
,
// Cyclic shift left
3150
pdp_asr
,
// Arifmetic shift rignt
3151
pdp_asl
,
// Arifmetic shift left
3152
pdp_mark
,
// Return and empty stack
3153
pdp_mfpi
,
// Load from previous instruction space (*hi model)
3154
pdp_mtpi
,
// Store to previous instruction space (*hi model)
3155
pdp_sxt
,
// N=>op
3156
pdp_mov
,
// Move operand
3157
pdp_cmp
,
// Compare operands
3158
pdp_bit
,
// Check Bit's
3159
pdp_bic
,
// Clear Bit's
3160
pdp_bis
,
// Set Bit's
3161
pdp_add
,
// Add operands
3162
pdp_sub
,
// Substract operands
3163
pdp_mul
,
// Multiple Reg (*eis)
3164
pdp_div
,
// Divide Reg (*eis)
3165
pdp_ash
,
// Multistep shift (*eis)
3166
pdp_ashc
,
// Multistep shift 2 reg (*eis)
3167
pdp_xor
,
// Exclusive or (*eis)
3168
pdp_fadd
,
// Floating Add (*fis)
3169
pdp_fsub
,
// Floating Subtract (*fis)
3170
pdp_fmul
,
// Floating Multiple (*fis)
3171
pdp_fdiv
,
// Floating Divide (*fis)
3172
pdp_sob
,
//
3173
pdp_bpl
,
// Jump if N=0
3174
pdp_bmi
,
// Jump if N=1
3175
pdp_bhi
,
// Jump if (!C)&(!Z)=0
3176
pdp_blos
,
// Jump if C|Z=1
3177
pdp_bvc
,
// Jump if V=0
3178
pdp_bvs
,
// Jump if V=1
3179
pdp_bcc
,
// Jump if C=0
3180
pdp_bcs
,
// Jump if C=1
3181
pdp_emt
,
// Trap to System
3182
pdp_trap
,
// Trap to user/compiler
3183
pdp_mtps
,
// Store PSW (*lsi11 only)
3184
pdp_mfpd
,
// Load from previous data space (*hi model)
3185
pdp_mtpd
,
// Store to previous data space (*hi model)
3186
pdp_mfps
,
// Load PSW (*lsi11 only)
3187
// FPU instruction
3188
pdp_cfcc
,
// Copy cond.codes into FPS to PSW
3189
pdp_setf
,
// Set Float
3190
pdp_seti
,
// Set Integer
3191
pdp_setd
,
// Set Double
3192
pdp_setl
,
// Set Long Integer
3193
pdp_ldfps
,
// Load FPS
3194
pdp_stfps
,
// Store FPS
3195
pdp_stst
,
// Load interrupt status
3196
pdp_clrd
,
// Clear
3197
pdp_tstd
,
// Test
3198
pdp_absd
,
// op = mod(op)
3199
pdp_negd
,
// op = -op
3200
pdp_muld
,
// Multiple
3201
pdp_modd
,
// Get int. part
3202
pdp_addd
,
// Add
3203
pdp_ldd
,
// Load in Acc
3204
pdp_subd
,
// Substract
3205
pdp_cmpd
,
// Compare
3206
pdp_std
,
// Store into Acc
3207
pdp_divd
,
// Divide
3208
pdp_stexp
,
// Store exponent
3209
pdp_stcdi
,
// Store and convert double/float to integer/long
3210
pdp_stcdf
,
// Store and convert double/float to float/double
3211
pdp_ldexp
,
// Load exponent
3212
pdp_ldcif
,
// Load and convert integer/long to double/float
3213
pdp_ldcfd
,
// Load and convert float/double to double/float
3214
pdp_call
,
// Jsr PC,
3215
pdp_return
,
// RTS PC
3216
pdp_compcc
,
// Complex Condition Codes
3217
pdp_last
3218
};
3219
/*
3220
* Interactive disassembler (IDA).
3221
* Copyright (c) 1990-2026 Hex-Rays
3222
* ALL RIGHTS RESERVED.
3223
*
3224
*/
3225
enum
3226
{
3227
mc_null
= 0,
// Unknown Operation
3228
mc_abcd
,
// summa with BCD correction
3229
mc_add
,
// summa with Dn
3230
mc_adda
,
// summa with An
3231
mc_addi
,
// summa with immediate
3232
mc_addq
,
// -"-
3233
mc_addx
,
// summa 2 reg and const
3234
mc_and
,
// logical and
3235
mc_andi
,
// logical and with immediate
3236
mc_asl
,
// shift by count
3237
mc_asr
,
// -"-
3238
mc_b
,
// branch if cond code
3239
mc_bchg
,
// bit chang
3240
mc_bclr
,
// bit clear
3241
mc_bftst
,
// bit field test
3242
mc_bfchg
,
// bit field change
3243
mc_bfclr
,
// bit field set in 0
3244
mc_bfset
,
// bit field set in 1
3245
mc_bfextu
,
// bit field extract (unsigned)
3246
mc_bfexts
,
// bit field extract (signed)
3247
mc_bfffo
,
// bit field offset
3248
mc_bfins
,
// bit field include
3249
mc_bgnd
,
// CPU32- enter backgound mode
3250
mc_bkpt
,
// disable TRAP at any cycles
3251
mc_bra
,
// branch
3252
mc_bset
,
// bit set
3253
mc_bsr
,
// relative call
3254
mc_btst
,
// bit test
3255
mc_callm
,
// call module [descrtiptor] (020)
3256
mc_cas
,
// compare and swap
3257
mc_cas2
,
// -"-
3258
mc_chk
,
// compare and trap
3259
mc_chk2
,
// -"-
3260
mc_cinv
,
// invalidate cache
3261
mc_clr
,
// clear data
3262
mc_cmp
,
// compare data
3263
mc_cmp2
,
// -"-
3264
mc_cmpa
,
// compare address
3265
mc_cmpi
,
// compare immediate
3266
mc_cmpm
,
// compare memory
3267
mc_cpush
,
// invalidate cache
3268
mc_db
,
// (djnz) if cond code
3269
mc_divs
,
// sign divide
3270
mc_divsl
,
// -"-
3271
mc_divu
,
// unsign didide
3272
mc_divul
,
// -"-
3273
mc_eor
,
// logical xor
3274
mc_eori
,
// logical xor with immediate
3275
mc_exg
,
// exchange registers
3276
mc_ext
,
// analog cwd
3277
mc_extb
,
// analog cwq
3278
mc_fabs
,
// FP abs
3279
mc_facos
,
// FP acos
3280
mc_fadd
,
// FP add
3281
mc_fasin
,
// FP asin
3282
mc_fatan
,
// FP atan
3283
mc_fatanh
,
// FP atanh
3284
mc_fb
,
// fBcc
3285
mc_fcmp
,
// FP cmp
3286
mc_fcos
,
// FP cos
3287
mc_fcosh
,
// FP cosh
3288
mc_fdabs
,
// FP abs double rounded
3289
mc_fdadd
,
// FP add
3290
mc_fdb
,
// fDBcc
3291
mc_fddiv
,
// FP div double rounded
3292
mc_fdiv
,
// FP div
3293
mc_fdmove
,
// FP mov double rounded
3294
mc_fdmul
,
// FP mul double rounded
3295
mc_fdneg
,
// FP neg double rounded
3296
mc_fdsqrt
,
// FP sqrt double rounded
3297
mc_fdsub
,
// FP sub double rounded
3298
mc_fetox
,
// FP e**x
3299
mc_fetoxm1
,
// FP e**x-1
3300
mc_fgetexp
,
// FP extract exponent
3301
mc_fgetman
,
// FP extract mantissa
3302
mc_fint
,
// FP get integer part
3303
mc_fintrz
,
// FP get integer part by round
3304
mc_flog2
,
// FP log[2]
3305
mc_flog10
,
// FP log[10]
3306
mc_flogn
,
// FP log[e]
3307
mc_flognp1
,
// FP log[e] x+1
3308
mc_fmod
,
// FP mod
3309
mc_fmove
,
// move float
3310
mc_fmovecr
,
// move floating const
3311
mc_fmovem
,
// move float register list
3312
mc_fmul
,
// FM mul
3313
mc_fneg
,
// FP neg
3314
mc_fnop
,
// float nop
3315
mc_frem
,
// FP rem
3316
mc_frestore
,
// restore status
3317
mc_fs
,
// fScc
3318
mc_fsabs
,
// FP abs single rounded
3319
mc_fsadd
,
// FP add single rounded
3320
mc_fsave
,
// Fsave status
3321
mc_fscale
,
// FP *2**x
3322
mc_fsdiv
,
// FP div single rounded
3323
mc_fsgldiv
,
// FP single div
3324
mc_fsglmul
,
// FP single mul
3325
mc_fsin
,
// FP sin
3326
mc_fsincos
,
// FP sin & cos
3327
mc_fsinh
,
// FP sinh
3328
mc_fsmove
,
// FP mov single rounded
3329
mc_fsmul
,
// FP mul single rounded
3330
mc_fsneg
,
// FP neg single rounded
3331
mc_fsqrt
,
// FP sqrt
3332
mc_fssqrt
,
// FP sqrt single rounded
3333
mc_fssub
,
// FP sub single rounded
3334
mc_fsub
,
// FP sub
3335
mc_ftan
,
// FP tan
3336
mc_ftanh
,
// FP tanh
3337
mc_ftentox
,
// FP 10**x
3338
mc_ftrap
,
// fTRAPcc
3339
mc_ftst
,
// FP tst
3340
mc_ftwotox
,
// FP 2**x
3341
mc_halt
,
// (coldfire) Halt the processor
3342
mc_illegal
,
// trap to vector
3343
mc_jmp
,
// absolute Jmp
3344
mc_jsr
,
// absolute jsr
3345
mc_lea
,
// load effective address
3346
mc_link
,
// change sp context
3347
mc_lpstop
,
// cpu32 - stop
3348
mc_lsl
,
// logical shift
3349
mc_lsr
,
// -"-
3350
mc_mac
,
// multiple and accumulate
3351
mc_macl
,
// multiple and accumulate with register load
3352
mc_move
,
// move memory
3353
mc_move16
,
// move 16 byte
3354
mc_movea
,
// move move with address reg
3355
mc_movec
,
// move from/to control register
3356
mc_movem
,
// move register list
3357
mc_movep
,
// move with data register
3358
mc_moveq
,
// move with immediate
3359
mc_moves
,
// mtpd/mfpd
3360
mc_msac
,
// multiple and subtract
3361
mc_msacl
,
// multiple and subtract with register load
3362
mc_muls
,
// sign multiplication
3363
mc_mulu
,
// unsign multiplication
3364
mc_nbcd
,
// negative with BCD correct
3365
mc_neg
,
// negative
3366
mc_negx
,
// negative with immediate
3367
mc_nop
,
// null operation
3368
mc_not
,
// logical not
3369
mc_or
,
// logical or
3370
mc_ori
,
// logical or with immediate
3371
mc_pack
,
// UNP(bcd)+adj -> PACK(bcd)
3372
mc_pea
,
// lea into stack
3373
mc_pb
,
// 68851 pbcc
3374
mc_pdb
,
// 68851 pdbcc
3375
mc_pflush
,
// invalidate cache
3376
mc_pflushr
,
// 68851 load root entry
3377
mc_ploadr
,
// 68851
3378
mc_ploadw
,
// 68851
3379
mc_pmove
,
// move MMU register
3380
mc_prestore
,
// 68851
3381
mc_psave
,
// 68851
3382
mc_ps
,
// 68851 pscc
3383
mc_ptestr
,
// test a logical address
3384
mc_ptestw
,
// -"-
3385
mc_ptrap
,
// 68851 ptrapcc
3386
mc_pulse
,
// (coldfire) generate unique PST value
3387
mc_pvalid
,
// 68851 move AL bit
3388
mc_rol
,
// cycl. shift
3389
mc_ror
,
// -"-
3390
mc_roxl
,
// two op cycl shift
3391
mc_roxr
,
// -"-
3392
mc_reset
,
// reset
3393
mc_rtd
,
// mark
3394
mc_rte
,
// return with SR
3395
mc_rtm
,
// reload save module state
3396
mc_rtr
,
// return with CCR
3397
mc_rts
,
// return
3398
mc_sbcd
,
// substract with BCD correction
3399
mc_s
,
// 1 if cond code else 0
3400
mc_stop
,
// halt
3401
mc_sub
,
// substract
3402
mc_suba
,
// substract address
3403
mc_subi
,
// substract immediate
3404
mc_subq
,
// -"-
3405
mc_subx
,
// substract memory
3406
mc_swap
,
// hi and low word in register
3407
mc_tas
,
// test byte sign
3408
mc_tbl
,
// CPU32-tblu/tblun/tbls/tblsn
3409
mc_trap
,
// analog int(86) (or trap if cond code)
3410
mc_trapv
,
// if V then trap
3411
mc_tst
,
// test destination
3412
mc_unlk
,
// destroy address ?
3413
mc_unpk
,
// PACK(bcd)+adj -> UNPACK(bcd)
3414
mc_wddata
,
// (coldfire) load WDDATA port (pins)
3415
mc_wdebug
,
// (coldfire) load debug register
3416
mc_atrap
,
// MacOS atrap
3417
// new ColdFire instructions
3418
mc_bitrev
,
// bit reverse
3419
mc_byterev
,
// byte reverse
3420
mc_ff1
,
// find first one
3421
mc_intouch
,
// instruction fetch touch
3422
mc_mov3q
,
// move 3-bit data quick
3423
mc_mvs
,
// move with sign extend
3424
mc_mvz
,
// move with zero-fill
3425
mc_sats
,
// signed saturate
3426
mc_movclr
,
// move from accumulator and clear
3427
mc_maaac
,
// Multiply and Add to 1st Accumulator, Add to 2nd Accumulator
3428
mc_masac
,
// Multiply and Add to 1st Accumulator, Subtract from 2nd Accumulator
3429
mc_msaac
,
// Multiply and Subtract to 1st Accumulator, Add to 2nd Accumulator
3430
mc_mssac
,
// Multiply and Subtract to 1st Accumulator, Subtract to 2nd Accumulator
3431
mc_remsl
,
// Signed Divide Remainder
3432
mc_remul
,
// Unsigned Divide Remainder
3433
mc_last
3434
};
3435
/*
3436
* Interactive disassembler (IDA).
3437
* Copyright (c) 1990-2026 Hex-Rays
3438
* ALL RIGHTS RESERVED.
3439
*
3440
*/
3441
enum
3442
{
3443
mc8_null
= 0,
// Unknown Operation
3444
mc8_aba
,
// Add b to a (11)
3445
mc8_ab
,
// Add b to index register
3446
mc8_adc
,
// Add with carry
3447
mc8_add
,
// Add without carry
3448
mc8_addd
,
// Add 16-bit to D (11)
3449
mc8_ais
,
// Add immediate value to stack pointer (8)
3450
mc8_aix
,
// Add immediate value to index register (H:X) (8)
3451
mc8_and
,
// Logical AND
3452
mc8_andcc
,
// Logical AND immdiate with CCR (9)
3453
mc8_asr
,
// Ariphmetic shift right
3454
mc8_bcc
,
// Branch if carry bit clear
3455
mc8_bclr
,
// Clear bit in memory
3456
mc8_bcs
,
// Branch if carry bit set
3457
mc8_beq
,
// Branch if equal
3458
mc8_bge
,
// Branch if >= (signed)
3459
mc8_bgt
,
// Branch if > (signed)
3460
mc8_bhcc
,
// Branch if half carry bit clear (8)
3461
mc8_bhcs
,
// Branch if half carry bit set (8)
3462
mc8_bhi
,
// Branch if > (unsigned)
3463
mc8_bhs
,
// Branch if >= (unsigned) (11)
3464
mc8_bih
,
// Branch if IRQ pin high (8)
3465
mc8_bil
,
// Branch if IRQ pin low (8)
3466
mc8_bit
,
// Bit test (8)
3467
mc8_ble
,
// Branch if <= (signed) (8)
3468
mc8_blo
,
// Branch if < (unsigned) (11)
3469
mc8_bls
,
// Branch if <= (unsigned) (8)
3470
mc8_blt
,
// Branch if < (signed) (8)
3471
mc8_bmc
,
// Branch if interrupt mask clear (8)
3472
mc8_bmi
,
// Branch if minus
3473
mc8_bms
,
// Branch if interrupt mask set (8)
3474
mc8_bne
,
// Branch if not equal
3475
mc8_bpl
,
// Branch if not plus
3476
mc8_bra
,
// Branch always
3477
mc8_brclr
,
// Branch if bit (n) in memory clear
3478
mc8_brn
,
// Branch never
3479
mc8_brset
,
// Branch if bit (n) in memory set
3480
mc8_bset
,
// Set bit in memory
3481
mc8_bsr
,
// Branch to subroutine
3482
mc8_bvc
,
// Branch if overflow cleared (11)
3483
mc8_bvs
,
// Branch if overflow set (11)
3484
mc8_cba
,
// Compare A to B (11)
3485
mc8_cbeq
,
// Compare and branch if equal (8)
3486
mc8_clc
,
// Clear carry bit
3487
mc8_cli
,
// Clear interrupt mask
3488
mc8_clr
,
// Clear
3489
mc8_clv
,
// Clear overflow flag (11)
3490
mc8_cmp
,
// Compare accumulator with memory
3491
mc8_com
,
// Complement
3492
mc8_cp
,
// Compare index register 16 bit (11)
3493
mc8_cpd
,
// Compare D 16 bit (11)
3494
mc8_cphx
,
// Compare index register with memory (8)
3495
mc8_cpx
,
// Compare X (index register low) with memory (8)
3496
mc8_cwai
,
// Clear CC bits & wait for interrupt (9)
3497
mc8_daa
,
// Decimal adjust accumulator
3498
mc8_dbnz
,
// Decrement and branch if not equal (8)
3499
mc8_de
,
// Decrement index register (11)
3500
mc8_dec
,
// Decrement
3501
mc8_des
,
// Decrement stack pointer (11)
3502
mc8_div
,
// Divide (8)
3503
mc8_eor
,
// Excusive OR memory with accumulator
3504
mc8_exg
,
// Exchange register (9)
3505
mc8_fdiv
,
// Fractional divide 16 by 16 (11)
3506
mc8_idiv
,
// Integer divide 16 by 16 (11)
3507
mc8_in
,
// Increment index register (11)
3508
mc8_inc
,
// Increment
3509
mc8_ins
,
// Increment stack pointer (11)
3510
mc8_jmp
,
// Jump
3511
mc8_jsr
,
// Jump to subroutine
3512
mc8_ld
,
// Load index register (11)
3513
mc8_lda
,
// Load accumulator from memory
3514
mc8_ldd
,
// Load double accumulator (11)
3515
mc8_ldhx
,
// Load index register from memory (8)
3516
mc8_lds
,
// Load stack pointer (11)
3517
mc8_ldx
,
// Load X (index register low) from memory (8)
3518
mc8_lea
,
// Load register from memory (9)
3519
mc8_lsl
,
// Logical (or Ariphmetic) shift left
3520
mc8_lsld
,
// Logical (or Ariphmetic) shift left double (11)
3521
mc8_lsr
,
// Logical shift right
3522
mc8_lsrd
,
// Logical shift right double (11)
3523
mc8_mov
,
// Move (8)
3524
mc8_mul
,
// Unsigned multiply
3525
mc8_neg
,
// Negate
3526
mc8_nop
,
// No Operation
3527
mc8_nsa
,
// Nibble swap accumulator (8)
3528
mc8_ora
,
// Inclusive OR memory with accumulator
3529
mc8_orcc
,
// Inclusive OR immediate with CCR (9)
3530
mc8_psh
,
// Push index register into stack (low first) (11)
3531
mc8_psha
,
// Push accumulator A into stack
3532
mc8_pshb
,
// Push accumulator B into stack (11)
3533
mc8_pshh
,
// Push H (index register high) into stack (8)
3534
mc8_pshx
,
// Push X (index register low) into stack (8)
3535
mc8_pul
,
// Pull index register from stack (hi first) (11)
3536
mc8_pula
,
// Pull accumulator A from stack
3537
mc8_pulb
,
// Pull accumulator B from stack (11)
3538
mc8_pulh
,
// Pull H (index register high) from stack (8)
3539
mc8_pulx
,
// Pull X (index register low) from stack (8)
3540
mc8_rol
,
// Rotate left trough carry
3541
mc8_ror
,
// Rotate right trough carry
3542
mc8_rsp
,
// Reset stack pointer (8)
3543
mc8_rti
,
// Reset from interrupt
3544
mc8_rts
,
// Reset from subroutine
3545
mc8_sba
,
// Subtract B from A (11)
3546
mc8_sbc
,
// Subtract with carry
3547
mc8_sec
,
// Set carry bit
3548
mc8_sei
,
// Set interrupt mask bit
3549
mc8_sev
,
// Set Overflow Flag (11)
3550
mc8_sex
,
// Sign extended (9)
3551
mc8_slp
,
// Sleep (HD63701 extention) (11)
3552
mc8_st
,
// Store index register in memory (11)
3553
mc8_sta
,
// Store accumulator in memory
3554
mc8_std
,
// Store accumulators in memory (11)
3555
mc8_sthx
,
// Store H:X (index reg) (8)
3556
mc8_stop
,
// Enable IRQ pin. Stop oscillator
3557
mc8_sts
,
// Store stack pointer (11)
3558
mc8_stx
,
// Store X (index register low) in memory (8)
3559
mc8_sub
,
// Subtract
3560
mc8_subd
,
// Subtract 16-bit (11)
3561
mc8_swi
,
// Software interrupt
3562
mc8_sync
,
// Syncronisation with interrupt (9)
3563
mc8_tab
,
// Transfer A to B (11)
3564
mc8_tap
,
// Transfer A to CCR
3565
mc8_tax
,
// Transfer accumulator to X (index register low) (8)
3566
mc8_tba
,
// Transfer B to A (11)
3567
mc8_test
,
// Address Bus Counts (in test mode) (11)
3568
mc8_tfr
,
// Transfer register to register (9)
3569
mc8_tpa
,
// Transfer CCR to A
3570
mc8_ts
,
// Transfer SP to index reg (11)
3571
mc8_tst
,
// Test for negative or zero
3572
mc8_tsx
,
// Transfer SP to index reg (8)
3573
mc8_txa
,
// Transfer X (index reg low) to accumulator (8)
3574
mc8_txs
,
// Transfer index reg X to SP
3575
mc8_tys
,
// Transfer index reg Y to SP (11)
3576
mc8_wai
,
// Wait for interrupt (11)
3577
mc8_wait
,
// Enable interrupt. Stop processor (8)
3578
mc8_xgd
,
// Exchange D with index register (11)
3579
mc8_1
,
// Special testing command (11)
3580
mc8_2
,
// Special testing command (11)
3581
mc8_os9
,
// OS9 system call (9)
3582
// these instructions must be continuous (HD63701 extention)
3583
mc8_aim
,
3584
mc8_oim
,
3585
mc8_eim
,
3586
mc8_tim
,
3587
// new S08 instructions
3588
mc8_bgnd
,
// Background (8)
3589
mc8_call
,
// Call Subroutine (8)
3590
mc8_rtc
,
// Return fom Call (8)
3591
// Pseudoinstructions
3592
mc8_skip1
,
// Skip one byte
3593
mc8_skip2
,
// Skip two bytes
3594
mc8_last
3595
};
3596
/*
3597
* Interactive disassembler (IDA)
3598
* Copyright (c) 1990-2026 Hex-Rays
3599
* JVM module.
3600
* Copyright (c) 1995-2006 by Iouri Kharon.
3601
* E-mail: yjh@styx.cabel.net
3602
*
3603
* ALL RIGHTS RESERVED.
3604
*
3605
*/
3606
enum
3607
{
3608
j_nop
= 0,
// 0 Do nothing
3609
j_aconst_null
,
// 1 Push null object reference
3610
j_iconst_m1
,
// 2 Push integer constant -1
3611
j_iconst_0
,
// 3 Push the integer 0
3612
j_iconst_1
,
// 4 Push the integer 1
3613
j_iconst_2
,
// 5 Push the integer 2
3614
j_iconst_3
,
// 6 Push the integer 3
3615
j_iconst_4
,
// 7 Push the integer 4
3616
j_iconst_5
,
// 8 Push the integer 5
3617
j_lconst_0
,
// 9 Push the long integer 0
3618
j_lconst_1
,
// 10 Push the long integer 1
3619
j_fconst_0
,
// 11 Push the single-precision foating point 0.0
3620
j_fconst_1
,
// 12 Push the single-precision foating point 1.0
3621
j_fconst_2
,
// 13 Push the single-precision foating point 2.0
3622
j_dconst_0
,
// 14 Push the double-precision foating point 2.0
3623
j_dconst_1
,
// 15 Push the double-precision foating point 2.0
3624
j_bipush
,
// 16 Push one byte signed integer
3625
j_sipush
,
// 17 Push two-byte signed integer
3626
j_ldc
,
// 18 Push item from constant pool (i1)
3627
j_ldcw
,
// 19 Push item from constant pool (i2)
3628
j_ldc2w
,
// 20 Push long or double from constant pool
3629
j_iload
,
// 21 Push integer value of the local variable
3630
j_lload
,
// 22 Push long value of the local variable
3631
j_fload
,
// 23 Push single float value of the local variable
3632
j_dload
,
// 24 Push double float value of the local variable
3633
j_aload
,
// 25 Push object reference from the local variable
3634
j_iload_0
,
// 26 Push integer value of the local variable #0
3635
j_iload_1
,
// 27 Push integer value of the local variable #1
3636
j_iload_2
,
// 28 Push integer value of the local variable #2
3637
j_iload_3
,
// 29 Push integer value of the local variable #3
3638
j_lload_0
,
// 30 Push long value of the local variable #0
3639
j_lload_1
,
// 31 Push long value of the local variable #1
3640
j_lload_2
,
// 32 Push long value of the local variable #2
3641
j_lload_3
,
// 33 Push long value of the local variable #3
3642
j_fload_0
,
// 34 Push single float value of the local variable #0
3643
j_fload_1
,
// 35 Push single float value of the local variable #1
3644
j_fload_2
,
// 36 Push single float value of the local variable #2
3645
j_fload_3
,
// 37 Push single float value of the local variable #3
3646
j_dload_0
,
// 38 Push double float value of the local variable #0
3647
j_dload_1
,
// 39 Push double float value of the local variable #1
3648
j_dload_2
,
// 40 Push double float value of the local variable #2
3649
j_dload_3
,
// 41 Push double float value of the local variable #3
3650
j_aload_0
,
// 42 Push object reference from the local variable #0
3651
j_aload_1
,
// 43 Push object reference from the local variable #1
3652
j_aload_2
,
// 44 Push object reference from the local variable #2
3653
j_aload_3
,
// 45 Push object reference from the local variable #3
3654
j_iaload
,
// 46 Push integer from array
3655
j_laload
,
// 47 Push long from array
3656
j_faload
,
// 48 Push single float from array
3657
j_daload
,
// 49 Push double float from array
3658
j_aaload
,
// 50 Push object refernce from array
3659
j_baload
,
// 51 Push signed byte from array
3660
j_caload
,
// 52 Push character from array
3661
j_saload
,
// 53 Push short from array
3662
j_istore
,
// 54 Pop integer value into local variable
3663
j_lstore
,
// 55 Pop long value into local variable
3664
j_fstore
,
// 56 Pop single float value into local variable
3665
j_dstore
,
// 57 Pop double float value into local variable
3666
j_astore
,
// 58 Pop object refernce into local variable
3667
j_istore_0
,
// 59 Pop integer value into local variable #0
3668
j_istore_1
,
// 60 Pop integer value into local variable #1
3669
j_istore_2
,
// 61 Pop integer value into local variable #2
3670
j_istore_3
,
// 62 Pop integer value into local variable #3
3671
j_lstore_0
,
// 63 Pop long value into local variable #0
3672
j_lstore_1
,
// 64 Pop long value into local variable #1
3673
j_lstore_2
,
// 65 Pop long value into local variable #2
3674
j_lstore_3
,
// 66 Pop long value into local variable #3
3675
j_fstore_0
,
// 67 Pop single float value into local variable #0
3676
j_fstore_1
,
// 68 Pop single float value into local variable #1
3677
j_fstore_2
,
// 69 Pop single float value into local variable #2
3678
j_fstore_3
,
// 70 Pop single float value into local variable #3
3679
j_dstore_0
,
// 71 Pop double float value into local variable
3680
j_dstore_1
,
// 72 Pop double float value into local variable #0
3681
j_dstore_2
,
// 73 Pop double float value into local variable #1
3682
j_dstore_3
,
// 74 Pop double float value into local variable #2
3683
j_astore_0
,
// 75 Pop object refernce into local variable #0
3684
j_astore_1
,
// 76 Pop object refernce into local variable #1
3685
j_astore_2
,
// 77 Pop object refernce into local variable #2
3686
j_astore_3
,
// 78 Pop object refernce into local variable #3
3687
j_iastore
,
// 79 Pop integer from array
3688
j_lastore
,
// 80 Pop long from array
3689
j_fastore
,
// 81 Pop single float from array
3690
j_dastore
,
// 82 Pop double float from array
3691
j_aastore
,
// 83 Pop object refernce from array
3692
j_bastore
,
// 84 Pop signed byte from array
3693
j_castore
,
// 85 Pop character from array
3694
j_sastore
,
// 86 Pop short from array
3695
j_pop
,
// 87 Pop top stack word
3696
j_pop2
,
// 88 Pop top two stack word
3697
j_dup
,
// 89 Duplicate top stack word
3698
j_dup_x1
,
// 90 Duplicate top stack word and put two down
3699
j_dup_x2
,
// 91 Duplicate top stack word and put three down
3700
j_dup2
,
// 92 Duplicate top two stack word
3701
j_dup2_x1
,
// 93 Duplicate top two stack words and put two down
3702
j_dup2_x2
,
// 94 Duplicate top two stack words and put three down
3703
j_swap
,
// 95 Swap two top stack words
3704
j_iadd
,
// 96 Integer add
3705
j_ladd
,
// 97 Long add
3706
j_fadd
,
// 98 Single float add
3707
j_dadd
,
// 99 Double float add
3708
j_isub
,
// 100 Integer subtract
3709
j_lsub
,
// 101 Long subtract
3710
j_fsub
,
// 102 Single float subtract
3711
j_dsub
,
// 103 Double Float subtract
3712
j_imul
,
// 104 Integer multiply
3713
j_lmul
,
// 105 Long multiply
3714
j_fmul
,
// 106 Single float multiply
3715
j_dmul
,
// 107 Double Float multiply
3716
j_idiv
,
// 108 Integer divide
3717
j_ldiv
,
// 109 Long divide
3718
j_fdiv
,
// 110 Single float divide
3719
j_ddiv
,
// 111 Double Float divide
3720
j_irem
,
// 112 Integer reminder
3721
j_lrem
,
// 113 Long reminder
3722
j_frem
,
// 114 Single float reminder
3723
j_drem
,
// 115 Double Float reminder
3724
j_ineg
,
// 116 Integer negate
3725
j_lneg
,
// 117 Long negate
3726
j_fneg
,
// 118 Single float negate
3727
j_dneg
,
// 119 Double Float negate
3728
j_ishl
,
// 120 Integer shift left
3729
j_lshl
,
// 121 Long shift left
3730
j_ishr
,
// 122 Integer logical shift right
3731
j_lshr
,
// 123 Long logical shift right
3732
j_iushr
,
// 124 Integer arithmetic shift right
3733
j_lushr
,
// 125 Long arithmeticshift right
3734
j_iand
,
// 126 Integer boolean AND
3735
j_land
,
// 127 Long boolean AND
3736
j_ior
,
// 128 Integer boolean OR
3737
j_lor
,
// 129 Long boolean OR
3738
j_ixor
,
// 130 Integer boolean XOR
3739
j_lxor
,
// 131 Long boolean XOR
3740
j_iinc
,
// 132 Add 8-bit signed const to local variable
3741
j_i2l
,
// 133 Integer to Long conversion
3742
j_i2f
,
// 134 Integer to single float conversion
3743
j_i2d
,
// 135 Integer to double float conversion
3744
j_l2i
,
// 136 Long to Integer conversion
3745
j_l2f
,
// 137 Long to single float conversion
3746
j_l2d
,
// 138 Long to double float conversion
3747
j_f2i
,
// 139 Single float to Integer conversion
3748
j_f2l
,
// 140 Single float to Long conversion
3749
j_f2d
,
// 141 Single float to double float conversion
3750
j_d2i
,
// 142 Double float to Integer conversion
3751
j_d2l
,
// 143 Double float to Long conversion
3752
j_d2f
,
// 144 Double float to double float conversion
3753
j_i2b
,
// 145 Integer to signed byte conversion
3754
j_i2c
,
// 146 Integer to unsigned short conversion
3755
j_i2s
,
// 147 Integer to signed short conversion
3756
j_lcmp
,
// 148 Long compare
3757
j_fcmpl
,
// 149 Single float compare (-1 on NaN)
3758
j_fcmpg
,
// 150 Single float compare (1 on NaN)
3759
j_dcmpl
,
// 151 Double float compare (-1 on NaN)
3760
j_dcmpg
,
// 152 Double float compare (1 on NaN)
3761
j_ifeq
,
// 153 Branch if equal to 0
3762
j_ifne
,
// 154 Branch if not equal to 0
3763
j_iflt
,
// 155 Branch if less then 0
3764
j_ifge
,
// 156 Branch if greater than or equal to 0
3765
j_ifgt
,
// 157 Branch if greater than 0
3766
j_ifle
,
// 158 Branch if less than or equal to 0
3767
j_if_icmpeq
,
// 159 Branch if integers equal
3768
j_if_icmpne
,
// 160 Branch if integers not equal
3769
j_if_icmplt
,
// 161 Branch if integers less than
3770
j_if_icmpge
,
// 162 Branch if integers grater than or equal to
3771
j_if_icmpgt
,
// 163 Branch if integers grater than
3772
j_if_icmple
,
// 164 Branch if integers less than or equal to
3773
j_if_acmpeq
,
// 165 Branch if object references are equal
3774
j_if_acmpne
,
// 166 Branch if object references not equal
3775
j_goto
,
// 167 Branch always
3776
j_jsr
,
// 168 Jump subroutine
3777
j_ret
,
// 169 Return from subroutine
3778
j_tableswitch
,
// 170 Access jump table by index and jump
3779
j_lookupswitch
,
// 171 Access jump table by key match and jump
3780
j_ireturn
,
// 172 Return integer from function
3781
j_lreturn
,
// 173 Return long from function
3782
j_freturn
,
// 174 Return single floatr from function
3783
j_dreturn
,
// 175 Return double float from function
3784
j_areturn
,
// 176 Return object reference from function
3785
j_return
,
// 177 Return (void) from procedure
3786
j_getstatic
,
// 178 Set static field from class
3787
j_putstatic
,
// 179 Set static field in class
3788
j_getfield
,
// 180 Fetch field from object
3789
j_putfield
,
// 181 Set field in object
3790
j_invokevirtual
,
// 182 invoke instance method
3791
j_invokespecial
,
// 183 invoke instance method (superclass/init/...)
3792
j_invokestatic
,
// 184 invoke a class (static) method
3793
j_invokeinterface
,
// 185 invoke interface method
3794
j_invokedynamic
,
// 186 invoke instance method (select by paraneter)
3795
j_new
,
// 187 Create new object
3796
j_newarray
,
// 188 Allocate new array
3797
j_anewarray
,
// 189 Allocate new array of refernces to object
3798
j_arraylength
,
// 190 Get length of array
3799
j_athrow
,
// 191 Throw exception or error
3800
j_checkcast
,
// 192 Make sure object is of given type
3801
j_instanceof
,
// 193 Determine if an object is of given type
3802
j_monitorenter
,
// 194 Enter monitored region of code
3803
j_monitorexit
,
// 195 Exit monitored region of code
3804
j_wide
,
// 196 wide (prefix of command)
3805
j_multianewarray
,
// 197 Allocate new multi-dimensional array
3806
j_ifnull
,
// 198 Branch if NULL-ptr
3807
j_ifnonnull
,
// 199 Branch if not NULL-ptr
3808
j_goto_w
,
// 200 Branch always (wide index)
3809
j_jsr_w
,
// 201 Jump subroutine (wide index)
3810
j_breakpoint
,
// 202 Stop and pass control to breakpoint handler
3811
//
3812
j_lastnorm
,
3813
j_a_invokesuper
=
j_lastnorm
,
3814
j_a_invokevirtualobject
,
3815
j_a_invokeignored
,
3816
// bottom of table ! (emu)
3817
j_a_software
,
3818
j_a_hardware
,
3819
//
3820
j_last
3821
};
3822
enum
name_quick
3823
{
3824
j_ldc_quick
=
j_lastnorm
,
// 203 (18)
3825
j_ldcw_quick
,
// 204 (19)
3826
j_ldc2w_quick
,
// 205 (20)
3827
j_getfield_quick
,
// 206 (180)
3828
j_putfield_quick
,
// 207 (181)
3829
j_getfield2_quick
,
// 208
3830
j_putfield2_quick
,
// 209
3831
j_getstatic_quick
,
// 210 (178)
3832
j_putstatic_quick
,
// 211 (179)
3833
j_getstatic2_quick
,
// 212
3834
j_putstatic2_quick
,
// 213
3835
j_invokevirtual_quick
,
// 214 (182)
3836
j_invokenonvirtual_quick
,
// 215 (183)
3837
j_invokesuper_quick
,
// 216
3838
j_invokestatic_quick
,
// 217 (184)
3839
j_invokeinterface_quick
,
// 218 (185)
3840
j_invokevirtualobject_quick
,
// 219
3841
j_invokeignored_quick
,
// 220
3842
j_new_quick
,
// 221 (187)
3843
j_anewarray_quick
,
// 222 (189)
3844
j_multianewarray_quick
,
// 223 (197)
3845
j_checkcast_quick
,
// 224 (192)
3846
j_instanceof_quick
,
// 225 (193)
3847
j_invokevirtual_quick_w
,
// 226
3848
j_getfield_quick_w
,
// 227
3849
j_putfield_quick_w
,
// 228
3850
j_quick_last
3851
};
3852
/*
3853
* Interactive disassembler (IDA).
3854
* Copyright (c) 1990-2026 Hex-Rays
3855
* ALL RIGHTS RESERVED.
3856
*
3857
*/
3858
enum
3859
{
3860
ARM_null
= 0,
// Unknown Operation
3861
ARM_ret
,
// Return from Subroutine
3862
ARM_nop
,
// No Operation
3863
ARM_b
,
// Branch
3864
ARM_bl
,
// Branch with Link
3865
ARM_asr
,
// Arithmetic Shift Right
3866
ARM_lsl
,
// Logical Shift Left
3867
ARM_lsr
,
// Logical Shift Right
3868
ARM_ror
,
// Rotate Right
3869
ARM_neg
,
// Negate
3870
ARM_and
,
// 0 Rd = Op1 & Op2
3871
ARM_eor
,
// 1 Rd = Op1 ^ Op2
3872
ARM_sub
,
// 2 Rd = Op1 - Op2
3873
ARM_rsb
,
// 3 Rd = Op2 - Op1
3874
ARM_add
,
// 4 Rd = Op1 + Op2
3875
ARM_adc
,
// 5 Rd = Op1 + Op2 + C
3876
ARM_sbc
,
// 6 Rd = Op1 - Op2 + C - 1
3877
ARM_rsc
,
// 7 Rd = Op2 - Op1 + C - 1
3878
ARM_tst
,
// 8 Set cond. codes on Op1 & Op2
3879
ARM_teq
,
// 9 Set cond. codes on Op1 ^ Op2
3880
ARM_cmp
,
// A Set cond. codes on Op1 - Op2
3881
ARM_cmn
,
// B Set cond. codes on Op1 + Op2
3882
ARM_orr
,
// C Rd = Op1 | Op2
3883
ARM_mov
,
// D Rd = Op2
3884
ARM_bic
,
// E Rd = Op1 & ~Op2
3885
ARM_mvn
,
// F Rd = ~Op2
3886
ARM_mrs
,
// Transfer PSR to Register
3887
ARM_msr
,
// Transfer Register to PSR
3888
ARM_mul
,
// Multiply
3889
ARM_mla
,
// Multiply-Accumulate
3890
ARM_ldr
,
// Load from Memory
3891
ARM_ldrpc
,
// Indirect Jump
3892
ARM_str
,
// Store to Memory
3893
ARM_ldm
,
// Load Block from Memory
3894
ARM_stm
,
// Store Block to Memory
3895
ARM_swp
,
// Single Data Swap
3896
ARM_svc
,
// Supervisor call
3897
// Version 4
3898
ARM_smull
,
// Signed Multiply long
3899
ARM_smlal
,
// Signed Multiply-Accumulate long
3900
ARM_umull
,
// Unsigned Multiply long
3901
ARM_umlal
,
// Unsigned Multiply-Accumulate long
3902
ARM_bx
,
// Branch to/from Thumb mode
3903
ARM_pop
,
// Pop registers
3904
ARM_push
,
// Push registers
3905
ARM_adr
,
// Load address
3906
// Version 5
3907
ARM_bkpt
,
// Breakpoint
3908
ARM_blx1
,
// Branch with Link and Exchange (immediate address)
3909
ARM_blx2
,
// Branch with Link and Exchange (register indirect)
3910
ARM_clz
,
// Count Leading Zeros
3911
// Version 5E
3912
ARM_ldrd
,
// Load pair of registers
3913
ARM_pld
,
// Prepare to load data
3914
ARM_qadd
,
// Saturated addition
3915
ARM_qdadd
,
// Saturated addition with doubling
3916
ARM_qdsub
,
// Saturated subtraction with doubling
3917
ARM_qsub
,
// Saturated subtraction
3918
ARM_smlabb
,
// Signed multiply-accumulate (bottom*bottom)
3919
ARM_smlatb
,
// Signed multiply-accumulate (top*bottom)
3920
ARM_smlabt
,
// Signed multiply-accumulate (bottom*top)
3921
ARM_smlatt
,
// Signed multiply-accumulate (top*top)
3922
ARM_smlalbb
,
// Long signed multiply-accumulate (bottom*bottom)
3923
ARM_smlaltb
,
// Long signed multiply-accumulate (top*bottom)
3924
ARM_smlalbt
,
// Long signed multiply-accumulate (bottom*top)
3925
ARM_smlaltt
,
// Long signed multiply-accumulate (top*top)
3926
ARM_smlawb
,
// Wide signed multiply-accumulate (bottom)
3927
ARM_smulwb
,
// Wide signed multiply (bottom)
3928
ARM_smlawt
,
// Wide signed multiply-accumulate (top)
3929
ARM_smulwt
,
// Wide signed multiply (top)
3930
ARM_smulbb
,
// Signed multiply (bottom*bottom)
3931
ARM_smultb
,
// Signed multiply (top*bottom)
3932
ARM_smulbt
,
// Signed multiply (bottom*top)
3933
ARM_smultt
,
// Signed multiply (top*top)
3934
ARM_strd
,
// Store pair of registers
3935
// Intel xScale coprocessor instructions
3936
xScale_mia
,
// Multiply-Internal Accumulate
3937
xScale_miaph
,
// Multiply-Internal Accumulate Packed HalfWords
3938
xScale_miabb
,
// Multiply-Internal Accumulate Bottom-Bottom Halves
3939
xScale_miabt
,
// Multiply-Internal Accumulate Bottom-Top Halves
3940
xScale_miatb
,
// Multiply-Internal Accumulate Top-Bottom Halves
3941
xScale_miatt
,
// Multiply-Internal Accumulate Top-Top Halves
3942
xScale_mar
,
// Move To Internal Accumulator
3943
xScale_mra
,
// Move From Internal Accumulator
3944
// Macro instructions
3945
ARM_movl
,
// Move immediate to register
3946
ARM_adrl
,
// Load address
3947
ARM_swbkpt
,
// WinCE Debugger break
3948
// Coprocessor instructions
3949
ARM_cdp
,
// Coprocessor Data Processing
3950
ARM_cdp2
,
// Coprocessor Data Processing
3951
ARM_ldc
,
// Load Coprocessor Register
3952
ARM_ldc2
,
// Load Coprocessor Register
3953
ARM_stc
,
// Store Coprocessor Register
3954
ARM_stc2
,
// Store Coprocessor Register
3955
ARM_mrc
,
// Move from Coprocessor to ARM Register
3956
ARM_mrc2
,
// Move from Coprocessor to ARM Register
3957
ARM_mcr
,
// Move from ARM to Coprocessor Register
3958
ARM_mcr2
,
// Move from ARM to Coprocessor Register
3959
ARM_mcrr
,
// Copy pair of registers to coprocessor (5E)
3960
ARM_mrrc
,
// Copy pair of registers from coprocessor (5E)
3961
// VFP instructions
3962
ARM_fabsd
,
// Floating point Absolute Value, Double precision
3963
ARM_fabss
,
// Floating point Absolute Value, Single precision
3964
ARM_faddd
,
// Floating point Addition, Double precision
3965
ARM_fadds
,
// Floating point Addition, Single precision
3966
ARM_fcmpd
,
// Floating point Compare, Double precision
3967
ARM_fcmps
,
// Floating point Compare, Single precision
3968
ARM_fcmped
,
// Floating point Compare (NaN Exceptions), Double precision
3969
ARM_fcmpes
,
// Floating point Compare (NaN Exceptions), Single precision
3970
ARM_fcmpezd
,
// Floating point Compare (NaN Exceptions) with Zero, Double precision
3971
ARM_fcmpezs
,
// Floating point Compare (NaN Exceptions) with Zero, Single precision
3972
ARM_fcmpzd
,
// Floating point Compare with Zero, Double precision
3973
ARM_fcmpzs
,
// Floating point Compare with Zero, Single precision
3974
ARM_fcpyd
,
// Floating point Copy, Double precision
3975
ARM_fcpys
,
// Floating point Copy, Single precision
3976
ARM_fcvtsd
,
// Floating point Convert to Single precision from Double precision
3977
ARM_fcvtds
,
// Floating point Convert to Double precision from Single precision
3978
ARM_fdivd
,
// Floating point Divide, Double precision
3979
ARM_fdivs
,
// Floating point Divide, Single precision
3980
ARM_fldd
,
// Floating point Load, Double precision
3981
ARM_flds
,
// Floating point Load, Single precision
3982
ARM_fldmd
,
// Floating point Load Multiple, Double precision
3983
ARM_fldms
,
// Floating point Load Multiple, Single precision
3984
ARM_fldmx
,
// Floating point Load Multiple, Unknown precision
3985
ARM_fmacd
,
// Floating point Multiply and Accumulate, Double precision
3986
ARM_fmacs
,
// Floating point Multiply and Accumulate, Single precision
3987
ARM_fmscd
,
// Floating point Multiply and Subtract, Double precision
3988
ARM_fmscs
,
// Floating point Multiply and Subtract, Single precision
3989
ARM_fmstat
,
// Floating point Move Status
3990
ARM_fmuld
,
// Floating point Multiply, Double precision
3991
ARM_fmuls
,
// Floating point Multiply, Single precision
3992
ARM_fnegd
,
// Floating point Negate, Double precision
3993
ARM_fnegs
,
// Floating point Negate, Single precision
3994
ARM_fnmacd
,
// Floating point Negated Multiply and Accumulate, Double precision
3995
ARM_fnmacs
,
// Floating point Negated Multiply and Accumulate, Single precision
3996
ARM_fnmscd
,
// Floating point Negated Multiply and Subtract, Double precision
3997
ARM_fnmscs
,
// Floating point Negated Multiply and Subtract, Single precision
3998
ARM_fnmuld
,
// Floating point Negated Multiply, Double precision
3999
ARM_fnmuls
,
// Floating point Negated Multiply, Single precision
4000
ARM_fsitod
,
// Floating point Convert Signed Integer to Double precision
4001
ARM_fsitos
,
// Floating point Convert Signed Integer to Single precision
4002
ARM_fsqrtd
,
// Floating point Square Root, Double precision
4003
ARM_fsqrts
,
// Floating point Square Root, Single precision
4004
ARM_fstd
,
// Floating point Store, Double precision
4005
ARM_fsts
,
// Floating point Store, Single precision
4006
ARM_fstmd
,
// Floating point Store Multiple, Double precision
4007
ARM_fstms
,
// Floating point Store Multiple, Single precision
4008
ARM_fstmx
,
// Floating point Store Multiple, Unknown precision
4009
ARM_fsubd
,
// Floating point Subtract, Double precision
4010
ARM_fsubs
,
// Floating point Subtract, Single precision
4011
ARM_ftosid
,
// Floating point Convert to Signed Integer from Double precision
4012
ARM_ftosis
,
// Floating point Convert to Signed Integer from Single precision
4013
ARM_ftosizd
,
// Floating point Convert to Signed Integer from Double precision, RZ mode
4014
ARM_ftosizs
,
// Floating point Convert to Signed Integer from Single precision, RZ mode
4015
ARM_ftouid
,
// Floating point Convert to Unsigned Integer from Double precision
4016
ARM_ftouis
,
// Floating point Convert to Unsigned Integer from Single precision
4017
ARM_ftouizd
,
// Floating point Convert to Unsigned Integer from Double precision, RZ mode
4018
ARM_ftouizs
,
// Floating point Convert to Unsigned Integer from Single precision, RZ mode
4019
ARM_fuitod
,
// Floating point Convert Unsigned Integer to Double precision
4020
ARM_fuitos
,
// Floating point Convert Unsigned Integer to Single precision
4021
ARM_fmdhr
,
// Floating point Move to Double precision High from Register
4022
ARM_fmrdh
,
// Floating point Move to Register from Double precision High
4023
ARM_fmdlr
,
// Floating point Move to Double precision Low from Register
4024
ARM_fmrdl
,
// Floating point Move to Register from Double precision Low
4025
ARM_fmxr
,
// Floating point Move to System Register from Register
4026
ARM_fmrx
,
// Floating point Move to Register from System Register
4027
ARM_fmsr
,
// Floating point Move to Single precision from Register
4028
ARM_fmrs
,
// Floating point Move to Register from Single precision
4029
// VFP ARMv5TE extensions
4030
ARM_fmdrr
,
// Floating point Move to Double precision from two Registers
4031
ARM_fmrrd
,
// Floating point Move to two Registers from Double precision
4032
ARM_fmsrr
,
// Floating point Move to two Single precision from two Registers
4033
ARM_fmrrs
,
// Floating point Move to two Registers from two Single precision
4034
// ARM v5J instructions
4035
ARM_bxj
,
// Branch to Jazelle
4036
// ARM v6 instructions
4037
ARM_mcrr2
,
// Move to Coprocessor from two ARM Registers
4038
ARM_mrrc2
,
// Move to two ARM Registers from Coprocessor
4039
ARM_cps
,
// Change Processor State
4040
ARM_cpsid
,
// Disable Interrupts
4041
ARM_cpsie
,
// Enable Interrupts
4042
ARM_ldrex
,
// Load Register Exclusive
4043
ARM_pkhbt
,
// Pack halfword bottom + top
4044
ARM_pkhtb
,
// Pack halfword top + bottom
4045
ARM_qadd16
,
// Signed saturating arithmetic hafword-wise addition
4046
ARM_qadd8
,
// Signed saturating arithmetic byte-wise addition
4047
ARM_qasx
,
// Saturating Add and Subtract with Exchange
4048
ARM_qaddsubx
=
ARM_qasx
,
// Signed saturating arithmetic exchange, add, substract (old name)
4049
ARM_qsub16
,
// Signed saturating arithmetic hafword-wise substraction
4050
ARM_qsub8
,
// Signed saturating arithmetic byte-wise substraction
4051
ARM_qsax
,
// Saturating Subtract and Add with Exchange
4052
ARM_qsubaddx
=
ARM_qsax
,
// Signed saturating arithmetic exchange, substract, add (old name)
4053
ARM_rev
,
// Byte Reverse Word
4054
ARM_rev16
,
// Byte Reverse Packed Halfword
4055
ARM_revsh
,
// Byte Reverse Signed Halfword
4056
ARM_rfe
,
// Return from exception
4057
ARM_sadd16
,
// Signed arithmetic modulo hafword-wise addition
4058
ARM_sadd8
,
// Signed arithmetic modulo byte-wise addition
4059
ARM_sasx
,
// Signed Add and Subtract with Exchange
4060
ARM_saddsubx
=
ARM_sasx
,
// Signed arithmetic modulo exchange, add, substract (old name)
4061
ARM_sel
,
// Select bytes
4062
ARM_setend
,
// Set Byte Endianness
4063
ARM_shadd16
,
// Signed arithmetic hafword-wise addition, halving results
4064
ARM_shadd8
,
// Signed arithmetic byte-wise addition, halving results
4065
ARM_shasx
,
// Signed Halving Add and Subtract with Exchange
4066
ARM_shaddsubx
=
ARM_shasx
,
// Signed arithmetic exchange, add, substract, halving results (old name)
4067
ARM_shsub16
,
// Signed arithmetic hafword-wise substraction, halving results
4068
ARM_shsub8
,
// Signed arithmetic byte-wise substraction, halving results
4069
ARM_shsax
,
// Signed Halving Subtract and Add with Exchange
4070
ARM_shsubaddx
=
ARM_shsax
,
// Signed arithmetic exchange, substract, add, halving results (old name)
4071
ARM_smlad
,
// Dual signed multiply, add and accumulate
4072
ARM_smladx
,
// Dual signed multiply, add and accumulate crossed
4073
ARM_smuad
,
// Dual signed multiply and add
4074
ARM_smuadx
,
// Dual signed multiply and add crossed
4075
ARM_smlald
,
// Dual signed multiply, add and accumulate long
4076
ARM_smlaldx
,
// Dual signed multiply, add and accumulate long crossed
4077
ARM_smlsd
,
// Dual signed multiply, substract and accumulate
4078
ARM_smlsdx
,
// Dual signed multiply, substract and accumulate crossed
4079
ARM_smusd
,
// Dual signed multiply and substract
4080
ARM_smusdx
,
// Dual signed multiply and substract crossed
4081
ARM_smlsld
,
// Dual signed multiply, substract and accumulate long
4082
ARM_smlsldx
,
// Dual signed multiply, substract and accumulate long crossed
4083
ARM_smmla
,
// Signed most significant word multiply and accumulate truncated
4084
ARM_smmlar
,
// Signed most significant word multiply and accumulate rounded
4085
ARM_smmul
,
// Signed most significant word multiply truncated
4086
ARM_smmulr
,
// Signed most significant word multiply rounded
4087
ARM_smmls
,
// Signed most significant word multiply and substract truncated
4088
ARM_smmlsr
,
// Signed most significant word multiply and substract rounded
4089
ARM_srs
,
// Store Return State
4090
ARM_ssat
,
// Signed Saturate
4091
ARM_ssat16
,
// Signed saturate two halfwords
4092
ARM_ssub16
,
// Signed arithmetic hafword-wise substraction
4093
ARM_ssub8
,
// Signed arithmetic byte-wise substraction
4094
ARM_ssax
,
// Signed Subtract and Add with Exchange
4095
ARM_ssubaddx
=
ARM_ssax
,
// Signed arithmetic exchange, substract, add (old name)
4096
ARM_strex
,
// Store Register Exclusive
4097
ARM_sxtab
,
// Signed extend byte to word, add
4098
ARM_sxtb
,
// Signed extend byte to word
4099
ARM_sxtab16
,
// Signed extend two bytes to halfwords, add
4100
ARM_sxtb16
,
// Signed extend two bytes to halfwords
4101
ARM_sxtah
,
// Signed extend halfword to word, add
4102
ARM_sxth
,
// Signed extend halfword to word
4103
ARM_uadd16
,
// Unsigned arithmetic modulo hafword-wise addition
4104
ARM_uadd8
,
// Unsigned arithmetic modulo byte-wise addition
4105
ARM_uasx
,
// Unsigned Add and Subtract with Exchange
4106
ARM_uaddsubx
=
ARM_uasx
,
// Unsigned arithmetic modulo exchange, add, substract (old name)
4107
ARM_uhadd16
,
// Unsigned arithmetic hafword-wise addition, halving results
4108
ARM_uhadd8
,
// Unsigned arithmetic byte-wise addition, halving results
4109
ARM_uhasx
,
// Unsigned Halving Add and Subtract with Exchange
4110
ARM_uhaddsubx
=
ARM_uhasx
,
// Unsigned arithmetic exchange, add, substract, halving results (old name)
4111
ARM_uhsub16
,
// Unsigned arithmetic hafword-wise substraction, halving results
4112
ARM_uhsub8
,
// Unsigned arithmetic byte-wise substraction, halving results
4113
ARM_uhsax
,
// Unsigned Halving Subtract and Add with Exchange
4114
ARM_uhsubaddx
=
ARM_uhsax
,
// Unsigned arithmetic exchange, substract, add, halving results (old name)
4115
ARM_umaal
,
// Multiply unsigned double accumulate long
4116
ARM_uqadd16
,
// Unsigned saturating arithmetic hafword-wise addition
4117
ARM_uqadd8
,
// Unsigned saturating arithmetic byte-wise addition
4118
ARM_uqasx
,
// Unsigned Saturating Add and Subtract with Exchange
4119
ARM_uqaddsubx
=
ARM_uqasx
,
// Unsigned saturating arithmetic exchange, add, substract (old name)
4120
ARM_uqsub16
,
// Unsigned saturating arithmetic hafword-wise substraction
4121
ARM_uqsub8
,
// Unsigned saturating arithmetic byte-wise substraction
4122
ARM_uqsax
,
// Unsigned Saturating Subtract and Add with Exchange
4123
ARM_uqsubaddx
=
ARM_uqsax
,
// Unsigned saturating arithmetic exchange, substract, add (old name)
4124
ARM_usada8
,
// Unsigned sum of absolute differences and accumulate
4125
ARM_usad8
,
// Unsigned sum of absolute differences
4126
ARM_usat
,
// Unsigned saturate word
4127
ARM_usat16
,
// Unsigned saturate two halfwords
4128
ARM_usub16
,
// Unsigned arithmetic hafword-wise substraction
4129
ARM_usub8
,
// Unsigned arithmetic byte-wise substraction
4130
ARM_usax
,
// Unsigned Subtract and Add with Exchange
4131
ARM_usubaddx
=
ARM_usax
,
// Unsigned arithmetic exchange, substract, add (old name)
4132
ARM_uxtab
,
// Unsigned extend byte to word, add
4133
ARM_uxtb
,
// Unsigned extend byte to word
4134
ARM_uxtab16
,
// Unsigned extend two bytes to halfwords, add
4135
ARM_uxtb16
,
// Unsigned extend two bytes to halfwords
4136
ARM_uxtah
,
// Unsigned extend halfword to word, add
4137
ARM_uxth
,
// Unsigned extend halfword to word
4138
// ARM v6zk instructions
4139
ARM_clrex
,
// Clear Exclusive
4140
ARM_ldrexb
,
// Load Byte Exclusive
4141
ARM_ldrexd
,
// Load DoubleWord Exclusive
4142
ARM_ldrexh
,
// Load Halfword Exclusive
4143
ARM_strexb
,
// Store Byte Exclusive
4144
ARM_strexd
,
// Store DoubleWord Exclusive
4145
ARM_strexh
,
// Store Halfword Exclusive
4146
ARM_yield
,
// Yield (hint)
4147
ARM_sev
,
// Send Event (hint)
4148
ARM_wfe
,
// Wait For Event (hint)
4149
ARM_wfi
,
// Wait For Interrupt (hint)
4150
ARM_smc
,
// Secure Monitor Call
4151
// ARM Thumb32 instructions
4152
ARM_orn
,
// Rd = Op1 | ~Op2
4153
ARM_movt
,
// Move Top
4154
ARM_sbfx
,
// Signed Bit Field Extract
4155
ARM_ubfx
,
// Unsigned Bit Field Extract
4156
ARM_bfi
,
// Bit Field Insert
4157
ARM_bfc
,
// Bit Field Clear
4158
ARM_tbb
,
// Table Branch Byte
4159
ARM_tbh
,
// Table Branch Halfword
4160
ARM_pli
,
// Prepare to load code
4161
ARM_rbit
,
// Reverse Bits
4162
ARM_it
,
// If Then
4163
ARM_mls
,
// Multiply and Subtract
4164
ARM_sdiv
,
// Signed Divide
4165
ARM_udiv
,
// Unsigned Divide
4166
ARM_cbz
,
// Compare and Branch on Zero
4167
ARM_cbnz
,
// Compare and Branch on Non-Zero
4168
ARM_dsb
,
// Data Synchronization Barrier
4169
ARM_dmb
,
// Data Memory Barrier
4170
ARM_isb
,
// Instruction Synchronization Barrier
4171
ARM_dbg
,
// Debug Hint
4172
ARM_udf
,
// Permanently undefined
4173
ARM_und
=
ARM_udf
,
// for backward compatibility
4174
// missing instructions (not yet decoded)
4175
ARM_rrx
,
// Rotate Right with Extend
4176
ARM_enterx
,
// Enter ThumbEE state
4177
ARM_leavex
,
// Leave ThumbEE state
4178
ARM_chka
,
// Check Array
4179
ARM_hb
,
// Handler Branch
4180
ARM_hbl
,
// Handler Branch with Link
4181
ARM_hblp
,
// Handler Branch with Link and Parameter
4182
ARM_hbp
,
// Handler Branch with Parameter
4183
// NEON (Advanced SIMD) and extra VFP instructions
4184
ARM_vaba
,
// Vector Absolute Difference and Accumulate
4185
ARM_vabal
,
// Vector Absolute Difference and Accumulate Long
4186
ARM_vabd
,
// Vector Absolute Difference
4187
ARM_vabdl
,
// Vector Absolute Difference Long
4188
ARM_vabs
,
// Vector Absolute
4189
ARM_vacge
,
// Vector Absolute Compare Greater Than or Equal
4190
ARM_vacgt
,
// Vector Absolute Compare Greater Than
4191
ARM_vacle
,
// Vector Absolute Compare Less Than or Equal
4192
ARM_vaclt
,
// Vector Absolute Compare Less Than
4193
ARM_vadd
,
// Vector Add
4194
ARM_vaddhn
,
// Vector Add and Narrow, returning High Half
4195
ARM_vaddl
,
// Vector Add Long
4196
ARM_vaddw
,
// Vector Add Wide
4197
ARM_vand
,
// Vector Bitwise AND
4198
ARM_vbic
,
// Vector Bitwise Bit Clear
4199
ARM_vbif
,
// Vector Bitwise Insert if False
4200
ARM_vbit
,
// Vector Bitwise Insert if True
4201
ARM_vbsl
,
// Vector Bitwise Select
4202
ARM_vceq
,
// Vector Compare Equal
4203
ARM_vcge
,
// Vector Compare Greater Than or Equal
4204
ARM_vcgt
,
// Vector Compare Greater Than
4205
ARM_vcle
,
// Vector Compare Less Than or Equal
4206
ARM_vcls
,
// Vector Count Leading Sign Bits
4207
ARM_vclt
,
// Vector Compare Less Than
4208
ARM_vclz
,
// Vector Count Leading Zeros
4209
ARM_vcmp
,
// Vector Compare
4210
ARM_vcmpe
,
// Vector Compare (Quiet NaNs trigger Exception)
4211
ARM_vcnt
,
// Vector Count Number of Bits
4212
ARM_vcvt
,
// Vector Convert
4213
ARM_vcvtr
,
// Vector Convert Rounding
4214
ARM_vcvtb
,
// Vector Convert Half-Precision Bottom
4215
ARM_vcvtt
,
// Vector Convert Half-Precision Top
4216
ARM_vdiv
,
// Vector Divide
4217
ARM_vdup
,
// Vector Duplicate
4218
ARM_veor
,
// Vector Bitwise Exclusive OR
4219
ARM_vext
,
// Vector Extract
4220
ARM_vfma
,
// Vector Fused Multiply Accumulate
4221
ARM_vfms
,
// Vector Fused Multiply Substract
4222
ARM_vfnma
,
// Vector Fused Negated Multiply Accumulate
4223
ARM_vfnms
,
// Vector Fused Negated Multiply Substract
4224
ARM_vhadd
,
// Vector Halving Add
4225
ARM_vhsub
,
// Vector Halving Sub
4226
ARM_vld1
,
// Vector Load Single Element
4227
ARM_vld2
,
// Vector Load Two-Element Structures
4228
ARM_vld3
,
// Vector Load Three-Element Structures
4229
ARM_vld4
,
// Vector Load Four-Element Structures
4230
ARM_vldm
,
// Vector Load Multiple
4231
ARM_vldr
,
// Vector Load Register
4232
ARM_vmax
,
// Vector Maximum
4233
ARM_vmin
,
// Vector Minimum
4234
ARM_vmla
,
// Vector Multiply Accumulate
4235
ARM_vmlal
,
// Vector Multiply Accumulate Long
4236
ARM_vmls
,
// Vector Multiply Subtract
4237
ARM_vmlsl
,
// Vector Multiply Subtract Long
4238
ARM_vmov
,
// Vector Move
4239
ARM_vmovl
,
// Vector Move Long
4240
ARM_vmovn
,
// Vector Move and Narrow
4241
ARM_vmrs
,
// Move FPSCR to ARM Register
4242
ARM_vmsr
,
// Move to FPSCR from ARM Register
4243
ARM_vmul
,
// Vector Multiply
4244
ARM_vmull
,
// Vector Multiply Long
4245
ARM_vmvn
,
// Vector Bitwise NOT
4246
ARM_vneg
,
// Vector Negate
4247
ARM_vnmla
,
// Vector Multiply Add Negated
4248
ARM_vnmls
,
// Vector Multiply Substract Negated
4249
ARM_vnmul
,
// Vector Multiply Negated
4250
ARM_vorn
,
// Vector Bitwise OR NOT
4251
ARM_vorr
,
// Vector Bitwise OR
4252
ARM_vpadal
,
// Vector Pairwise Add and Accumulate Long
4253
ARM_vpadd
,
// Vector Pairwise Add
4254
ARM_vpaddl
,
// Vector Pairwise Add Long
4255
ARM_vpmax
,
// Vector Pairwise Maximum
4256
ARM_vpmin
,
// Vector Pairwise Minimum
4257
ARM_vpop
,
// Vector Pop
4258
ARM_vpush
,
// Vector Push
4259
ARM_vqabs
,
// Vector Saturating Absolute
4260
ARM_vqadd
,
// Vector Saturating Add
4261
ARM_vqdmlal
,
// Vector Saturating Doubling Multiply Accumulate Long
4262
ARM_vqdmlsl
,
// Vector Saturating Doubling Multiply Subtract Long
4263
ARM_vqdmulh
,
// Vector Saturating Doubling Multiply Returning High Half
4264
ARM_vqdmull
,
// Vector Saturating Doubling Multiply Long
4265
ARM_vqmovn
,
// Vector Saturating Move and Narrow
4266
ARM_vqmovun
,
// Vector Saturating Move and Narrow, Unsigned result
4267
ARM_vqneg
,
// Vector Saturating Negate
4268
ARM_vqrdmulh
,
// Vector Saturating Rounding Doubling Multiply Returning High Half
4269
ARM_vqrshl
,
// Vector Saturating Rounding Shift Left
4270
ARM_vqrshrn
,
// Vector Saturating Rounding Shift Right, Narrow
4271
ARM_vqrshrun
,
// Vector Saturating Rounding Shift Right, Narrow, Unsigned result
4272
ARM_vqshl
,
// Vector Saturating Shift Left
4273
ARM_vqshlu
,
// Vector Saturating Shift Left, Unsigned result
4274
ARM_vqshrn
,
// Vector Saturating Shift Right, Narrow
4275
ARM_vqshrun
,
// Vector Saturating Shift Right, Narrow, Unsigned result
4276
ARM_vqsub
,
// Vector Saturating Subtract
4277
ARM_vraddhn
,
// Vector Rounding Add and Narrow, returning High Half
4278
ARM_vrecpe
,
// Vector Reciprocal Estimate
4279
ARM_vrecps
,
// Vector Reciprocal Step
4280
ARM_vrev16
,
// Vector Reverse in halfwords
4281
ARM_vrev32
,
// Vector Reverse in words
4282
ARM_vrev64
,
// Vector Reverse in doublewords
4283
ARM_vrhadd
,
// Vector Rounding Halving Add
4284
ARM_vrshl
,
// Vector Rounding Shift Left
4285
ARM_vrshr
,
// Vector Rounding Shift Right
4286
ARM_vrshrn
,
// Vector Rounding Shift Right and Narrow
4287
ARM_vrsqrte
,
// Vector Reciprocal Square Root Estimate
4288
ARM_vrsqrts
,
// Vector Reciprocal Square Root Step
4289
ARM_vrsra
,
// Vector Rounding Shift Right and Accumulate
4290
ARM_vrsubhn
,
// Vector Rounding Subtract and Narrow, returning High Half
4291
ARM_vshl
,
// Vector Shift Left
4292
ARM_vshll
,
// Vector Shift Left Long
4293
ARM_vshr
,
// Vector Shift Right
4294
ARM_vshrn
,
// Vector Shift Right Narrow
4295
ARM_vsli
,
// Vector Shift Left and Insert
4296
ARM_vsqrt
,
// Vector Square Root
4297
ARM_vsra
,
// Vector Shift Right and Accumulate
4298
ARM_vsri
,
// Vector Shift Right and Insert
4299
ARM_vst1
,
// Vector Store Single Element
4300
ARM_vst2
,
// Vector Store Two-Element Structures
4301
ARM_vst3
,
// Vector Store Three-Element Structures
4302
ARM_vst4
,
// Vector Store Four-Element Structures
4303
ARM_vstm
,
// Vector Store Multiple
4304
ARM_vstr
,
// Vector Store Register
4305
ARM_vsub
,
// Vector Subtract
4306
ARM_vsubhn
,
// Vector Subtract and Narrow, returning High Half
4307
ARM_vsubl
,
// Vector Subtract Long
4308
ARM_vsubw
,
// Vector Subtract Wide
4309
ARM_vswp
,
// Vector Swap
4310
ARM_vtbl
,
// Vector Table Lookup
4311
ARM_vtbx
,
// Vector Table Extension
4312
ARM_vtrn
,
// Vector Transpose
4313
ARM_vtst
,
// Vector Test Bits
4314
ARM_vuzp
,
// Vector Unzip
4315
ARM_vzip
,
// Vector Zip
4316
// ARMv7 Hypervisor extensions
4317
ARM_eret
,
// Exception Return
4318
ARM_hvc
,
// Hypervisor Call
4319
// new ARMv8 instructions for A32 and T32 mode
4320
ARM_lda
,
// Load-Acquire Word/Byte/Halfword
4321
ARM_stl
,
// Store-Release Word/Byte/Halfword
4322
ARM_ldaex
,
// Load-Acquire Exclusive Word/Byte/Halfword
4323
ARM_stlex
,
// Store-Release Exclusive Word/Byte/Halfword
4324
ARM_vsel
,
// Floating-point Conditional Select
4325
ARM_vmaxnm
,
// Vector Maximum Numeric
4326
ARM_vminnm
,
// Vector Minimum Numeric
4327
ARM_vcvta
,
// Vector Convert Round to Nearest with Ties to Away
4328
ARM_vcvtn
,
// Vector Convert Round to Nearest with Ties to Even
4329
ARM_vcvtp
,
// Vector Convert Round towards +Infinity
4330
ARM_vcvtm
,
// Vector Convert Round towards -Infinity
4331
ARM_vrintx
,
// Vector Round to Integral, FPSCR rounding mode and signaling inexactness
4332
ARM_vrintr
,
// Vector Round to Integral, FPSCR rounding mode
4333
ARM_vrintz
,
// Vector Round to Integral, Round toward Zero
4334
ARM_vrinta
,
// Vector Round to Integral, Round to Nearest with Ties to Away
4335
ARM_vrintn
,
// Vector Round to Integral, Round to Nearest with Ties to Even
4336
ARM_vrintp
,
// Vector Round to Integral, Round towards +Infinity
4337
ARM_vrintm
,
// Vector Round to Integral, Round towards -Infinity
4338
ARM_aesd
,
// AES single round decryption
4339
ARM_aese
,
// AES single round encryption
4340
ARM_aesimc
,
// AES inverse mix columns
4341
ARM_aesmc
,
// AES mix columns
4342
ARM_sha1c
,
// SHA1 hash update accelerator, choose
4343
ARM_sha1m
,
// SHA1 hash update accelerator, majority
4344
ARM_sha1p
,
// SHA1 hash update accelerator, parity
4345
ARM_sha1h
,
// SHA1 hash update accelerator, rotate left by 30
4346
ARM_sha1su0
,
// SHA1 schedule update accelerator, first part
4347
ARM_sha1su1
,
// SHA1 schedule update accelerator, second part
4348
ARM_sha256h
,
// SHA256 hash update accelerator
4349
ARM_sha256h2
,
// SHA256 hash update accelerator upper part
4350
ARM_sha256su0
,
// SHA256 schedule update accelerator, first part
4351
ARM_sha256su1
,
// SHA256 schedule update accelerator, second part
4352
ARM_dcps1
,
// Debug Change Processor State to EL1
4353
ARM_dcps2
,
// Debug Change Processor State to EL2
4354
ARM_dcps3
,
// Debug Change Processor State to EL3
4355
ARM_hlt
,
// Halting mode software breakpoint
4356
ARM_sevl
,
// Send Event Locally
4357
// ARMv8 AArch64 new instructions
4358
ARM_tbz
,
// Test and Branch Zero
4359
ARM_tbnz
,
// Test and Branch Non-Zero
4360
ARM_br
,
// Branch To Register
4361
ARM_blr
,
// Branch and Link Register
4362
ARM_ldur
,
// Load Single Register (unscaled offset)
4363
ARM_stur
,
// Store Single Register (unscaled offset)
4364
ARM_ldp
,
// Load Pair
4365
ARM_stp
,
// Store Pair
4366
ARM_ldnp
,
// Load Non-temporal Pair
4367
ARM_stnp
,
// Store Non-temporal Pair
4368
ARM_ldtr
,
// Load Unprivileged Register
4369
ARM_sttr
,
// Store Unprivileged Register
4370
ARM_ldxr
,
// Load Exclusive Register
4371
ARM_stxr
,
// Store Exclusive Register
4372
ARM_ldxp
,
// Load Exclusive Pair
4373
ARM_stxp
,
// Store Exclusive Pair
4374
ARM_ldar
,
// Load-Acquire Register
4375
ARM_stlr
,
// Store-Release Register
4376
ARM_ldaxr
,
// Load-Acquire Exclusive Register
4377
ARM_stlxr
,
// Store-Release Exclusive Register
4378
ARM_ldaxp
,
// Load-Acquire Exclusive Pair
4379
ARM_stlxp
,
// Store Exclusive Pair
4380
ARM_prfm
,
// Prefetch Memory
4381
ARM_prfum
,
// Prefetch Memory (unscaled offset)
4382
ARM_movi
,
// Move Immediate
4383
ARM_mvni
,
// Move Inverted Immediate
4384
ARM_movz
,
// Move with Zero
4385
ARM_movn
,
// Move with Not
4386
ARM_movk
,
// Move with Keep
4387
ARM_adrp
,
// Address of Page
4388
ARM_bfm
,
// Bitfield Move
4389
ARM_sbfm
,
// Signed Bitfield Move
4390
ARM_ubfm
,
// Unsigned Bitfield Move
4391
// ARM_bfi, // Bitfield Insert
4392
ARM_bfxil
,
// Bitfield Extract and Insert Low
4393
ARM_sbfiz
,
// Signed Bitfield Insert in Zero
4394
// ARM_sbfx, // Signed Bitfield Extract
4395
ARM_ubfiz
,
// Signed Bitfield Insert in Zero
4396
// ARM_ubfx, // Unsigned Bitfield Extract
4397
ARM_extr
,
// Extract
4398
ARM_sxtw
,
// Signed Extend Word
4399
ARM_uxtw
,
// Unsigned Extend Word (non-existing insn)
4400
ARM_eon
,
// Bitwise exclusive OR NOT
4401
ARM_not
,
// Bitwise NOT
4402
ARM_cls
,
// Count Leading Sign Bits
4403
ARM_rev32
,
// Reverse Bytes in Words
4404
ARM_csel
,
// Conditional Select
4405
ARM_csinc
,
// Conditional Select Increment
4406
ARM_csinv
,
// Conditional Select Invert
4407
ARM_csneg
,
// Conditional Select Negate
4408
ARM_cset
,
// Conditional Set
4409
ARM_csetm
,
// Conditional Set Mask
4410
ARM_cinc
,
// Conditional Increment
4411
ARM_cinv
,
// Conditional Invert
4412
ARM_cneg
,
// Conditional Negate
4413
ARM_ngc
,
// Negate with Carry
4414
ARM_ccmn
,
// Conditional Compare Negative
4415
ARM_ccmp
,
// Conditional Compare
4416
ARM_madd
,
// Multiply-Add
4417
ARM_msub
,
// Multiply-Subtract
4418
ARM_mneg
,
// Multiply-Negate
4419
ARM_smaddl
,
// Signed Multiply-Add Long
4420
ARM_smsubl
,
// Signed Multiply-Subtract Long
4421
ARM_smnegl
,
// Signed Multiply-Negate Long
4422
ARM_smulh
,
// Signed Multiply High
4423
ARM_umaddl
,
// Unsigned Multiply-Add Long
4424
ARM_umsubl
,
// Unsigned Multiply-Subtract Long
4425
ARM_umnegl
,
// Unsigned Multiply-Negate Long
4426
ARM_umulh
,
// Unsigned Multiply High
4427
ARM_drps
,
// Debug Restore Processor State
4428
ARM_sys
,
// System Maintenance Operation
4429
ARM_sysl
,
// System Maintenance Operation With Result
4430
ARM_ic
,
// Instruction Cache Maintenance
4431
ARM_dc
,
// Data Cache Maintenance
4432
ARM_at
,
// Address Translation
4433
ARM_tlbi
,
// TLB Invalidation
4434
ARM_hint
,
// Hint instruction
4435
ARM_brk
,
// Monitor debug-mode breakpoint
4436
// AArch64 Advanced SIMD
4437
ARM_uaba
,
// Unsigned Integer Absolute Difference and Accumulate
4438
ARM_saba
,
// Signed Integer Absolute Difference and Accumulate
4439
ARM_uabal
,
// Unsigned Integer Absolute Difference and Accumulate Long
4440
ARM_uabal2
,
// Unsigned Integer Absolute Difference and Accumulate Long (Second Part)
4441
ARM_sabal
,
// Signed Integer Absolute Difference and Accumulate Long
4442
ARM_sabal2
,
// Signed Integer Absolute Difference and Accumulate Long (Second Part)
4443
ARM_uabd
,
// Unsigned Integer Absolute Difference
4444
ARM_sabd
,
// Signed Integer Absolute Difference
4445
ARM_fabd
,
// Floating-point Absolute Difference
4446
ARM_uabdl
,
// Unsigned Integer Absolute Difference Long
4447
ARM_uabdl2
,
// Unsigned Integer Absolute Difference Long (Second Part)
4448
ARM_sabdl
,
// Signed Integer Absolute Difference Long
4449
ARM_sabdl2
,
// Signed Integer Absolute Difference Long (Second Part)
4450
ARM_abs
,
// Integer Absolute Value
4451
ARM_fabs
,
// Floating-point Absolute Value
4452
ARM_facge
,
// Floating-point Absolute Compare Greater Than or Equal
4453
ARM_facgt
,
// Floating-point Absolute Compare Greater Than
4454
ARM_facle
,
// Floating-point Absolute Compare Less Than or Equal
4455
ARM_faclt
,
// Floating-point Absolute Compare Less Than
4456
ARM_fadd
,
// Floating-point Add
4457
ARM_addhn
,
// Integer Vector Add and Narrow High Half
4458
ARM_addhn2
,
// Integer Vector Add and Narrow High Half (second part)
4459
ARM_uaddl
,
// Unsigned Integer Add Long
4460
ARM_uaddl2
,
// Unsigned Integer Add Long (second part)
4461
ARM_saddl
,
// Signed Integer Add Long
4462
ARM_saddl2
,
// Signed Integer Add Long (second part)
4463
ARM_uaddw
,
// Unsigned Integer Add Wide
4464
ARM_uaddw2
,
// Unsigned Integer Add Wide (second part)
4465
ARM_saddw
,
// Signed Integer Add Wide
4466
ARM_saddw2
,
// Signed Integer Add Wide (second part)
4467
ARM_bif
,
// Bitwise Vector Insert if False
4468
ARM_bit
,
// Bitwise Vector Insert if True
4469
ARM_bsl
,
// Bitwise Vector Select
4470
ARM_cmeq
,
// Ingeger Vector Compare Equal
4471
ARM_fcmeq
,
// Floating-point Vector Compare Equal
4472
ARM_cmhs
,
// Unsigned Compare Greater Than or Equal
4473
ARM_cmge
,
// Signed Compare Greater Than or Equal
4474
ARM_fcmge
,
// Floating-point Compare Greater Than or Equal
4475
ARM_cmhi
,
// Unsigned Compare Greater Than
4476
ARM_cmgt
,
// Signed Compare Greater Than
4477
ARM_fcmgt
,
// Floating-point Compare Greater Than
4478
ARM_cmls
,
// Unsigned Compare Less Than or Equal
4479
ARM_cmle
,
// Signed Compare Less Than or Equal
4480
ARM_fcmle
,
// Floating-point Compare Less Than or Equal
4481
ARM_cmlo
,
// Unsigned Compare Less Than
4482
ARM_cmlt
,
// Signed Compare Less Than
4483
ARM_fcmlt
,
// Floating-point Compare Less Than
4484
ARM_fcmp
,
// Floating-point Compare
4485
ARM_fcmpe
,
// Floating-point Signaling Compare
4486
ARM_fccmp
,
// Floating-point Conditional Quiet Compare
4487
ARM_fccmpe
,
// Floating-point Conditional Signaling Compare
4488
ARM_fcsel
,
// Floating-point Conditional Select
4489
ARM_cnt
,
// Count Non-zero Bits
4490
ARM_fcvt
,
// Floating-point convert precision (scalar)
4491
ARM_fcvtzs
,
// Convert Floating-point to Signed Integer (Round to Zero)
4492
ARM_fcvtas
,
// Convert Floating-point to Signed Integer (Round to Nearest, Ties to Away)
4493
ARM_fcvtns
,
// Convert Floating-point to Signed Integer (Round to Nearest, Ties to Even)
4494
ARM_fcvtps
,
// Convert Floating-point to Signed Integer (Round towards +Infinity)
4495
ARM_fcvtms
,
// Convert Floating-point to Signed Integer (Round towards -Infinity)
4496
ARM_fcvtzu
,
// Convert Floating-point to Unsigned Integer (Round to Zero)
4497
ARM_fcvtau
,
// Convert Floating-point to Unsigned Integer (Round to Nearest, Ties to Away)
4498
ARM_fcvtnu
,
// Convert Floating-point to Unsigned Integer (Round to Nearest, Ties to Even)
4499
ARM_fcvtpu
,
// Convert Floating-point to Unsigned Integer (Round towards +Infinity)
4500
ARM_fcvtmu
,
// Convert Floating-point to Unsigned Integer (Round towards -Infinity)
4501
ARM_ucvtf
,
// Convert Unsigned Integer to Floating-point
4502
ARM_scvtf
,
// Convert Signed Integer to Floating-point
4503
ARM_fcvtn
,
// Floating-point Convert Precision, Narrow
4504
ARM_fcvtn2
,
// Floating-point Convert Precision, Narrow (second part)
4505
ARM_fcvtl
,
// Floating-point Convert Precision, Long
4506
ARM_fcvtl2
,
// Floating-point Convert Precision, Long (second part)
4507
ARM_fcvtxn
,
// Floating-point Convert Precision, Narrow (Round to Odd)
4508
ARM_fcvtxn2
,
// Floating-point Convert Precision, Narrow (Round to Odd) (second part)
4509
ARM_frinta
,
// Floating-point Round to Integral (Round to Nearest, Ties to Away)
4510
ARM_frinti
,
// Floating-point Round to Integral (using FPCR rounding mode)
4511
ARM_frintm
,
// Floating-point Round to Integral (Round towards -Infinity)
4512
ARM_frintn
,
// Floating-point Round to Integral (Round to Nearest, Ties to Even)
4513
ARM_frintp
,
// Floating-point Round to Integral (Round towards +Infinity)
4514
ARM_frintx
,
// Floating-point Round to Integral (using FPCR rounding mode, with exactness test)
4515
ARM_frintz
,
// Floating-point Round to Integral (Round towards Zero)
4516
ARM_fmadd
,
// Floating-point scalar fused multiply-add
4517
ARM_fmsub
,
// Floating-point scalar fused multiply-subtract
4518
ARM_fnmadd
,
// Floating-point scalar negated fused multiply-add
4519
ARM_fnmsub
,
// Floating-point scalar negated fused multiply-subtract
4520
ARM_fdiv
,
// Floating-point Divide
4521
ARM_dup
,
// Duplicate Single Element to All Elements
4522
ARM_ins
,
// Insert Single Element in Another Element
4523
ARM_ext
,
// Bitwise Extract
4524
ARM_uhadd
,
// Unsigned Integer Halving Add
4525
ARM_shadd
,
// Signed Integer Halving Add
4526
ARM_uhsub
,
// Unsigned Integer Halving Subtract
4527
ARM_shsub
,
// Signed Integer Halving Subtract
4528
ARM_ld1
,
// Vector Load Single Element
4529
ARM_ld2
,
// Vector Load Two-Element Structures
4530
ARM_ld3
,
// Vector Load Three-Element Structures
4531
ARM_ld4
,
// Vector Load Four-Element Structures
4532
ARM_ld1r
,
// Vector Load Single Element and Replicate
4533
ARM_ld2r
,
// Vector Load Two-Element Structures and Replicate
4534
ARM_ld3r
,
// Vector Load Three-Element Structures and Replicate
4535
ARM_ld4r
,
// Vector Load Four-Element Structures and Replicate
4536
ARM_umax
,
// Unsigned Integer Maximum
4537
ARM_smax
,
// Signed Integer Maximum
4538
ARM_fmax
,
// Floating-point Maximum
4539
ARM_fmaxnm
,
// Floating-point maxNum()
4540
ARM_umin
,
// Unsigned Integer Minimum
4541
ARM_smin
,
// Signed Integer Minimum
4542
ARM_fmin
,
// Floating-point Minimum
4543
ARM_fminnm
,
// Floating-point minNum()
4544
ARM_fmla
,
// Fused Multiply-Add
4545
ARM_umlal2
,
// Unsigned Integer Multiply-Add Long (second part)
4546
ARM_smlal2
,
// Signed Integer Multiply-Add Long (second part)
4547
ARM_fmls
,
// Fused Multiply-Subtract
4548
ARM_umlsl
,
// Unsigned Integer Multiply-Subtract Long
4549
ARM_umlsl2
,
// Unsigned Integer Multiply-Subtract Long (second part)
4550
ARM_smlsl
,
// Signed Integer Multiply-Subtract Long
4551
ARM_smlsl2
,
// Signed Integer Multiply-Subtract Long (second part)
4552
ARM_umov
,
// Unsigned Integer Move
4553
ARM_smov
,
// Signed Integer Move
4554
ARM_fmov
,
// Floating-point Move
4555
ARM_uxtl
,
// Unsigned Integer Vector Lengthen
4556
ARM_uxtl2
,
// Unsigned Integer Vector Lengthen (second part)
4557
ARM_sxtl
,
// Signed Integer Vector Lengthen
4558
ARM_sxtl2
,
// Signed Integer Vector Lengthen (second part)
4559
ARM_xtn
,
// Integer Vector Narrow
4560
ARM_xtn2
,
// Integer Vector Narrow (second part)
4561
ARM_fmul
,
// Floating-point Vector Multiply
4562
ARM_pmul
,
// Polynomial Vector Multiply
4563
ARM_fmulx
,
// Floating-point Multiply Extended
4564
ARM_fnmul
,
// Floating-point Multiply-Negate
4565
ARM_umull2
,
// Unsigned Integer Vector Multiply Long (second part)
4566
ARM_smull2
,
// Signed Integer Vector Multiply Long (second part)
4567
ARM_pmull
,
// Polynomial Vector Multiply Long
4568
ARM_pmull2
,
// Polynomial Vector Multiply Long (second part)
4569
ARM_fneg
,
// Floating-point Negate
4570
ARM_uadalp
,
// Unsigned Integer Vector Add and Accumulate Long Pair
4571
ARM_sadalp
,
// Signed Integer Vector Add and Accumulate Long Pair
4572
ARM_addp
,
// Integer Vector Add Pair
4573
ARM_faddp
,
// Floating-point Vector Add Pair
4574
ARM_uaddlp
,
// Unsigned Integer Vector Add Long Pair
4575
ARM_saddlp
,
// Signed Integer Vector Add Long Pair
4576
ARM_umaxp
,
// Unsigned Integer Maximum Pair
4577
ARM_smaxp
,
// Signed Integer Maximum Pair
4578
ARM_fmaxp
,
// Floating-point Maximum Pair
4579
ARM_fmaxnmp
,
// Floating-point maxNum Pair
4580
ARM_uminp
,
// Unsigned Integer Minimum Pair
4581
ARM_sminp
,
// Signed Integer Minimum Pair
4582
ARM_fminp
,
// Floating-point Minimum Pair
4583
ARM_fminnmp
,
// Floating-point minNum Pair
4584
ARM_sqabs
,
// Signed Integer Saturating Absolute
4585
ARM_uqadd
,
// Unsigned Integer Saturating Add
4586
ARM_sqadd
,
// Signed Integer Saturating Add
4587
ARM_suqadd
,
// Signed Integer Saturating Accumulate of Unsigned Values
4588
ARM_usqadd
,
// Unsigned Integer Saturating Accumulate of Signed Values
4589
ARM_sqdmlal
,
// Signed Integer Saturating Doubling Multiply Add Long
4590
ARM_sqdmlal2
,
// Signed Integer Saturating Doubling Multiply Add Long (second part)
4591
ARM_sqdmlsl
,
// Signed Integer Saturating Doubling Multiply Subtract Long
4592
ARM_sqdmlsl2
,
// Signed Integer Saturating Doubling Multiply Subtract Long (second part)
4593
ARM_sqdmulh
,
// Signed Integer Saturating Doubling Multiply Returning High Half
4594
ARM_sqdmull
,
// Signed Integer Saturating Doubling Multiply Long
4595
ARM_sqdmull2
,
// Signed Integer Saturating Doubling Multiply Long (second part)
4596
ARM_uqxtn
,
// Unsigned Integer Saturating Vector Narrow
4597
ARM_uqxtn2
,
// Unsigned Integer Saturating Vector Narrow (second part)
4598
ARM_sqxtn
,
// Signed Integer Saturating Vector Narrow
4599
ARM_sqxtn2
,
// Signed Integer Saturating Vector Narrow (second part)
4600
ARM_sqxtun
,
// Signed Integer Saturating Vector and Unsigned Narrow
4601
ARM_sqxtun2
,
// Signed Integer Saturating Vector and Unsigned Narrow (second part)
4602
ARM_sqneg
,
// Signed Integer Saturating Negate
4603
ARM_sqrdmulh
,
// Signed Integer Saturating Rounding Doubling Multiply Returning High Half
4604
ARM_uqrshl
,
// Unsigned Integer Saturating Rounding Shift Left
4605
ARM_sqrshl
,
// Signed Integer Saturating Rounding Shift Left
4606
ARM_uqrshrn
,
// Unsigned Integer Saturating Rounding Shift Right, Narrow
4607
ARM_uqrshrn2
,
// Unsigned Integer Saturating Rounding Shift Right, Narrow (second part)
4608
ARM_sqrshrn
,
// Signed Integer Saturating Rounding Shift Right, Narrow
4609
ARM_sqrshrn2
,
// Signed Integer Saturating Rounding Shift Right, Narrow (second part)
4610
ARM_sqrshrun
,
// Signed Integer Saturating Rounding Shift Right, Narrow, Unsigned result
4611
ARM_sqrshrun2
,
// Signed Integer Saturating Rounding Shift Right, Narrow, Unsigned result (second part)
4612
ARM_uqshl
,
// Unsigned Integer Saturating Shift Left
4613
ARM_sqshl
,
// Signed Integer Saturating Shift Left
4614
ARM_sqshlu
,
// Signed Integer Saturating Shift Left, Unsigned result
4615
ARM_uqshrn
,
// Unsigned Integer Saturating Shift Right, Narrow
4616
ARM_uqshrn2
,
// Unsigned Integer Saturating Shift Right, Narrow (second part)
4617
ARM_sqshrn
,
// Signed Integer Saturating Shift Right, Narrow
4618
ARM_sqshrn2
,
// Signed Integer Saturating Shift Right, Narrow (second part)
4619
ARM_sqshrun
,
// Signed Integer Saturating Shift Right, Narrow, Unsigned result
4620
ARM_sqshrun2
,
// Signed Integer Saturating Shift Right, Narrow, Unsigned result (second part)
4621
ARM_uqsub
,
// Unsigned Integer Saturating Subtract
4622
ARM_sqsub
,
// Signed Integer Saturating Subtract
4623
ARM_raddhn
,
// Integer Rounding Add and Narrow, returning High Half
4624
ARM_raddhn2
,
// Integer Rounding Add and Narrow, returning High Half (second part)
4625
ARM_urecpe
,
// Unsigned Integer Reciprocal Estimate
4626
ARM_frecpe
,
// Floating-point Reciprocal Estimate
4627
ARM_frecps
,
// Floating-point Reciprocal Step
4628
ARM_frecpx
,
// Floating-point Reciprocal Exponent
4629
ARM_rev64
,
// Reverse doublewords
4630
ARM_urhadd
,
// Unsigned Integer Rounding Halving Add
4631
ARM_srhadd
,
// Signed Integer Rounding Halving Add
4632
ARM_urshl
,
// Unsigned Integer Rounding Shift Left
4633
ARM_srshl
,
// Signed Integer Rounding Shift Left
4634
ARM_urshr
,
// Unsigned Integer Rounding Shift Right
4635
ARM_srshr
,
// Signed Integer Rounding Shift Right
4636
ARM_rshrn
,
// Integer Rounding Shift Right and Narrow
4637
ARM_rshrn2
,
// Integer Rounding Shift Right and Narrow (second part)
4638
ARM_ursqrte
,
// Unsigned Integer Reciprocal Square Root Estimate
4639
ARM_frsqrte
,
// Floating-point Reciprocal Square Root Estimate
4640
ARM_frsqrts
,
// Floating-point Reciprocal Square Root Step
4641
ARM_ursra
,
// Unsigned Integer Rounding Shift Right and Accumulate
4642
ARM_srsra
,
// Signed Integer Rounding Shift Right and Accumulate
4643
ARM_rsubhn
,
// Integer Subtract and Narrow, returning High Half
4644
ARM_rsubhn2
,
// Integer Subtract and Narrow, returning High Half (second part)
4645
ARM_ushl
,
// Unsigned Integer Shift Left
4646
ARM_sshl
,
// Signed Integer Shift Left
4647
ARM_ushll
,
// Unsigned Integer Shift Left Long
4648
ARM_ushll2
,
// Unsigned Integer Shift Left Long (second part)
4649
ARM_sshll
,
// Signed Integer Shift Left Long
4650
ARM_sshll2
,
// Signed Integer Shift Left Long (second part)
4651
ARM_ushr
,
// Unsigned Integer Shift Right
4652
ARM_sshr
,
// Signed Integer Shift Right
4653
ARM_shrn
,
// Integer Shift Right Narrow
4654
ARM_shrn2
,
// Integer Shift Right Narrow (second part)
4655
ARM_shl
,
// Shift Left
4656
ARM_shll
,
// Shift Left Long
4657
ARM_shll2
,
// Shift Left Long (second part)
4658
ARM_sli
,
// Integer Vector Shift Left and Insert
4659
ARM_fsqrt
,
// Floating-point Square Root
4660
ARM_usra
,
// Unsigned Integer Shift Right and Accumulate
4661
ARM_ssra
,
// Signed Integer Shift Right and Accumulate
4662
ARM_sri
,
// Integer Shift Right and Insert
4663
ARM_st1
,
// Vector Store Single Element
4664
ARM_st2
,
// Vector Store Two-Element Structures
4665
ARM_st3
,
// Vector Store Three-Element Structures
4666
ARM_st4
,
// Vector Store Four-Element Structures
4667
ARM_fsub
,
// Floating-point Subtract
4668
ARM_subhn
,
// Integer Subtract and Narrow, returning High Half
4669
ARM_subhn2
,
// Integer Subtract and Narrow, returning High Half (second part)
4670
ARM_usubl
,
// Unsigned Integer Subtract Long
4671
ARM_usubl2
,
// Unsigned Integer Subtract Long (second part)
4672
ARM_ssubl
,
// Signed Integer Subtract Long
4673
ARM_ssubl2
,
// Signed Integer Subtract Long (second part)
4674
ARM_usubw
,
// Unsigned Integer Subtract Wide
4675
ARM_usubw2
,
// Unsigned Integer Subtract Wide (second part)
4676
ARM_ssubw
,
// Signed Integer Subtract Wide
4677
ARM_ssubw2
,
// Signed Integer Subtract Wide (second part)
4678
ARM_tbl
,
// Vector Table Lookup
4679
ARM_tbx
,
// Vector Table Extension
4680
ARM_trn1
,
// Vector Element Transpose (primary)
4681
ARM_trn2
,
// Vector Element Transpose (secondary)
4682
ARM_cmtst
,
// Integer Compare Mask Bitwise Test
4683
ARM_uzp1
,
// Vector Element Unzip (primary)
4684
ARM_uzp2
,
// Vector Element Unzip (secondary)
4685
ARM_zip1
,
// Vector Element Zip (primary)
4686
ARM_zip2
,
// Vector Element Zip (secondary)
4687
ARM_addv
,
// Integer Sum Elements in Vector
4688
ARM_uaddlv
,
// Unsigned Integer Sum Elements in Vector Long
4689
ARM_saddlv
,
// Signed Integer Sum Elements in Vector Long
4690
ARM_umaxv
,
// Unsigned Integer Max Element in Vector
4691
ARM_smaxv
,
// Signed Integer Max Element in Vector
4692
ARM_fmaxv
,
// Floating-point Max Element in Vector
4693
ARM_fmaxnmv
,
// Floating-point maxNum Element in Vector
4694
ARM_uminv
,
// Unsigned Integer Min Element in Vector
4695
ARM_sminv
,
// Signed Integer Min Element in Vector
4696
ARM_fminv
,
// Floating-point Min Element in Vector
4697
ARM_fminnmv
,
// Floating-point minNum Element in Vector
4698
// atomic operations (ARMv8.1/ARMv8.3)
4699
// ARM_swp, // Swap value with memory, No memory ordering
4700
ARM_swpl
,
// Swap value with memory, Release
4701
ARM_swpa
,
// Swap value with memory, Acquire
4702
ARM_swpal
,
// Swap value with memory, Acquire and release
4703
ARM_ldapr
,
// Load-Acquire RCpc Register
4704
ARM_ldadd
,
// Atomic add on value in memory (return initial value), No memory ordering
4705
ARM_ldaddl
,
// Atomic add on value in memory (return initial value), Release
4706
ARM_ldadda
,
// Atomic add on value in memory (return initial value), Acquire
4707
ARM_ldaddal
,
// Atomic add on value in memory (return initial value), Acquire and release
4708
ARM_stadd
,
// Atomic add on value in memory (no return), No memory ordering
4709
ARM_staddl
,
// Atomic add on value in memory (no return), Release
4710
ARM_ldclr
,
// Atomic bit clear on value in memory (return initial value), No memory ordering
4711
ARM_ldclrl
,
// Atomic bit clear on value in memory (return initial value), Release
4712
ARM_ldclra
,
// Atomic bit clear on value in memory (return initial value), Acquire
4713
ARM_ldclral
,
// Atomic bit clear on value in memory (return initial value), Acquire and release
4714
ARM_stclr
,
// Atomic bit clear on value in memory (no return), No memory ordering
4715
ARM_stclrl
,
// Atomic bit clear on value in memory (no return), Release
4716
ARM_ldeor
,
// Atomic exclusive OR on value in memory (return initial value), No memory ordering
4717
ARM_ldeorl
,
// Atomic exclusive OR on value in memory (return initial value), Release
4718
ARM_ldeora
,
// Atomic exclusive OR on value in memory (return initial value), Acquire
4719
ARM_ldeoral
,
// Atomic exclusive OR on value in memory (return initial value), Acquire and release
4720
ARM_steor
,
// Atomic exclusive OR on value in memory (no return), No memory ordering
4721
ARM_steorl
,
// Atomic exclusive OR on value in memory (no return), Release
4722
ARM_ldset
,
// Atomic bit set on value in memory (return initial value), No memory ordering
4723
ARM_ldsetl
,
// Atomic bit set on value in memory (return initial value), Release
4724
ARM_ldseta
,
// Atomic bit set on value in memory (return initial value), Acquire
4725
ARM_ldsetal
,
// Atomic bit set on value in memory (return initial value), Acquire and release
4726
ARM_stset
,
// Atomic bit set on value in memory (no return), No memory ordering
4727
ARM_stsetl
,
// Atomic bit set on value in memory (no return), Release
4728
ARM_ldsmax
,
// Atomic signed maximum on value in memory (return initial value), No memory ordering
4729
ARM_ldsmaxl
,
// Atomic signed maximum on value in memory (return initial value), Release
4730
ARM_ldsmaxa
,
// Atomic signed maximum on value in memory (return initial value), Acquire
4731
ARM_ldsmaxal
,
// Atomic signed maximum on value in memory (return initial value), Acquire and release
4732
ARM_stsmax
,
// Atomic signed maximum on value in memory (no return), No memory ordering
4733
ARM_stsmaxl
,
// Atomic signed maximum on value in memory (no return), Release
4734
ARM_ldsmin
,
// Atomic signed minimum on value in memory (return initial value), No memory ordering
4735
ARM_ldsminl
,
// Atomic signed minimum on value in memory (return initial value), Release
4736
ARM_ldsmina
,
// Atomic signed minimum on value in memory (return initial value), Acquire
4737
ARM_ldsminal
,
// Atomic signed minimum on value in memory (return initial value), Acquire and release
4738
ARM_stsmin
,
// Atomic signed minimum on value in memory (no return), No memory ordering
4739
ARM_stsminl
,
// Atomic signed minimum on value in memory (no return), Release
4740
ARM_ldumax
,
// Atomic unsigned maximum on value in memory (return initial value), No memory ordering
4741
ARM_ldumaxl
,
// Atomic unsigned maximum on value in memory (return initial value), Release
4742
ARM_ldumaxa
,
// Atomic unsigned maximum on value in memory (return initial value), Acquire
4743
ARM_ldumaxal
,
// Atomic unsigned maximum on value in memory (return initial value), Acquire and release
4744
ARM_stumax
,
// Atomic unsigned maximum on value in memory (no return), No memory ordering
4745
ARM_stumaxl
,
// Atomic unsigned maximum on value in memory (no return), Release
4746
ARM_ldumin
,
// Atomic unsigned minimum on value in memory (return initial value), No memory ordering
4747
ARM_lduminl
,
// Atomic unsigned minimum on value in memory (return initial value), Release
4748
ARM_ldumina
,
// Atomic unsigned minimum on value in memory (return initial value), Acquire
4749
ARM_lduminal
,
// Atomic unsigned minimum on value in memory (return initial value), Acquire and release
4750
ARM_stumin
,
// Atomic unsigned minimum on value in memory (no return), No memory ordering
4751
ARM_stuminl
,
// Atomic unsigned minimum on value in memory (no return), Release
4752
// Compare and Swap (ARMv8.1)
4753
ARM_cas
,
// Compare and Swap , No memory ordering
4754
ARM_casl
,
// Compare and Swap, Release
4755
ARM_casa
,
// Compare and Swap, Acquire
4756
ARM_casal
,
// Compare and Swap, Acquire and release
4757
ARM_casp
,
// Compare and Swap Pair, No memory ordering
4758
ARM_caspl
,
// Compare and Swap Pair, Release
4759
ARM_caspa
,
// Compare and Swap Pair, Acquire
4760
ARM_caspal
,
// Compare and Swap Pair, Acquire and release
4761
ARM_ldlar
,
// Load LOAcquire Register
4762
ARM_stllr
,
// Store LORelease Register
4763
ARM_sqrdmlah
,
// Signed Saturating Rounding Doubling Multiply Accumulate
4764
ARM_sqrdmlsh
,
// Signed Saturating Rounding Doubling Multiply Subtract
4765
// Pointer authentication (ARMv8.3)
4766
// only completely new instructions are included;
4767
// authenticated variations of old ones are represented by instruction flags (see arm.hpp)
4768
ARM_pac
,
// Pointer Authentication Code for Data/Instruction address/generic
4769
ARM_aut
,
// Authenticate Data/Instruction address
4770
ARM_xpac
,
// Strip Pointer Authentication Code
4771
// ARM insns for the legacy assembler (2 operands)
4772
ARM_ldrd2
,
// Load pair of registers
4773
ARM_strd2
,
// Store pair of registers
4774
// CRC32 (optional in 8.0, mandatory since 8.1)
4775
ARM_crc32
,
// CRC32 using polynomial 0x04C11DB7
4776
ARM_crc32c
,
// CRC32 using polynomial 0x1EDC6F41
4777
// Armv8-M Security Extension (TrustZone for Armv8-M)
4778
ARM_tt
,
// Test Target (query the Security state and access permissions of a memory location)
4779
ARM_tta
,
// Test Target Alternate Domain (query the Security state and access permissions of a memory location for a Non-secure access)
4780
ARM_sg
,
// Secure Gateway
4781
ARM_vlldm
,
// Floating-point Lazy Load Multiple
4782
ARM_vlstm
,
// Floating-point Lazy Store Multiple
4783
// MP Extension instructions
4784
ARM_pldw
,
// Preload Data for write
4785
// ARMv8.1-RDMA (AArh32)
4786
ARM_vqrdmlah
,
// Vector Saturating Rounding Doubling Multiply Accumulate Returning High Half.
4787
// Vector Saturating Rounding Doubling Multiply Accumulate
4788
ARM_vqrdmlsh
,
// Vector Saturating Rounding Doubling Multiply Subtract Returning High Half
4789
// ARMv8.2-FP16 (AArch32)
4790
ARM_vmovx
,
// Vector Move extraction
4791
ARM_vins
,
// Vector move Insertion.
4792
// ARMv8.3-JSConv (AArch32)
4793
ARM_vjcvt
,
// Javascript Convert to signed fixed-point, rounding toward Zero
4794
// ARMv8.3-JSConv (A64)
4795
ARM_fjcvtzs
,
// Javascript Convert to signed fixed-point, rounding toward Zero
4796
/*
4797
// ARMv8.3-CompNum, SIMD complex number support
4798
ARM_fcadd, // Floating-point complex add
4799
ARM_fcmla, // Floating-point complex multiply accumulate
4800
*/
4801
// ARMv8.4-RCPC
4802
ARM_ldapur
,
// Load-Acquire RCpc Register (unscaled offset)
4803
ARM_stlur
,
// Store-Release Register (unscaled offset)
4804
// ARMv8.4
4805
ARM_cfinv
,
// Invert Carry Flag
4806
ARM_rmif
,
// Rotate value and mask into flags
4807
ARM_setf8
,
// set flags from value (8-bit)
4808
ARM_setf16
,
// set flags from value (16-bit)
4809
ARM_xaflag
,
// Convert floating-point condition flags to ARM format
4810
ARM_axflag
,
// Convert floating-point condition flags from ARM to external format.
4811
// ARMv8.5
4812
ARM_addg
,
// Add with Tag
4813
ARM_subg
,
// Subtract with Tag
4814
ARM_subp
,
// Subtract Pointer
4815
ARM_cmpp
,
// Compare with Tag
4816
ARM_irg
,
// Insert Random Tag
4817
ARM_gmi
,
// Tag Mask Insert
4818
ARM_stg
,
// Store Allocation Tag
4819
ARM_stzg
,
// Store Allocation Tag, Zeroing
4820
ARM_stzgm
,
// Store Tag and Zero Multiple
4821
ARM_st2g
,
// Store Allocation Tags
4822
ARM_stz2g
,
// Store Allocation Tags, Zeroing
4823
ARM_stgm
,
// Store Tag Multiple
4824
ARM_stgp
,
// Store Allocation Tag and Pair of registers
4825
ARM_ldg
,
// Load Allocation Tag
4826
ARM_ldgm
,
// Load Tag Multiple
4827
ARM_bti
,
// Branch Target Identification
4828
ARM_sb
,
// Speculation Barrier
4829
ARM_ssbb
,
// Speculative Store Bypass Barrier
4830
ARM_pssbb
,
// Physical Speculative Store Bypass Barrier
4831
//
4832
ARM_frint32x
,
// Floating-point Round to 32-bit Integer, using current rounding mode
4833
ARM_frint32z
,
// Floating-point Round to 32-bit Integer toward Zero
4834
ARM_frint64x
,
// Floating-point Round to 32-bit Integer, using current rounding mode
4835
ARM_frint64z
,
// Floating-point Round to 32-bit Integer toward Zero
4836
// ARMv8.2-SHA3 (AArch64)
4837
ARM_bcax
,
// Bit Clear and exclusive-OR
4838
ARM_eor3
,
// Three-way Exclusive-OR
4839
ARM_rax1
,
// Rotate and Exclusive-OR
4840
ARM_xar
,
// Exclusive-OR and Rotate
4841
// ARMv8.2-SHA512 (AArch64)
4842
ARM_sha512h
,
// SHA512 Hash update part 1
4843
ARM_sha512h2
,
// SHA512 Hash update part 2
4844
ARM_sha512su0
,
// SHA512 Schedule Update 0
4845
ARM_sha512su1
,
// SHA512 Schedule Update 1
4846
// ARMv8.2-SM3 (AArch64)
4847
ARM_sm3partw1
,
4848
ARM_sm3partw2
,
4849
ARM_sm3ss1
,
4850
ARM_sm3tt1a
,
4851
ARM_sm3tt1b
,
4852
ARM_sm3tt2a
,
4853
ARM_sm3tt2b
,
4854
// ARMv8.2-SM4 (AArch64)
4855
ARM_sm4e
,
4856
ARM_sm4ekey
,
4857
// ARMv8.6-I8MM (AArch64)
4858
ARM_sudot
,
4859
ARM_ummla
,
4860
ARM_usdot
,
4861
ARM_usmmla
,
4862
// ARMv8.6-DotProd (AArch64)
4863
ARM_sdot
,
4864
ARM_udot
,
4865
// ARMv8.2-FHM (AArch64)
4866
ARM_fmlal
,
4867
ARM_fmlal2
,
4868
ARM_fmlsl
,
4869
ARM_fmlsl2
,
4870
// ARMv8.6-BF16 (AArch64)
4871
ARM_bfmmla
,
4872
ARM_bfmlalb
,
4873
ARM_bfmlalt
,
4874
ARM_bfdot
,
4875
ARM_bfcvtn
,
4876
ARM_bfcvtn2
,
4877
ARM_bfcvt
,
4878
// Apple custom instructions
4879
ARM_trap
,
// Undefined opcode used for debugging
4880
ARM_trap2
,
// Undefined opcode used for debugging
4881
ARM_genter
,
// Enter guarded execution mode
4882
ARM_gexit
,
// Exit guarded execution mode
4883
ARM_wkdmc
,
// Compress memory page
4884
ARM_wkdmd
,
// Decompress memory page
4885
ARM_sdsb
,
// Strong data synchronization barrier
4886
ARM_amx
,
// AMX instruction
4887
ARM_mul53lo
,
// Multiply 2 53-bit pairs and store low 53 bits
4888
ARM_mul53hi
,
// Multiply 2 53-bit pairs and store high 53 bits
4889
// ARMv8.1-M MVE
4890
ARM_vbrsr
,
// Vector Bit Reverse and Shift Right
4891
ARM_vcmul
,
// Vector Complex Multiply
4892
ARM_vfmas
,
// Vector Fused Multiply Accumulate Scalar
4893
ARM_vmaxa
,
// Vector Maximum Absolute
4894
ARM_vmaxnma
,
// Vector Maximum Absolute (floating-point)
4895
ARM_vmina
,
// Vector Minimum Absolute
4896
ARM_vminnma
,
// Vector Minimum Absolute (floating-point)
4897
ARM_vmlas
,
// Vector Multiply Accumulate Scalar
4898
ARM_vmovnb
,
// Vector Move and Narrow Bottom
4899
ARM_vmovnt
,
// Vector Move and Narrow Top
4900
ARM_vmulh
,
// Vector Multiply Returning High Half
4901
ARM_vrmulh
,
// Vector Rounding Multiply Returning High Half
4902
ARM_vmullb
,
// Vector Multiply Long Bottom
4903
ARM_vmullt
,
// Vector Multiply Long Top
4904
ARM_vqdmladh
,
// Vector Saturating Doubling Multiply Add Dual Returning High Half
4905
ARM_vqdmladhX
,
// Vector Saturating Doubling Multiply Add Dual Returning High Half (exchange)
4906
ARM_vqrdmladh
,
// Vector Saturating Rounding Doubling Multiply Add Dual Returning High Half
4907
ARM_vqrdmladhX
,
// Vector Saturating Rounding Doubling Multiply Add Dual Returning High Half (exchange)
4908
ARM_vqdmlah
,
// Vector Saturating Doubling Multiply Accumulate
4909
ARM_vqdmlash
,
// Vector Saturating Doubling Multiply Accumulate Scalar High Half
4910
ARM_vqrdmlash
,
// Vector Saturating Rounding Doubling Multiply Accumulate Scalar High Half
4911
ARM_vqdmlsdh
,
// Vector Saturating Doubling Multiply Subtract Dual Returning High Half
4912
ARM_vqdmlsdhX
,
// Vector Saturating Doubling Multiply Subtract Dual Returning High Half (exchange)
4913
ARM_vqrdmlsdh
,
// Vector Saturating Rounding Doubling Multiply Subtract Dual Returning High Half
4914
ARM_vqrdmlsdhX
,
// Vector Saturating Rounding Doubling Multiply Subtract Dual Returning High Half (exchange)
4915
ARM_vqmovnb
,
// Vector Saturating Move and Narrow Bottom
4916
ARM_vqmovnt
,
// Vector Saturating Move and Narrow Top
4917
ARM_vqmovunb
,
// Vector Saturating Move Unsigned and Narrow Bottom
4918
ARM_vqmovunt
,
// Vector Saturating Move Unsigned and Narrow Top
4919
ARM_vshllb
,
// Vector Shift Left Long Bottom
4920
ARM_vshllt
,
// Vector Shift Left Long Top
4921
ARM_vmladav
,
// Vector Multiply Add Dual Accumulate Across Vector
4922
ARM_vmladavX
,
// Vector Multiply Add Dual Accumulate Across Vector (exchange)
4923
ARM_vmladavA
,
// Vector Multiply Add Dual Accumulate Across Vector (accumulate)
4924
ARM_vmladavAX
,
// Vector Multiply Add Dual Accumulate Across Vector (accumulate, exchange)
4925
ARM_vmlsdav
,
// Vector Multiply Subtract Dual Accumulate Across Vector
4926
ARM_vmlsdavX
,
// Vector Multiply Subtract Dual Accumulate Across Vector (exchange)
4927
ARM_vmlsdavA
,
// Vector Multiply Subtract Dual Accumulate Across Vector (accumulate)
4928
ARM_vmlsdavAX
,
// Vector Multiply Subtract Dual Accumulate Across Vector (accumulate, exchange)
4929
ARM_vmlaldav
,
// Vector Multiply Add Long Dual Accumulate Across Vector
4930
ARM_vmlaldavX
,
// Vector Multiply Add Long Dual Accumulate Across Vector (exchange)
4931
ARM_vmlaldavA
,
// Vector Multiply Add Long Dual Accumulate Across Vector (accumulate)
4932
ARM_vmlaldavAX
,
// Vector Multiply Add Long Dual Accumulate Across Vector (accumulate, exchange)
4933
ARM_vmlsldav
,
// Vector Multiply Subtract Long Dual Accumulate Across Vector
4934
ARM_vmlsldavX
,
// Vector Multiply Subtract Long Dual Accumulate Across Vector (exchange)
4935
ARM_vmlsldavA
,
// Vector Multiply Subtract Long Dual Accumulate Across Vector (accumulate)
4936
ARM_vmlsldavAX
,
// Vector Multiply Subtract Long Dual Accumulate Across Vector (accumulate, exchange)
4937
ARM_vrmlsldavh
,
// Vector Rounding Multiply Subtract Long Dual Accumulate Across Vector Returning High 64 bits
4938
ARM_vrmlsldavhX
,
// Vector Rounding Multiply Subtract Long Dual Accumulate Across Vector Returning High 64 bits (exchange)
4939
ARM_vrmlsldavhA
,
// Vector Rounding Multiply Subtract Long Dual Accumulate Across Vector Returning High 64 bits (accumulate)
4940
ARM_vrmlsldavhAX
,
// Vector Rounding Multiply Subtract Long Dual Accumulate Across Vector Returning High 64 bits (accumulate, exchange)
4941
ARM_vidup
,
// Vector Increment and Duplicate
4942
ARM_vddup
,
// Vector Decrement and Duplicate
4943
ARM_viwdup
,
// Vector Increment with Wrap and Duplicate
4944
ARM_vdwdup
,
// Vector Decrement with Wrap and Duplicate
4945
ARM_vhcadd
,
// Vector Halving Complex Add with Rotate
4946
ARM_vcadd
,
// Vector Complex Add with Rotate
4947
ARM_vadc
,
// Whole Vector Add With Carry
4948
ARM_vadcI
,
// Whole Vector Add With Carry (initial carry is 1)
4949
ARM_sbdc
,
// Whole Vector Subtract With Carry
4950
ARM_vsbcI
,
// Whole Vector Subtract With Carry (initial carry is 1)
4951
ARM_vqdmullb
,
// Vector Multiply Long Bottom
4952
ARM_vqdmullt
,
// Vector Multiply Long Top
4953
ARM_vpsel
,
// Vector Predicated Select
4954
ARM_vcmpv
,
// Vector Compare (vector)
4955
ARM_vpt
,
// Vector Predicate Then
4956
ARM_vpnot
,
// Vector Predicate NOT
4957
ARM_vpst
,
// Vector Predicate Set Then
4958
ARM_vmaxv
,
// Vector Maximum Across Vector
4959
ARM_vmaxav
,
// Vector Maximum Absolute Across Vector
4960
ARM_vminv
,
// Vector Minimum Across Vector
4961
ARM_vminav
,
// Vector Minimum Absolute Across Vector
4962
ARM_vmaxnmv
,
// Vector Maximum Across Vector (floating-point)
4963
ARM_vmaxnmav
,
// Vector Maximum Absolute Across Vector (floating-point)
4964
ARM_vminnmv
,
// Vector Minimum Across Vector (floating-point)
4965
ARM_vminnmav
,
// Vector Minimum Absolute Across Vector (floating-point)
4966
ARM_vqshrnb
,
// Vector Saturating Shift Right and Narrow Bottom
4967
ARM_vqshrnt
,
// Vector Saturating Shift Right and Narrow Top
4968
ARM_vqrshrnb
,
// Vector Saturating Rounding Shift Right and Narrow Bottom
4969
ARM_vqrshrnt
,
// Vector Saturating Rounding Shift Right and Narrow Top
4970
ARM_vqshrunb
,
// Vector Saturating Shift Right Unsigned and Narrow Bottom
4971
ARM_vqshrunt
,
// Vector Saturating Shift Right Unsigned and Narrow Top
4972
ARM_vqrshrunb
,
// Vector Saturating Rounding Shift Right Unsigned and Narrow Bottom
4973
ARM_vqrshrunt
,
// Vector Saturating Rounding Shift Right Unsigned and Narrow Top
4974
ARM_vshrnb
,
// Vector Shift Right and Narrow Bottom
4975
ARM_vshrnt
,
// Vector Shift Right and Narrow Top
4976
ARM_vrshrnb
,
// Vector Rounding Shift Right and Narrow Bottom
4977
ARM_vrshrnt
,
// Vector Rounding Shift Right and Narrow Top
4978
ARM_vrmlaldavh
,
// Vector Rounding Multiply Add Long Dual Accumulate Across Vector Returning High 64 bits
4979
ARM_vrmlaldavhX
,
// Vector Rounding Multiply Add Long Dual Accumulate Across Vector Returning High 64 bits (exchange)
4980
ARM_vrmlaldavhA
,
// Vector Rounding Multiply Add Long Dual Accumulate Across Vector Returning High 64 bits (accumulate)
4981
ARM_vrmlaldavhAX
,
// Vector Rounding Multiply Add Long Dual Accumulate Across Vector Returning High 64 bits (accumulate, exchange)
4982
ARM_vabav
,
// Vector Absolute Difference and Accumulate Across Vector
4983
ARM_vaddlv
,
// Vector Add Long Across Vector
4984
ARM_vaddlvA
,
// Vector Add Long Across Vector (accumulate)
4985
ARM_vaddv
,
// Vector Add Across Vector
4986
ARM_vaddvA
,
// Vector Add Across Vector (accumulate)
4987
ARM_vshlc
,
// Whole Vector Left Shift with Carry
4988
ARM_vmovlb
,
// Vector Move Long Bottom
4989
ARM_vmovlt
,
// Vector Move Long Top
4990
ARM_vcmla
,
// Vector Complex Multiply Accumulate
4991
ARM_vscclrm
,
// Floating-point Secure Context Clear Multiple
4992
ARM_vld20
,
// Vector Deinterleaving Load - Stride 2 (pattern=0)
4993
ARM_vld21
,
// Vector Deinterleaving Load - Stride 2 (pattern=1)
4994
ARM_vld40
,
// Vector Deinterleaving Load - Stride 4 (pattern=0)
4995
ARM_vld41
,
// Vector Deinterleaving Load - Stride 4 (pattern=1)
4996
ARM_vld42
,
// Vector Deinterleaving Load - Stride 4 (pattern=2)
4997
ARM_vld43
,
// Vector Deinterleaving Load - Stride 4 (pattern=3)
4998
ARM_vst20
,
// Vector Interleaving Store - Stride 2 (pattern=0)
4999
ARM_vst21
,
// Vector Interleaving Store - Stride 2 (pattern=1)
5000
ARM_vst40
,
// Vector Interleaving Store - Stride 4 (pattern=0)
5001
ARM_vst41
,
// Vector Interleaving Store - Stride 4 (pattern=1)
5002
ARM_vst42
,
// Vector Interleaving Store - Stride 4 (pattern=2)
5003
ARM_vst43
,
// Vector Interleaving Store - Stride 4 (pattern=3)
5004
ARM_vldrb
,
// Vector Load Register/Vector Gather Load (byte)
5005
ARM_vldrh
,
// Vector Load Register/Vector Gather Load (halfword)
5006
ARM_vldrw
,
// Vector Load Register/Vector Gather Load (word)
5007
ARM_vldrd
,
// Vector Load Register/Vector Gather Load (doubleword)
5008
ARM_vstrb
,
// Vector Store Register/Vector Scatter Store (byte)
5009
ARM_vstrh
,
// Vector Store Register/Vector Scatter Store (halfword)
5010
ARM_vstrw
,
// Vector Store Register/Vector Scatter Store (word)
5011
ARM_vstrd
,
// Vector Store Register/Vector Scatter Store (doubleword)
5012
ARM_vmov2
,
// Vector Move (two general-purpose registers to two 32-bit vector lanes)
5013
ARM_lsll
,
// Logical Shift Left Long
5014
ARM_lsrl
,
// Logical Shift Right Long
5015
ARM_asrl
,
// Arithmetic Shift Right Long
5016
ARM_sqshll
,
// Signed Saturating Shift Left Long
5017
ARM_uqshll
,
// Unsigned Saturating Shift Left Long
5018
ARM_urshrl
,
// Unsigned Rounding Shift Right Long
5019
ARM_srshrl
,
// Signed Rounding Shift Right Long
5020
ARM_uqrshll
,
// Unsigned Saturating Rounding Shift Left Long
5021
ARM_sqrshrl
,
// Signed Saturating Rounding Shift Right Long
5022
ARM_sqrshr
,
// Signed Saturating Rounding Shift Right
5023
ARM_lctp
,
// Loop Clear with Tail Predication
5024
ARM_vctp
,
// Create Vector Tail Predicate
5025
// ARMv8.1-M PACBTI
5026
ARM_pacbti
,
// Pointer Authentication Code for the link register with BTI clearing, using key
5027
ARM_autg
,
// Authenticate general value, using key
5028
ARM_bxaut
,
// Branch Exchange after Authenticating the address, using key
5029
ARM_pacg
,
// Pointer Authentication Code for a general value, using key
5030
// ARMv8.1-M RAS
5031
ARM_esb
,
// Error Synchronization Barrier
5032
// ARMv8.1-M Low Overhead Branch Extension
5033
ARM_wls
,
// While Loop Start
5034
ARM_dls
,
// Do Loop Start
5035
ARM_wlstp
,
// While Loop Start with Tail Predication
5036
ARM_dlstp
,
// Do Loop Start with Tail Predication
5037
ARM_le1
,
// Loop End (count)
5038
ARM_le2
,
// Loop End (forever)
5039
ARM_letp
,
// Loop End with Tail Prediction
5040
ARM_bf
,
// Branch Future
5041
ARM_bfx
,
// Branch Future and Exchange
5042
ARM_bfl
,
// Branch Future with Link
5043
ARM_bflx
,
// Branch Future with Link and Exchange
5044
ARM_bfcsel
,
// Branch Future Conditional Select
5045
// ARMv8-M Custom Datapath Extension
5046
ARM_cx1
,
// Custom Instruction Class 1
5047
ARM_cx1A
,
// Custom Instruction Class 1 (accumulator)
5048
ARM_cx1d
,
// Custom Instruction Class 1 (pair)
5049
ARM_cx1dA
,
// Custom Instruction Class 1 (pair, accumulator)
5050
ARM_cx2
,
// Custom Instruction Class 2
5051
ARM_cx2A
,
// Custom Instruction Class 2 (accumulator)
5052
ARM_cx2d
,
// Custom Instruction Class 2 (pair)
5053
ARM_cx2dA
,
// Custom Instruction Class 2 (pair, accumulator)
5054
ARM_cx3
,
// Custom Instruction Class 3
5055
ARM_cx3A
,
// Custom Instruction Class 3 (accumulator)
5056
ARM_cx3d
,
// Custom Instruction Class 3 (pair)
5057
ARM_cx3dA
,
// Custom Instruction Class 3 (pair, accumulator)
5058
ARM_vcx1
,
// Custom Extension Instruction Class 1
5059
ARM_vcx1A
,
// Custom Extension Instruction Class 1 (accumulator)
5060
ARM_vcx2
,
// Custom Extension Instruction Class 2
5061
ARM_vcx2A
,
// Custom Extension Instruction Class 2 (accumulator)
5062
ARM_vcx3
,
// Custom Extension Instruction Class 3
5063
ARM_vcx3A
,
// Custom Extension Instruction Class 3 (accumulator)
5064
// FEAT_WFxT
5065
ARM_wfet
,
// Wait For Event with Timeout
5066
ARM_wfit
,
// Wait For Interrupt with Timeout
5067
// FEAT_CSSC
5068
ARM_ctz
,
// Count trailing zeros
5069
ARM_rdvl
,
// Read multiple of vector register size to scalar register
5070
ARM_rdsvl
,
// Read multiple of Streaming SVE vector register size to scalar register
5071
// SVE integer binary arithmetic (predicated)
5072
ARM_subr
,
// Reversed subtract vectors
5073
ARM_addpt
,
// Add checked pointer vectors (predicated)
5074
ARM_subpt
,
// Subtract checked pointer vectors (predicated)
5075
ARM_sdivr
,
// SVE Signed Divide Reversed
5076
ARM_udivr
,
// SVE Unsigned Divide Reversed
5077
ARM_add_sve
,
// Add (SVE)
5078
ARM_sub_sve
,
// Subtract (SVE)
5079
ARM_mul_sve
,
// Multiply (SVE)
5080
ARM_smulh_sve
,
// Signed Multiply High (SVE)
5081
ARM_umulh_sve
,
// Unsigned Multiply High (SVE)
5082
ARM_sdiv_sve
,
// Signed Divide (SVE)
5083
ARM_udiv_sve
,
// Unsigned Divide (SVE)
5084
ARM_and_sve
,
// Bitwise AND (SVE)
5085
ARM_orr_sve
,
// Bitwise OR (SVE)
5086
ARM_eor_sve
,
// Bitwise XOR (SVE)
5087
ARM_bic_sve
,
// Bitwise AND NOT (SVE)
5088
ARM_smax_sve
,
// Signed Maximum (SVE)
5089
ARM_umax_sve
,
// Unsigned Maximum (SVE)
5090
ARM_smin_sve
,
// Signed Minimum (SVE)
5091
ARM_umin_sve
,
// Unsigned Minimum (SVE)
5092
ARM_sabd_sve
,
// Signed Absolute Difference (SVE)
5093
ARM_uabd_sve
,
// Unsigned Absolute Difference (SVE)
5094
ARM_subr_pred
,
// Reversed subtract vectors (predicated)
5095
// SVE bitwise shift (predicated)
5096
ARM_asrd
,
// Arithmetic Shift Right for Divide
5097
ARM_asrr
,
// Reversed Arithmetic Shift Right
5098
ARM_lsrr
,
// Reversed Logical Shift Right
5099
ARM_lslr
,
// Reversed Logical Shift Left
5100
ARM_asr_sve
,
// Arithmetic Shift Right (SVE)
5101
ARM_lsr_sve
,
// Logical Shift Right (SVE)
5102
ARM_lsl_sve
,
// Logical Shift Left (SVE)
5103
ARM_sqshl_sve
,
// Signed Saturating Shift Left (SVE)
5104
ARM_uqshl_sve
,
// Unsigned Saturating Shift Left (SVE)
5105
ARM_sqshlu_sve
,
// Signed Saturating Shift Left Unsigned (SVE)
5106
ARM_srshr_sve
,
// Signed Rounding Shift Right (SVE)
5107
ARM_urshr_sve
,
// Unsigned Rounding Shift Right (SVE)
5108
// SVE integer multiply-add (predicated)
5109
ARM_mla_sve
,
// Multiply-Add (SVE)
5110
ARM_mls_sve
,
// Multiply-Subtract (SVE)
5111
ARM_mad
,
// Multiply-Add writing multiplicand
5112
ARM_msb
,
// Multiply-Subtract writing multiplicand
5113
// SVE integer unary arithmetic (predicated)
5114
ARM_cnot
,
// Logically invert boolean condition
5115
ARM_sxtb_sve
,
// Signed extend byte (SVE)
5116
ARM_uxtb_sve
,
// Unsigned extend byte (SVE)
5117
ARM_sxth_sve
,
// Signed extend halfword (SVE)
5118
ARM_uxth_sve
,
// Unsigned extend halfword (SVE)
5119
ARM_sxtw_sve
,
// Signed extend word (SVE)
5120
ARM_uxtw_sve
,
// Unsigned extend word (SVE)
5121
ARM_neg_sve
,
// Negate (SVE)
5122
ARM_cls_sve
,
// Count leading sign bits (SVE)
5123
ARM_clz_sve
,
// Count leading zeros (SVE)
5124
ARM_not_sve
,
// Bitwise NOT (SVE)
5125
// SVE stack allocation
5126
ARM_addvl
,
// Add multiple of vector register size to scalar register
5127
ARM_addpl
,
// Add multiple of predicate register size to scalar register
5128
// SVE index generation
5129
ARM_index
,
// Create index starting from and incremented by scalar/immediate
5130
// SVE bitwise logical (unpredicated)
5131
ARM_bsl1n
,
// Bitwise Select with NOT (first source)
5132
ARM_bsl2n
,
// Bitwise Select with NOT (second source)
5133
ARM_nbsl
,
// Bitwise Not-select
5134
// SVE integer misc (unpredicated)
5135
ARM_ftssel
,
// Floating-point trigonometric select coefficient
5136
ARM_fexpa
,
// Floating-point exponential accelerator
5137
// SVE element count
5138
ARM_cntb
,
// Count elements (byte)
5139
ARM_cnth
,
// Count elements (halfword)
5140
ARM_cntw
,
// Count elements (word)
5141
ARM_cntd
,
// Count elements (doubleword)
5142
ARM_incb
,
// Increment scalar by element count (byte)
5143
ARM_inch
,
// Increment by element count (halfword) [vector+scalar]
5144
ARM_incw
,
// Increment by element count (word)
5145
ARM_incd
,
// Increment by element count (doubleword)
5146
ARM_decb
,
// Decrement scalar by element count (byte)
5147
ARM_dech
,
// Decrement by element count (halfword) [vector+scalar]
5148
ARM_decw
,
// Decrement by element count (word)
5149
ARM_decd
,
// Decrement by element count (doubleword)
5150
ARM_sqincb
,
// Saturating signed increment (byte)
5151
ARM_sqinch
,
// Saturating signed increment (halfword)
5152
ARM_sqincw
,
// Saturating signed increment (word)
5153
ARM_sqincd
,
// Saturating signed increment (doubleword)
5154
ARM_uqincb
,
// Saturating unsigned increment (byte)
5155
ARM_uqinch
,
// Saturating unsigned increment (halfword)
5156
ARM_uqincw
,
// Saturating unsigned increment (word)
5157
ARM_uqincd
,
// Saturating unsigned increment (doubleword)
5158
ARM_sqdecb
,
// Saturating signed decrement (byte)
5159
ARM_sqdech
,
// Saturating signed decrement (halfword)
5160
ARM_sqdecw
,
// Saturating signed decrement (word)
5161
ARM_sqdecd
,
// Saturating signed decrement (doubleword)
5162
ARM_uqdecb
,
// Saturating unsigned decrement (byte)
5163
ARM_uqdech
,
// Saturating unsigned decrement (halfword)
5164
ARM_uqdecw
,
// Saturating unsigned decrement (word)
5165
ARM_uqdecd
,
// Saturating unsigned decrement (doubleword)
5166
// SVE element count - 32-bit register (W) forms
5167
ARM_sqincb32
,
// Saturating signed increment byte, W-reg form
5168
ARM_sqinch32
,
// Saturating signed increment halfword, W-reg form
5169
ARM_sqincw32
,
// Saturating signed increment word, W-reg form
5170
ARM_sqincd32
,
// Saturating signed increment doubleword, W-reg form
5171
ARM_uqincb32
,
// Saturating unsigned increment byte, W-reg form
5172
ARM_uqinch32
,
// Saturating unsigned increment halfword, W-reg form
5173
ARM_uqincw32
,
// Saturating unsigned increment word, W-reg form
5174
ARM_uqincd32
,
// Saturating unsigned increment doubleword, W-reg form
5175
ARM_sqdecb32
,
// Saturating signed decrement byte, W-reg form
5176
ARM_sqdech32
,
// Saturating signed decrement halfword, W-reg form
5177
ARM_sqdecw32
,
// Saturating signed decrement word, W-reg form
5178
ARM_sqdecd32
,
// Saturating signed decrement doubleword, W-reg form
5179
ARM_uqdecb32
,
// Saturating unsigned decrement byte, W-reg form
5180
ARM_uqdech32
,
// Saturating unsigned decrement halfword, W-reg form
5181
ARM_uqdecw32
,
// Saturating unsigned decrement word, W-reg form
5182
ARM_uqdecd32
,
// Saturating unsigned decrement doubleword, W-reg form
5183
// SVE Permute Vector - Extract
5184
ARM_ext_sve_destr
,
// Extract vector from pair of vectors (Destructive)
5185
ARM_ext_sve_constr
,
// Extract vector from pair of vectors (Constructive)
5186
// SVE bitwise immediate
5187
ARM_dupm
,
// Broadcast logical bitmask immediate to vector (unpredicated)
5188
ARM_fdup
,
// Broadcast floating-point immediate to vector (unpredicated)
5189
// SVE Integer Wide Immediate - Predicated
5190
ARM_cpy_pred
,
// Copy integer immediate to active elements (predicated)
5191
ARM_fcpy_pred
,
// Copy FP immediate to active elements (predicated)
5192
// SVE Permute Vector - One Source Quadwords
5193
ARM_dupq
,
// Broadcast indexed element in each quadword vector segment (unpredicated)
5194
ARM_extq
,
// Extract vector segment from each pair of quadword vector segments
5195
// SVE Permute Predicate
5196
ARM_punpkhi
,
// Unpack and widen high half of predicate
5197
ARM_punpklo
,
// Unpack and widen low half of predicate
5198
// SVE Permute Vector - Predicated
5199
ARM_compact
,
// Compress active elements to lower-numbered elements
5200
ARM_lasta
,
// Extract element after last active to register
5201
ARM_lastb
,
// Extract last active element to register
5202
ARM_clasta
,
// Conditionally extract element after last (destructive)
5203
ARM_clastb
,
// Conditionally extract last element (destructive)
5204
ARM_revb
,
// Reverse bytes within elements (predicated)
5205
ARM_revh
,
// Reverse halfwords within elements (predicated)
5206
ARM_revw
,
// Reverse words within elements (predicated)
5207
ARM_revd
,
// Reverse doublewords within elements (predicated)
5208
ARM_rbit_pred
,
// Reverse bits within elements (predicated, SVE)
5209
ARM_splice_destr
,
// SPLICE destructive: select elements from first then second vector
5210
ARM_splice_constr
,
// SPLICE constructive (SVE2): select from pair {Zn, Zn+1}
5211
ARM_sel_sve
,
// SVE select vector elements (predicated)
5212
// SVE Permute Vector - Unpredicated
5213
ARM_insr
,
// Insert scalar register into shifted vector (unpredicated)
5214
ARM_sunpkhi
,
// Signed unpack and extend top half of vector
5215
ARM_sunpklo
,
// Signed unpack and extend bottom half of vector
5216
ARM_uunpkhi
,
// Unsigned unpack and extend top half of vector
5217
ARM_uunpklo
,
// Unsigned unpack and extend bottom half of vector
5218
// SVE Integer Compare
5219
ARM_cmp_sve
,
// SVE integer compare (vectors and wide elements)
5220
// SVE Partition Break
5221
ARM_brka
,
// SVE partition break after
5222
ARM_brkas
,
// SVE partition break after, setting flags
5223
ARM_brkb
,
// SVE partition break before
5224
ARM_brkbs
,
// SVE partition break before, setting flags
5225
ARM_brkn
,
// SVE propagate break to next partition
5226
ARM_brkns
,
// SVE propagate break to next, setting flags
5227
ARM_brkpa
,
// SVE propagate break after from previous
5228
ARM_brkpas
,
// SVE propagate break after from previous, setting flags
5229
ARM_brkpb
,
// SVE propagate break before from previous
5230
ARM_brkpbs
,
// SVE propagate break before from previous, setting flags
5231
// SVE Predicate Misc
5232
ARM_ptest
,
// SVE predicate test
5233
ARM_pfirst
,
// SVE predicate first active
5234
ARM_pfalse
,
// SVE predicate false
5235
ARM_pnext
,
// SVE predicate next active
5236
ARM_rdffr
,
// SVE read first-fault register
5237
ARM_rdffrs
,
// SVE read first-fault register, setting flags
5238
ARM_ptrue
,
// SVE predicate initialize
5239
ARM_ptrues
,
// SVE predicate initialize, setting flags
5240
// SVE Predicate Logical
5241
ARM_and_pred
,
// SVE predicate AND
5242
ARM_bic_pred
,
// SVE predicate BIC
5243
ARM_eor_pred
,
// SVE predicate EOR
5244
ARM_sel_pred
,
// SVE predicate SEL
5245
ARM_orr_pred
,
// SVE predicate ORR
5246
ARM_orn_pred
,
// SVE predicate ORN
5247
ARM_nor_pred
,
// SVE predicate NOR
5248
ARM_nand_pred
,
// SVE predicate NAND
5249
ARM_ands_pred
,
// SVE predicate ANDS
5250
ARM_bics_pred
,
// SVE predicate BICS
5251
ARM_eors_pred
,
// SVE predicate EORS
5252
ARM_orrs_pred
,
// SVE predicate ORRS
5253
ARM_orns_pred
,
// SVE predicate ORNS
5254
ARM_nors_pred
,
// SVE predicate NORS
5255
ARM_nands_pred
,
// SVE predicate NANDS
5256
// SVE Predicate Count
5257
ARM_cntp
,
// SVE count active predicate elements
5258
// SVE Inc/Dec by Predicate Count
5259
ARM_sqincp
,
// SVE saturating inc scalar/vector by predicate count
5260
ARM_uqincp
,
// SVE unsigned saturating inc scalar/vector by predicate count
5261
ARM_sqdecp
,
// SVE saturating dec scalar/vector by predicate count
5262
ARM_uqdecp
,
// SVE unsigned saturating dec scalar/vector by predicate count
5263
ARM_incp
,
// SVE inc scalar/vector by predicate count
5264
ARM_decp
,
// SVE dec scalar/vector by predicate count
5265
// SVE Write FFR
5266
ARM_wrffr
,
// SVE write first-fault register
5267
ARM_setffr
,
// SVE set first-fault register
5268
// SVE Integer Compare - Scalars
5269
ARM_while
,
// SVE while (condition in insn.cond)
5270
ARM_while_cnt
,
// SVE while predicate-as-counter (condition in insn.cond)
5271
ARM_cterm
,
// SVE conditionally terminate (condition in insn.cond)
5272
ARM_whilewr
,
// SVE while pointer conflict (write after read)
5273
ARM_whilerw
,
// SVE while pointer conflict (read after write)
5274
// SVE Scalar Integer Compare - Predicate-as-counter
5275
ARM_pext
,
// SVE predicate extract from predicate-as-counter
5276
// SVE Integer Multiply-Add - Unpredicated
5277
ARM_sqdmlalbt
,
// SVE2 saturating multiply-add interleaved long (bottom*top)
5278
ARM_sqdmlslbt
,
// SVE2 saturating multiply-subtract interleaved long (bottom*top)
5279
ARM_cdot
,
// SVE2 complex integer dot product
5280
ARM_cmla
,
// SVE2 complex integer multiply-add
5281
ARM_sqrdcmlah
,
// SVE2 saturating rounding doubling complex multiply-add high
5282
ARM_smlalb
,
// SVE2 signed multiply-add long (bottom)
5283
ARM_smlalt
,
// SVE2 signed multiply-add long (top)
5284
ARM_umlalb
,
// SVE2 unsigned multiply-add long (bottom)
5285
ARM_umlalt
,
// SVE2 unsigned multiply-add long (top)
5286
ARM_smlslb
,
// SVE2 signed multiply-subtract long (bottom)
5287
ARM_smlslt
,
// SVE2 signed multiply-subtract long (top)
5288
ARM_umlslb
,
// SVE2 unsigned multiply-subtract long (bottom)
5289
ARM_umlslt
,
// SVE2 unsigned multiply-subtract long (top)
5290
ARM_sqdmlalb
,
// SVE2 saturating multiply-add long (bottom)
5291
ARM_sqdmlalt
,
// SVE2 saturating multiply-add long (top)
5292
ARM_sqdmlslb
,
// SVE2 saturating multiply-subtract long (bottom)
5293
ARM_sqdmlslt
,
// SVE2 saturating multiply-subtract long (top)
5294
// SVE2 Integer - Predicated (C4.1.66)
5295
// C4.1.66.3 saturating/rounding shift reversed
5296
ARM_srshlr
,
// Signed Rounding Shift Left Reversed
5297
ARM_urshlr
,
// Unsigned Rounding Shift Left Reversed
5298
ARM_sqshlr
,
// Signed Saturating Shift Left Reversed
5299
ARM_uqshlr
,
// Unsigned Saturating Shift Left Reversed
5300
ARM_sqrshlr
,
// Signed Saturating Rounding Shift Left Reversed
5301
ARM_uqrshlr
,
// Unsigned Saturating Rounding Shift Left Reversed
5302
// C4.1.66.4 halving subtract reversed
5303
ARM_shsubr
,
// Signed Halving Subtract Reversed
5304
ARM_uhsubr
,
// Unsigned Halving Subtract Reversed
5305
// C4.1.66.6 saturating subtract reversed
5306
ARM_sqsubr
,
// Signed Saturating Subtract Reversed
5307
ARM_uqsubr
,
// Unsigned Saturating Subtract Reversed
5308
// C4.1.66.3 saturating/rounding shift (SVE predicated)
5309
ARM_srshl_sve
,
// Signed Rounding Shift Left (SVE)
5310
ARM_urshl_sve
,
// Unsigned Rounding Shift Left (SVE)
5311
ARM_sqrshl_sve
,
// Signed Saturating Rounding Shift Left (SVE)
5312
ARM_uqrshl_sve
,
// Unsigned Saturating Rounding Shift Left (SVE)
5313
// C4.1.66.4 halving add/subtract (SVE predicated)
5314
ARM_shadd_sve
,
// Signed Halving Add (SVE)
5315
ARM_uhadd_sve
,
// Unsigned Halving Add (SVE)
5316
ARM_shsub_sve
,
// Signed Halving Subtract (SVE)
5317
ARM_uhsub_sve
,
// Unsigned Halving Subtract (SVE)
5318
ARM_srhadd_sve
,
// Signed Rounding Halving Add (SVE)
5319
ARM_urhadd_sve
,
// Unsigned Rounding Halving Add (SVE)
5320
// C4.1.66.5 pairwise (SVE predicated)
5321
ARM_addp_sve
,
// Add Pairwise (SVE)
5322
ARM_smaxp_sve
,
// Signed Maximum Pairwise (SVE)
5323
ARM_umaxp_sve
,
// Unsigned Maximum Pairwise (SVE)
5324
ARM_sminp_sve
,
// Signed Minimum Pairwise (SVE)
5325
ARM_uminp_sve
,
// Unsigned Minimum Pairwise (SVE)
5326
// C4.1.66.6 saturating add/subtract (SVE predicated)
5327
ARM_sqadd_sve
,
// Signed Saturating Add (SVE)
5328
ARM_uqadd_sve
,
// Unsigned Saturating Add (SVE)
5329
ARM_sqsub_sve
,
// Signed Saturating Subtract (SVE)
5330
ARM_uqsub_sve
,
// Unsigned Saturating Subtract (SVE)
5331
ARM_suqadd_sve
,
// Signed Saturating Accumulate of Unsigned (SVE)
5332
ARM_usqadd_sve
,
// Unsigned Saturating Accumulate of Signed (SVE)
5333
// C4.1.67.10/11 SVE2 multiply long (indexed)
5334
ARM_smullb
,
// Signed Multiply Long (bottom)
5335
ARM_smullt
,
// Signed Multiply Long (top)
5336
ARM_umullb
,
// Unsigned Multiply Long (bottom)
5337
ARM_umullt
,
// Unsigned Multiply Long (top)
5338
ARM_sqdmullb
,
// Signed Saturating Doubling Multiply Long (bottom)
5339
ARM_sqdmullt
,
// Signed Saturating Doubling Multiply Long (top)
5340
// C4.1.68 SVE2 widening integer arithmetic
5341
ARM_saddlb
,
// Signed Add Long (bottom)
5342
ARM_saddlt
,
// Signed Add Long (top)
5343
ARM_uaddlb
,
// Unsigned Add Long (bottom)
5344
ARM_uaddlt
,
// Unsigned Add Long (top)
5345
ARM_ssublb
,
// Signed Subtract Long (bottom)
5346
ARM_ssublt
,
// Signed Subtract Long (top)
5347
ARM_usublb
,
// Unsigned Subtract Long (bottom)
5348
ARM_usublt
,
// Unsigned Subtract Long (top)
5349
ARM_sabdlb
,
// Signed Absolute Difference Long (bottom)
5350
ARM_sabdlt
,
// Signed Absolute Difference Long (top)
5351
ARM_uabdlb
,
// Unsigned Absolute Difference Long (bottom)
5352
ARM_uabdlt
,
// Unsigned Absolute Difference Long (top)
5353
ARM_saddwb
,
// Signed Add Wide (bottom)
5354
ARM_saddwt
,
// Signed Add Wide (top)
5355
ARM_uaddwb
,
// Unsigned Add Wide (bottom)
5356
ARM_uaddwt
,
// Unsigned Add Wide (top)
5357
ARM_ssubwb
,
// Signed Subtract Wide (bottom)
5358
ARM_ssubwt
,
// Signed Subtract Wide (top)
5359
ARM_usubwb
,
// Unsigned Subtract Wide (bottom)
5360
ARM_usubwt
,
// Unsigned Subtract Wide (top)
5361
ARM_pmullb
,
// Polynomial Multiply Long (bottom)
5362
ARM_pmullt
,
// Polynomial Multiply Long (top)
5363
// C4.1.69 SVE misc
5364
// C4.1.69.1 SVE2 bitwise shift left long
5365
ARM_sshllb
,
// Signed Shift Left Long (bottom)
5366
ARM_sshllt
,
// Signed Shift Left Long (top)
5367
ARM_ushllb
,
// Unsigned Shift Left Long (bottom)
5368
ARM_ushllt
,
// Unsigned Shift Left Long (top)
5369
// C4.1.69.2 SVE2 integer add/subtract interleaved long
5370
ARM_saddlbt
,
// Signed Add Long (bottom-top)
5371
ARM_ssublbt
,
// Signed Subtract Long (bottom-top)
5372
ARM_ssubltb
,
// Signed Subtract Long (top-bottom)
5373
// C4.1.69.3 SVE2 bitwise exclusive-or interleaved
5374
ARM_eorbt
,
// EOR (bottom-top)
5375
ARM_eortb
,
// EOR (top-bottom)
5376
// C4.1.69.4 SVE integer matrix multiply accumulate
5377
ARM_smmla_sve
,
// Signed Matrix Multiply Accumulate
5378
// C4.1.69.5 SVE2 bitwise permute
5379
ARM_bext
,
// Bit Extract
5380
ARM_bdep
,
// Bit Deposit
5381
ARM_bgrp
,
// Bit Group
5382
// C4.1.70 SVE2 accumulate
5383
// C4.1.70.1 SVE2 complex integer add
5384
ARM_cadd
,
// Complex Add
5385
ARM_sqcadd
,
// Saturating Complex Add
5386
// C4.1.70.2 SVE2 integer absolute difference and accumulate long
5387
ARM_sabalb
,
// Signed Absolute Difference Accumulate Long (bottom)
5388
ARM_sabalt
,
// Signed Absolute Difference Accumulate Long (top)
5389
ARM_uabalb
,
// Unsigned Absolute Difference Accumulate Long (bottom)
5390
ARM_uabalt
,
// Unsigned Absolute Difference Accumulate Long (top)
5391
// C4.1.70.3 SVE2 integer add/subtract long with carry
5392
ARM_adclb
,
// Add with Carry Long (bottom)
5393
ARM_adclt
,
// Add with Carry Long (top)
5394
ARM_sbclb
,
// Subtract with Carry Long (bottom)
5395
ARM_sbclt
,
// Subtract with Carry Long (top)
5396
// C4.1.71 SVE2 narrowing
5397
// C4.1.71.1 SVE2 saturating extract narrow
5398
ARM_sqxtnb
,
// Signed Saturating Extract Narrow (bottom)
5399
ARM_sqxtnt
,
// Signed Saturating Extract Narrow (top)
5400
ARM_uqxtnb
,
// Unsigned Saturating Extract Narrow (bottom)
5401
ARM_uqxtnt
,
// Unsigned Saturating Extract Narrow (top)
5402
ARM_sqxtunb
,
// Signed Saturating Unsigned Extract Narrow (bottom)
5403
ARM_sqxtunt
,
// Signed Saturating Unsigned Extract Narrow (top)
5404
// C4.1.71.3 SVE2 bitwise shift right narrow
5405
ARM_sqshrunb
,
// Signed Saturating Shift Right Unsigned Narrow (bottom)
5406
ARM_sqshrunt
,
// Signed Saturating Shift Right Unsigned Narrow (top)
5407
ARM_sqrshrunb
,
// Signed Saturating Rounding Shift Right Unsigned Narrow (bottom)
5408
ARM_sqrshrunt
,
// Signed Saturating Rounding Shift Right Unsigned Narrow (top)
5409
ARM_shrnb
,
// Shift Right Narrow (bottom)
5410
ARM_shrnt
,
// Shift Right Narrow (top)
5411
ARM_rshrnb
,
// Rounding Shift Right Narrow (bottom)
5412
ARM_rshrnt
,
// Rounding Shift Right Narrow (top)
5413
ARM_sqshrnb
,
// Signed Saturating Shift Right Narrow (bottom)
5414
ARM_sqshrnt
,
// Signed Saturating Shift Right Narrow (top)
5415
ARM_sqrshrnb
,
// Signed Saturating Rounding Shift Right Narrow (bottom)
5416
ARM_sqrshrnt
,
// Signed Saturating Rounding Shift Right Narrow (top)
5417
ARM_uqshrnb
,
// Unsigned Saturating Shift Right Narrow (bottom)
5418
ARM_uqshrnt
,
// Unsigned Saturating Shift Right Narrow (top)
5419
ARM_uqrshrnb
,
// Unsigned Saturating Rounding Shift Right Narrow (bottom)
5420
ARM_uqrshrnt
,
// Unsigned Saturating Rounding Shift Right Narrow (top)
5421
// C4.1.71.5 SVE2 integer add/subtract narrow high part
5422
ARM_addhnb
,
// Add Narrow High Part (bottom)
5423
ARM_addhnt
,
// Add Narrow High Part (top)
5424
ARM_raddhnb
,
// Rounding Add Narrow High Part (bottom)
5425
ARM_raddhnt
,
// Rounding Add Narrow High Part (top)
5426
ARM_subhnb
,
// Subtract Narrow High Part (bottom)
5427
ARM_subhnt
,
// Subtract Narrow High Part (top)
5428
ARM_rsubhnb
,
// Rounding Subtract Narrow High Part (bottom)
5429
ARM_rsubhnt
,
// Rounding Subtract Narrow High Part (top)
5430
ARM_histseg
,
// Histogram Segment
5431
ARM_histcnt
,
// Histogram Count
5432
ARM_fmlalb
,
// FP Multiply-Add Long (bottom)
5433
ARM_fmlalt
,
// FP Multiply-Add Long (top)
5434
ARM_fmlslb
,
// FP Multiply-Subtract Long (bottom)
5435
ARM_fmlslt
,
// FP Multiply-Subtract Long (top)
5436
ARM_fcmeq_sve
,
// SVE FP Compare Equal
5437
ARM_fcmge_sve
,
// SVE FP Compare Greater Than or Equal
5438
ARM_fcmgt_sve
,
// SVE FP Compare Greater Than
5439
ARM_fcmle_sve
,
// SVE FP Compare Less Than or Equal
5440
ARM_fcmlt_sve
,
// SVE FP Compare Less Than
5441
ARM_fcmne
,
// SVE FP Compare Not Equal
5442
ARM_fcmuo
,
// SVE FP Compare Unordered
5443
ARM_facge_sve
,
// SVE FP Absolute Compare Greater Than or Equal
5444
ARM_facgt_sve
,
// SVE FP Absolute Compare Greater Than
5445
ARM_fadda
,
// SVE FP Serial Reduction (add)
5446
ARM_fadd_pred
,
// SVE FP Add (predicated)
5447
ARM_fsub_pred
,
// SVE FP Subtract (predicated)
5448
ARM_fmul_pred
,
// SVE FP Multiply (predicated)
5449
ARM_fsubr
,
// SVE FP Subtract Reversed
5450
ARM_fmaxnm_pred
,
// SVE FP Max Num (predicated)
5451
ARM_fminnm_pred
,
// SVE FP Min Num (predicated)
5452
ARM_fmax_pred
,
// SVE FP Max (predicated)
5453
ARM_fmin_pred
,
// SVE FP Min (predicated)
5454
ARM_fabd_pred
,
// SVE FP Absolute Difference (predicated)
5455
ARM_fscale
,
// SVE FP Scale
5456
ARM_fmulx_pred
,
// SVE FP Multiply Extended (predicated)
5457
ARM_fdivr
,
// SVE FP Divide Reversed
5458
ARM_fdiv_pred
,
// SVE FP Divide (predicated)
5459
ARM_ftmad
,
// SVE FP Trigonometric Multiply-Add Coefficient
5460
// C4.1.81
5461
ARM_fcvtx
,
// SVE2 FP Convert Precision, Narrow (Round to Odd)
5462
ARM_flogb
,
// SVE2 FP Base 2 Logarithm
5463
// C4.1.82
5464
ARM_fmla_sve
,
// SVE FP Fused Multiply-Add writing addend
5465
ARM_fmls_sve
,
// SVE FP Fused Multiply-Subtract writing addend
5466
ARM_fnmla
,
// SVE FP Negated Fused Multiply-Add
5467
ARM_fnmls
,
// SVE FP Negated Fused Multiply-Subtract
5468
ARM_fmad
,
// SVE FP Fused Multiply-Add writing multiplicand
5469
ARM_fmsb
,
// SVE FP Fused Multiply-Subtract writing multiplicand
5470
ARM_fnmad
,
// SVE FP Negated Fused Multiply-Add writing multiplicand
5471
ARM_fnmsb
,
// SVE FP Negated Fused Multiply-Subtract writing multiplicand
5472
// C4.1.83
5473
ARM_prfb
,
// SVE Prefetch Bytes
5474
ARM_prfh
,
// SVE Prefetch Halfwords
5475
ARM_prfw
,
// SVE Prefetch Words
5476
ARM_prfd
,
// SVE Prefetch Doublewords
5477
ARM_ld1rb
,
// SVE Load and Broadcast Byte
5478
ARM_ld1rh
,
// SVE Load and Broadcast Halfword
5479
ARM_ld1rw
,
// SVE Load and Broadcast Word
5480
ARM_ld1rd
,
// SVE Load and Broadcast Doubleword
5481
ARM_ld1rsb
,
// SVE Load and Broadcast Signed Byte
5482
ARM_ld1rsh
,
// SVE Load and Broadcast Signed Halfword
5483
ARM_ld1rsw
,
// SVE Load and Broadcast Signed Word
5484
ARM_ld1b
,
// SVE Load Bytes
5485
ARM_ld1h
,
// SVE Load Halfwords
5486
ARM_ld1w
,
// SVE Load Words
5487
ARM_ld1sb
,
// SVE Load Signed Bytes
5488
ARM_ld1sh
,
// SVE Load Signed Halfwords
5489
ARM_ldff1b
,
// SVE First-faulting Load Bytes
5490
ARM_ldff1h
,
// SVE First-faulting Load Halfwords
5491
ARM_ldff1w
,
// SVE First-faulting Load Words
5492
ARM_ldff1sb
,
// SVE First-faulting Load Signed Bytes
5493
ARM_ldff1sh
,
// SVE First-faulting Load Signed Halfwords
5494
ARM_ldnt1b
,
// SVE Non-temporal Gather Load Bytes
5495
ARM_ldnt1h
,
// SVE Non-temporal Gather Load Halfwords
5496
ARM_ldnt1w
,
// SVE Non-temporal Gather Load Words
5497
ARM_ldnt1sb
,
// SVE Non-temporal Gather Load Signed Bytes
5498
ARM_ldnt1sh
,
// SVE Non-temporal Gather Load Signed Halfwords
5499
ARM_ldnt1sw
,
// SVE Non-temporal Gather Load Signed Words
5500
ARM_ld1d
,
// SVE Load Doublewords
5501
ARM_ld1sw
,
// SVE Load Signed Words
5502
ARM_ldff1d
,
// SVE First-faulting Load Doublewords
5503
ARM_ldff1sw
,
// SVE First-faulting Load Signed Words
5504
ARM_ldnt1d
,
// SVE Non-temporal Load Doublewords
5505
ARM_ldnf1b
,
// SVE Non-fault Load Bytes
5506
ARM_ldnf1h
,
// SVE Non-fault Load Halfwords
5507
ARM_ldnf1w
,
// SVE Non-fault Load Words
5508
ARM_ldnf1d
,
// SVE Non-fault Load Doublewords
5509
ARM_ldnf1sb
,
// SVE Non-fault Load Signed Bytes
5510
ARM_ldnf1sh
,
// SVE Non-fault Load Signed Halfwords
5511
ARM_ldnf1sw
,
// SVE Non-fault Load Signed Words
5512
ARM_ld1rqb
,
// SVE Load and Broadcast Quadword Bytes
5513
ARM_ld1rqh
,
// SVE Load and Broadcast Quadword Halfwords
5514
ARM_ld1rqw
,
// SVE Load and Broadcast Quadword Words
5515
ARM_ld1rqd
,
// SVE Load and Broadcast Quadword Doublewords
5516
ARM_ld2b
,
// SVE Load 2-element Bytes
5517
ARM_ld2h
,
// SVE Load 2-element Halfwords
5518
ARM_ld2w
,
// SVE Load 2-element Words
5519
ARM_ld2d
,
// SVE Load 2-element Doublewords
5520
ARM_ld3b
,
// SVE Load 3-element Bytes
5521
ARM_ld3h
,
// SVE Load 3-element Halfwords
5522
ARM_ld3w
,
// SVE Load 3-element Words
5523
ARM_ld3d
,
// SVE Load 3-element Doublewords
5524
ARM_ld4b
,
// SVE Load 4-element Bytes
5525
ARM_ld4h
,
// SVE Load 4-element Halfwords
5526
ARM_ld4w
,
// SVE Load 4-element Words
5527
ARM_ld4d
,
// SVE Load 4-element Doublewords
5528
ARM_stnt1b
,
// SVE Non-temporal Scatter Store Bytes
5529
ARM_stnt1h
,
// SVE Non-temporal Scatter Store Halfwords
5530
ARM_stnt1w
,
// SVE Non-temporal Scatter Store Words
5531
ARM_stnt1d
,
// SVE Non-temporal Scatter Store Doublewords
5532
ARM_st1b
,
// SVE Store Bytes
5533
ARM_st1h
,
// SVE Store Halfwords
5534
ARM_st1w
,
// SVE Store Words
5535
ARM_st1d
,
// SVE Store Doublewords
5536
ARM_st2b
,
// SVE Store 2-element Bytes
5537
ARM_st2h
,
// SVE Store 2-element Halfwords
5538
ARM_st2w
,
// SVE Store 2-element Words
5539
ARM_st2d
,
// SVE Store 2-element Doublewords
5540
ARM_st3b
,
// SVE Store 3-element Bytes
5541
ARM_st3h
,
// SVE Store 3-element Halfwords
5542
ARM_st3w
,
// SVE Store 3-element Words
5543
ARM_st3d
,
// SVE Store 3-element Doublewords
5544
ARM_st4b
,
// SVE Store 4-element Bytes
5545
ARM_st4h
,
// SVE Store 4-element Halfwords
5546
ARM_st4w
,
// SVE Store 4-element Words
5547
ARM_st4d
,
// SVE Store 4-element Doublewords
5548
// C4.1.91.18
5549
ARM_match
,
// SVE2 Character Match
5550
ARM_nmatch
,
// SVE2 Character No-Match
5551
// C4.1.91.20
5552
ARM_fcvtlt
,
// SVE2 FP Convert Precision, Widen (Top)
5553
ARM_fcvtnt
,
// SVE2 FP Convert Precision, Narrow (Top)
5554
ARM_fcvtxnt
,
// SVE2 FP Convert Precision, Narrow to Odd (Top)
5555
ARM_bfcvtnt
,
// SVE2 BFloat16 Convert, Narrow (Top)
5556
// C4.1.91.21
5557
ARM_faddp_pred
,
// SVE2 FP Add Pairwise (predicated)
5558
ARM_fmaxnmp_pred
,
// SVE2 FP Max Number Pairwise (predicated)
5559
ARM_fminnmp_pred
,
// SVE2 FP Min Number Pairwise (predicated)
5560
ARM_fmaxp_pred
,
// SVE2 FP Maximum Pairwise (predicated)
5561
ARM_fminp_pred
,
// SVE2 FP Minimum Pairwise (predicated)
5562
// C4.1.91.24
5563
ARM_fcmla_i
,
// SVE FP Complex Multiply-Add (indexed)
5564
ARM_fcadd_pred
,
// SVE FP Complex Add (predicated)
5565
ARM_fcmla_v
,
// SVE FP Complex Multiply-Add (vectors)
5566
// C4.1.91.25
5567
ARM_fclamp
,
// SVE2 FP Clamp
5568
// C4.1.91.28
5569
ARM_fmmla
,
// SVE FP Matrix Multiply-Accumulate
5570
// C4.1.91.29
5571
ARM_faddv
,
// SVE FP Recursive Reduction (add)
5572
// C4.1.91.30
5573
ARM_ftsmul
,
// SVE FP Trigonometric Select Multiply
5574
// C4.1.3 SME FP Outer Product - 32 bit
5575
ARM_fmopa
,
// SME FP Outer Product and Accumulate
5576
ARM_fmops
,
// SME FP Outer Product and Subtract
5577
ARM_bfmopa
,
// SME BF16 Outer Product and Accumulate
5578
ARM_bfmops
,
// SME BF16 Outer Product and Subtract
5579
// C4.1.4 SME2 Outer Product - Misc
5580
ARM_bmopa
,
// SME2 Binary Outer Product and Accumulate
5581
ARM_bmops
,
// SME2 Binary Outer Product and Subtract
5582
// C4.1.7 SME Integer Outer Product - 32 bit
5583
ARM_smopa
,
// SME Signed Outer Product and Accumulate
5584
ARM_smops
,
// SME Signed Outer Product and Subtract
5585
ARM_umopa
,
// SME Unsigned Outer Product and Accumulate
5586
ARM_umops
,
// SME Unsigned Outer Product and Subtract
5587
ARM_sumopa
,
// SME Signed-Unsigned Outer Product and Accumulate
5588
ARM_sumops
,
// SME Signed-Unsigned Outer Product and Subtract
5589
ARM_usmopa
,
// SME Unsigned-Signed Outer Product and Accumulate
5590
ARM_usmops
,
// SME Unsigned-Signed Outer Product and Subtract
5591
// C4.1.9 SME zero array
5592
ARM_zero
,
// SME Zero ZA tiles
5593
// C4.1.13 SME2 Expand Lookup Table (Contiguous)
5594
ARM_luti2
,
// SME2 Lookup Table 2-bit index
5595
ARM_luti4
,
// SME2 Lookup Table 4-bit index
5596
// C4.1.14 SME Move into Array
5597
ARM_mova
,
// SME Move vector to tile (single)
5598
ARM_mova_multi
,
// SME2 Move vectors to tile (multi)
5599
// C4.1.16 SME Add Vector to Array
5600
ARM_addha
,
// SME Add Horizontal vector to Array
5601
ARM_addva
,
// SME Add Vertical vector to Array
5602
// C4.1.17 SME2 Multi-vec - Multiple and Single Array Vectors (Two regs)
5603
ARM_fmlal_sme
,
// SME2 FP Multiply-Add Long
5604
ARM_fmlsl_sme
,
// SME2 FP Multiply-Subtract Long
5605
ARM_bfmlal
,
// SME2 BF16 Multiply-Add Long
5606
ARM_bfmlsl
,
// SME2 BF16 Multiply-Subtract Long
5607
ARM_smlal_sme
,
// SME2 Signed Multiply-Add Long
5608
ARM_umlal_sme
,
// SME2 Unsigned Multiply-Add Long
5609
// ARM_smlsl, ARM_umlsl reused from NEON (same CF flags)
5610
ARM_smlall
,
// SME2 Signed Multiply-Add Long Long
5611
ARM_smlsll
,
// SME2 Signed Multiply-Subtract Long Long
5612
ARM_umlall
,
// SME2 Unsigned Multiply-Add Long Long
5613
ARM_umlsll
,
// SME2 Unsigned Multiply-Subtract Long Long
5614
ARM_usmlall
,
// SME2 Unsigned-Signed Multiply-Add Long Long
5615
ARM_sumlall
,
// SME2 Signed-Unsigned Multiply-Add Long Long
5616
ARM_fdot
,
// SME2 FP Dot Product
5617
ARM_bfdot_sme
,
// SME2 BF16 Dot Product
5618
// ARM_sdot, ARM_udot, ARM_usdot, ARM_sudot reused from NEON (same CF flags)
5619
// C4.1.19.5-6 SME2 array accumulators
5620
ARM_fadd_sme
,
// SME2 FP Add to array accumulator
5621
ARM_fsub_sme
,
// SME2 FP Subtract from array accumulator
5622
ARM_add_sme
,
// SME2 Add to array accumulator
5623
ARM_sub_sme
,
// SME2 Subtract from array accumulator
5624
// C4.1.22.3/23.3 SME2 vertical dot products
5625
ARM_fvdot
,
// SME2 FP Vertical Dot Product
5626
ARM_svdot
,
// SME2 Signed Vertical Dot Product
5627
ARM_uvdot
,
// SME2 Unsigned Vertical Dot Product
5628
// C4.1.24-25 SME2 SVE Destructive (multi-vec)
5629
ARM_smax_destr
,
// SME2 Signed Maximum (destructive)
5630
ARM_umax_destr
,
// SME2 Unsigned Maximum (destructive)
5631
ARM_smin_destr
,
// SME2 Signed Minimum (destructive)
5632
ARM_umin_destr
,
// SME2 Unsigned Minimum (destructive)
5633
ARM_fmax_destr
,
// SME2 FP Maximum (destructive)
5634
ARM_fmin_destr
,
// SME2 FP Minimum (destructive)
5635
ARM_fmaxnm_destr
,
// SME2 FP Maximum Number (destructive)
5636
ARM_fminnm_destr
,
// SME2 FP Minimum Number (destructive)
5637
ARM_srshl_destr
,
// SME2 Signed Rounding Shift Left (destructive)
5638
ARM_urshl_destr
,
// SME2 Unsigned Rounding Shift Left (destructive)
5639
ARM_add_destr
,
// SME2 Add (destructive)
5640
ARM_sqdmulh_destr
,
// SME2 Signed Saturating Doubling Multiply High (destructive)
5641
ARM_zip_sme
,
// SME2 Multi-vec ZIP (two regs)
5642
ARM_uzp_sme
,
// SME2 Multi-vec UZP (two regs)
5643
ARM_sclamp
,
// SME2 Signed Clamp
5644
ARM_uclamp
,
// SME2 Unsigned Clamp
5645
ARM_sqrshr_sme
,
// SME2 Signed Saturating Rounding Shift Right Narrow
5646
ARM_uqrshr_sme
,
// SME2 Unsigned Saturating Rounding Shift Right Narrow
5647
ARM_sqrshru_sme
,
// SME2 Signed Saturating Rounding Shift Right Unsigned Narrow
5648
ARM_fcvtzs_sme
,
// SME2 FP Convert to Signed Integer (Round to Zero)
5649
ARM_fcvtzu_sme
,
// SME2 FP Convert to Unsigned Integer (Round to Zero)
5650
ARM_scvtf_sme
,
// SME2 Signed Integer Convert to FP
5651
ARM_ucvtf_sme
,
// SME2 Unsigned Integer Convert to FP
5652
ARM_fcvt_sme
,
// SME2 FP Convert Precision Narrow
5653
ARM_fcvtn_sme
,
// SME2 FP Convert Precision Narrow (interleaved)
5654
ARM_sqcvt
,
// SME2 Signed Saturating Convert
5655
ARM_uqcvt
,
// SME2 Unsigned Saturating Convert
5656
ARM_sqcvtu
,
// SME2 Signed Saturating Convert Unsigned
5657
ARM_sqcvtn
,
// SME2 Signed Saturating Convert Narrow
5658
ARM_uqcvtn
,
// SME2 Unsigned Saturating Convert Narrow
5659
ARM_sqcvtun
,
// SME2 Signed Saturating Convert Unsigned Narrow
5660
ARM_sunpk
,
// SME2 Signed Unpack
5661
ARM_uunpk
,
// SME2 Unsigned Unpack
5662
ARM_frintn_sme
,
// SME2 FP Round to Integral (Nearest, Ties to Even)
5663
ARM_frintp_sme
,
// SME2 FP Round to Integral (towards +Infinity)
5664
ARM_frintm_sme
,
// SME2 FP Round to Integral (towards -Infinity)
5665
ARM_frinta_sme
,
// SME2 FP Round to Integral (Nearest, Ties to Away)
5666
ARM_zip_sme4
,
// SME2 Multi-vec ZIP (four regs)
5667
ARM_uzp_sme4
,
// SME2 Multi-vec UZP (four regs)
5668
ARM_ld1q
,
// SME Load Quadword tile slice
5669
ARM_st1q
,
// SME Store Quadword tile slice
5670
ARM_psel
,
// SME/SVE2p1 Predicate Select
5671
// SVE integer reduction
5672
ARM_saddv
,
// Signed Integer Add Reduction
5673
ARM_uaddv
,
// Unsigned Integer Add Reduction
5674
ARM_addqv
,
// Integer Add Reduction (quadwords)
5675
ARM_smaxqv
,
// Signed Integer Max Reduction (quadwords)
5676
ARM_umaxqv
,
// Unsigned Integer Max Reduction (quadwords)
5677
ARM_sminqv
,
// Signed Integer Min Reduction (quadwords)
5678
ARM_uminqv
,
// Unsigned Integer Min Reduction (quadwords)
5679
ARM_orv
,
// Bitwise OR Reduction
5680
ARM_eorv
,
// Bitwise EOR Reduction
5681
ARM_andv
,
// Bitwise AND Reduction
5682
ARM_orqv
,
// Bitwise OR Reduction (quadwords)
5683
ARM_eorqv
,
// Bitwise EOR Reduction (quadwords)
5684
ARM_andqv
,
// Bitwise AND Reduction (quadwords)
5685
ARM_movprfx
,
// Move Prefix
5686
ARM_last
5687
};
5688
/*
5689
* Interactive disassembler (IDA).
5690
* Copyright (c) 1990-2026 Hex-Rays
5691
* ALL RIGHTS RESERVED.
5692
*
5693
* TMS320C6xx - VLIW (very long instruction word) architecture
5694
*
5695
*/
5696
enum
5697
{
5698
// Original TMS320C62x instructions
5699
TMS6_null
= 0,
// Unknown Operation
5700
TMS6_abs
,
// Absolute value
5701
TMS6_add
,
// Integer addition without saturation (signed)
5702
TMS6_addu
,
// Integer addition without saturation (unsigned)
5703
TMS6_addab
,
// Integer addition using addressing mode (byte)
5704
TMS6_addah
,
// Integer addition using addressing mode (halfword)
5705
TMS6_addaw
,
// Integer addition using addressing mode (word)
5706
TMS6_addk
,
// Integer addition 16bit signed constant
5707
TMS6_add2
,
// Two 16bit Integer adds on register halves
5708
TMS6_and
,
// Logical AND
5709
TMS6_b
,
// Branch
5710
TMS6_clr
,
// Clear a bit field
5711
TMS6_cmpeq
,
// Compare for equality
5712
TMS6_cmpgt
,
// Compare for greater than (signed)
5713
TMS6_cmpgtu
,
// Compare for greater than (unsigned)
5714
TMS6_cmplt
,
// Compare for less than (signed)
5715
TMS6_cmpltu
,
// Compare for less than (unsigned)
5716
TMS6_ext
,
// Extract and sign-extend a bit filed
5717
TMS6_extu
,
// Extract an unsigned bit field
5718
TMS6_idle
,
// Multicycle NOP with no termination until interrupt
5719
TMS6_ldb
,
// Load from memory (signed 8bit)
5720
TMS6_ldbu
,
// Load from memory (unsigned 8bit)
5721
TMS6_ldh
,
// Load from memory (signed 16bit)
5722
TMS6_ldhu
,
// Load from memory (unsigned 16bit)
5723
TMS6_ldw
,
// Load from memory (32bit)
5724
TMS6_lmbd
,
// Leftmost bit detection
5725
TMS6_mpy
,
// Signed Integer Multiply (LSB16 x LSB16)
5726
TMS6_mpyu
,
// Unsigned Integer Multiply (LSB16 x LSB16)
5727
TMS6_mpyus
,
// Integer Multiply Signed*Unsigned (LSB16 x LSB16)
5728
TMS6_mpysu
,
// Integer Multiply Unsigned*Signed (LSB16 x LSB16)
5729
TMS6_mpyh
,
// Signed Integer Multiply (MSB16 x MSB16)
5730
TMS6_mpyhu
,
// Unsigned Integer Multiply (MSB16 x MSB16)
5731
TMS6_mpyhus
,
// Integer Multiply Unsigned*Signed (MSB16 x MSB16)
5732
TMS6_mpyhsu
,
// Integer Multiply Signed*Unsigned (MSB16 x MSB16)
5733
TMS6_mpyhl
,
// Signed Integer Multiply (MSB16 x LSB16)
5734
TMS6_mpyhlu
,
// Unsigned Integer Multiply (MSB16 x LSB16)
5735
TMS6_mpyhuls
,
// Integer Multiply Signed*Unsigned (MSB16 x LSB16)
5736
TMS6_mpyhslu
,
// Integer Multiply Unsigned*Signed (MSB16 x LSB16)
5737
TMS6_mpylh
,
// Signed Integer Multiply (LSB16 x MB16)
5738
TMS6_mpylhu
,
// Unsigned Integer Multiply (LSB16 x MSB16)
5739
TMS6_mpyluhs
,
// Integer Multiply Signed*Unsigned (LSB16 x MSB16)
5740
TMS6_mpylshu
,
// Integer Multiply Unsigned*Signed (LSB16 x MSB16)
5741
TMS6_mv
,
// Move from register to register
5742
TMS6_mvc
,
// Move between the control file & register file
5743
TMS6_mvk
,
// Move a 16bit signed constant into register
5744
TMS6_mvkh
,
// Move a 16bit constant into the upper bits of a register
5745
TMS6_mvklh
,
// Move a 16bit constant into the upper bits of a register
5746
TMS6_neg
,
// Negate
5747
TMS6_nop
,
// No operation
5748
TMS6_norm
,
// Normalize
5749
TMS6_not
,
// Bitwise NOT
5750
TMS6_or
,
// Logical or
5751
TMS6_sadd
,
// Integer addition with saturation
5752
TMS6_sat
,
// Saturate 40bit value to 32bits
5753
TMS6_set
,
// Set a bit field
5754
TMS6_shl
,
// Arithmetic shift left
5755
TMS6_shr
,
// Arithmetic shift right
5756
TMS6_shru
,
// Logical shift left
5757
TMS6_smpy
,
// Integer multiply with left shift & saturation (LSB16*LSB16)
5758
TMS6_smpyhl
,
// Integer multiply with left shift & saturation (MSB16*LSB16)
5759
TMS6_smpylh
,
// Integer multiply with left shift & saturation (LSB16*MSB16)
5760
TMS6_smpyh
,
// Integer multiply with left shift & saturation (MSB16*MSB16)
5761
TMS6_sshl
,
// Shift left with saturation
5762
TMS6_ssub
,
// Integer substraction with saturation
5763
TMS6_stb
,
// Store to memory (signed 8bit)
5764
TMS6_stbu
,
// Store to memory (unsigned 8bit)
5765
TMS6_sth
,
// Store to memory (signed 16bit)
5766
TMS6_sthu
,
// Store to memory (unsigned 16bit)
5767
TMS6_stw
,
// Store to memory (32bit)
5768
TMS6_sub
,
// Integer substaraction without saturation (signed)
5769
TMS6_subu
,
// Integer substaraction without saturation (unsigned)
5770
TMS6_subab
,
// Integer subtraction using addressing mode (byte)
5771
TMS6_subah
,
// Integer subtraction using addressing mode (halfword)
5772
TMS6_subaw
,
// Integer subtraction using addressing mode (word)
5773
TMS6_subc
,
// Conditional subtract & shift (for division)
5774
TMS6_sub2
,
// Two 16bit integer subtractions on register halves
5775
TMS6_xor
,
// Exclusive OR
5776
TMS6_zero
,
// Zero a register
5777
// New TMS320C674x instructions
5778
TMS6_abs2
,
// Absolute Value With Saturation, Signed, Packed 16-bit
5779
TMS6_absdp
,
// Absolute Value, Double-Precision Floating-Point
5780
TMS6_abssp
,
// Absolute Value, Single-Precision Floating-Point
5781
TMS6_add4
,
// Add Without Saturation, Four 8-Bit Pairs for Four 8-Bit Results
5782
TMS6_addad
,
// Add Using Doubleword Addressing Mode
5783
TMS6_adddp
,
// Add Two Double-Precision Floating-Point Values
5784
TMS6_addkpc
,
// Add Signed 7-bit Constant to Program Counter
5785
TMS6_addsp
,
// Add Two Single-Precision Floating-Point Values
5786
TMS6_addsub
,
// Parallel ADD and SUB Operations On Common Inputs
5787
TMS6_addsub2
,
// Parallel ADD2 and SUB2 Operations On Common Inputs
5788
TMS6_andn
,
// Bitwise AND Invert
5789
TMS6_avg2
,
// Average, Signed, Packed 16-bit
5790
TMS6_avgu4
,
// Average, Unsigned, Packed 16-bit
5791
TMS6_bdec
,
// Branch and Decrement
5792
TMS6_bitc4
,
// Bit Count, Packed 8-bit
5793
TMS6_bitr
,
// Bit Reverse
5794
TMS6_bnop
,
// Branch With NOP
5795
TMS6_bpos
,
// Branch Positive
5796
TMS6_callp
,
// Call Using a Displacement
5797
TMS6_cmpeq2
,
// Compare for Equality, Packed 16-bit
5798
TMS6_cmpeq4
,
// Compare for Equality, Packed 8-bit
5799
TMS6_cmpeqdp
,
// Compare for Equality, Double-Precision Floating-Point Values
5800
TMS6_cmpeqsp
,
// Compare for Equality, Single-Precision Floating-Point Values
5801
TMS6_cmpgt2
,
// Compare for Greater Than, Packed 16-bit
5802
TMS6_cmpgtdp
,
// Compare for Greater Than, Double-Precision Floating-Point Values
5803
TMS6_cmpgtsp
,
// Compare for Greater Than, Single-Precision Floating-Point Values
5804
TMS6_cmpgtu4
,
// Compare for Greater Than, Unsigned, Packed 8-bit
5805
TMS6_cmplt2
,
// Compare for Less Than, Packed 16-bit
5806
TMS6_cmpltdp
,
// Compare for Less Than, Double-Precision Floating-Point Values
5807
TMS6_cmpltsp
,
// Compare for Less Than, Single-Precision Floating-Point Values
5808
TMS6_cmpltu4
,
// Compare for Less Than, Unsigned, Packed 8-bit
5809
TMS6_cmpy
,
// Complex Multiply Two Pairs, Signed, Packed 16-bit
5810
TMS6_cmpyr
,
// Complex Multiply Two Pairs, Signed, Packed 16-bit With Rounding
5811
TMS6_cmpyr1
,
// Complex Multiply Two Pairs, Signed, Packed 16-bit With Rounding
5812
TMS6_ddotp4
,
// Double Dot Product, Signed, Packed 16-Bit and Signed, Packed 8-Bit
5813
TMS6_ddotph2
,
// Double Dot Product, Two Pairs, Signed, Packed 16-Bit
5814
TMS6_ddotph2r
,
// Double Dot Product With Rounding, Two Pairs, Signed, Packed 16-Bit
5815
TMS6_ddotpl2
,
// Double Dot Product, Two Pairs, Signed, Packed 16-Bit
5816
TMS6_ddotpl2r
,
// Double Dot Product With Rounding, Two Pairs, Signed Packed 16-Bit
5817
TMS6_deal
,
// Deinterleave and Pack
5818
TMS6_dint
,
// Disable Interrupts and Save Previous Enable State
5819
TMS6_dmv
,
// Move Two Independent Registers to Register Pair
5820
TMS6_dotp2
,
// Dot Product, Signed, Packed 16-Bit
5821
TMS6_dotpn2
,
// Dot Product With Negate, Signed, Packed 16-Bit
5822
TMS6_dotpnrsu2
,
// Dot Product With Negate, Shift and Round, Signed by Unsigned, Packed 16-Bit
5823
TMS6_dotpnrus2
,
// Dot Product With Negate, Shift and Round, Unsigned by Signed, Packed 16-Bit
5824
TMS6_dotprsu2
,
// Dot Product With Shift and Round, Signed by Unsigned, Packed 16-Bit
5825
TMS6_dotprus2
,
// Dot Product With Shift and Round, Unsigned by Signed, Packed 16-Bit
5826
TMS6_dotpsu4
,
// Dot Product, Signed by Unsigned, Packed 8-Bit
5827
TMS6_dotpu4
,
// Dot Product, Unsigned, Packed 8-Bit
5828
TMS6_dotpus4
,
// Dot Product, Unsigned by Signed, Packed 8-Bit
5829
TMS6_dpack2
,
// Parallel PACK2 and PACKH2 Operations
5830
TMS6_dpackx2
,
// Parallel PACKLH2 Operations
5831
TMS6_dpint
,
// Convert Double-Precision Floating-Point Value to Integer
5832
TMS6_dpsp
,
// Convert Double-Precision Floating-Point Value to Single-Precision Floating-Point Value
5833
TMS6_dptrunc
,
// Convert Double-Precision Floating-Point Value to Integer With Truncation
5834
TMS6_gmpy
,
// Galois Field Multiply
5835
TMS6_gmpy4
,
// Galois Field Multiply, Packed 8-Bit
5836
TMS6_intdp
,
// Convert Signed Integer to Double-Precision Floating-Point Value
5837
TMS6_intdpu
,
// Convert Unsigned Integer to Double-Precision Floating-Point Value
5838
TMS6_intsp
,
// Convert Signed Integer to Single-Precision Floating-Point Value
5839
TMS6_intspu
,
// Convert Unsigned Integer to Single-Precision Floating-Point Value
5840
TMS6_lddw
,
// Load Doubleword From Memory With a 5-Bit Unsigned Constant Offset or Register Offset
5841
TMS6_ldndw
,
// Load Nonaligned Doubleword From Memory With Constant or Register Offset
5842
TMS6_ldnw
,
// Load Nonaligned Word From Memory With Constant or Register Offset
5843
TMS6_max2
,
// Maximum, Signed, Packed 16-Bit
5844
TMS6_maxu4
,
// Maximum, Unsigned, Packed 8-Bit
5845
TMS6_min2
,
// Minimum, Signed, Packed 16-Bit
5846
TMS6_minu4
,
// Minimum, Unsigned, Packed 8-Bit
5847
TMS6_mpy2
,
// Multiply Signed by Signed, 16 LSB x 16 LSB and 16 MSB x 16 MSB
5848
TMS6_mpy2ir
,
// Multiply Two 16-Bit x 32-Bit, Shifted by 15 to Produce a Rounded 32-Bit Result
5849
TMS6_mpy32
,
// Multiply Signed 32-Bit x Signed 32-Bit Into 32-Bit Result
5850
TMS6_mpy32su
,
// Multiply Signed 32-Bit x Unsigned 32-Bit Into Signed 64-Bit Result
5851
TMS6_mpy32u
,
// Multiply Unsigned 32-Bit x Unsigned 32-Bit Into Unsigned 64-Bit Result
5852
TMS6_mpy32us
,
// Multiply Unsigned 32-Bit x Signed 32-Bit Into Signed 64-Bit Result
5853
TMS6_mpydp
,
// Multiply Two Double-Precision Floating-Point Values
5854
TMS6_mpyhi
,
// Multiply 16 MSB x 32-Bit Into 64-Bit Result
5855
TMS6_mpyhir
,
// Multiply 16 MSB x 32-Bit, Shifted by 15 to Produce a Rounded 32-Bit Result
5856
TMS6_mpyi
,
// Multiply 32-Bit x 32-Bit Into 32-Bit Result
5857
TMS6_mpyid
,
// Multiply 32-Bit x 32-Bit Into 64-Bit Result
5858
TMS6_mpyih
,
// Multiply 32-Bit x 16-MSB Into 64-Bit Result
5859
TMS6_mpyihr
,
// Multiply 32-Bit x 16 MSB, Shifted by 15 to Produce a Rounded 32-Bit Result
5860
TMS6_mpyil
,
// Multiply 32-Bit x 16 LSB Into 64-Bit Result
5861
TMS6_mpyilr
,
// Multiply 32-Bit x 16 LSB, Shifted by 15 to Produce a Rounded 32-Bit Result
5862
TMS6_mpyli
,
// Multiply 16 LSB x 32-Bit Into 64-Bit Result
5863
TMS6_mpylir
,
// Multiply 16 LSB x 32-Bit, Shifted by 15 to Produce a Rounded 32-Bit Result
5864
TMS6_mpysp
,
// Multiply Two Single-Precision Floating-Point Values
5865
TMS6_mpysp2dp
,
// Multiply Two Single-Precision Floating-Point Values for Double-Precision Result
5866
TMS6_mpyspdp
,
// Multiply Single-Precision Floating-Point Value x Double-Precision Floating-Point Value
5867
TMS6_mpysu4
,
// Multiply Signed x Unsigned, Four 8-Bit Pairs for Four 8-Bit Results
5868
TMS6_mpyu4
,
// Multiply Unsigned x Unsigned, Four 8-Bit Pairs for Four 8-Bit Results
5869
TMS6_mpyus4
,
// Multiply Unsigned x Signed, Four 8-Bit Pairs for Four 8-Bit Results
5870
TMS6_mvd
,
// Move From Register to Register, Delayed
5871
TMS6_mvkl
,
// Move Signed Constant Into Register and Sign Extend
5872
TMS6_pack2
,
// Pack Two 16 LSBs Into Upper and Lower Register Halves
5873
TMS6_packh2
,
// Pack Two 16 MSBs Into Upper and Lower Register Halves
5874
TMS6_packh4
,
// Pack Four High Bytes Into Four 8-Bit Halfwords
5875
TMS6_packhl2
,
// Pack 16 MSB Into Upper and 16 LSB Into Lower Register Halves
5876
TMS6_packl4
,
// Pack Four Low Bytes Into Four 8-Bit Halfwords
5877
TMS6_packlh2
,
// Pack 16 LSB Into Upper and 16 MSB Into Lower Register Halves
5878
TMS6_rcpdp
,
// Double-Precision Floating-Point Reciprocal Approximation
5879
TMS6_rcpsp
,
// Single-Precision Floating-Point Reciprocal Approximation
5880
TMS6_rint
,
// Restore Previous Enable State
5881
TMS6_rotl
,
// Rotate Left
5882
TMS6_rpack2
,
// Shift With Saturation and Pack Two 16 MSBs Into Upper and Lower Register Halves
5883
TMS6_rsqrdp
,
// Double-Precision Floating-Point Square-Root Reciprocal Approximation
5884
TMS6_rsqrsp
,
// Single-Precision Floating-Point Square-Root Reciprocal Approximation
5885
TMS6_sadd2
,
// Add Two Signed 16-Bit Integers on Upper and Lower Register Halves With Saturation
5886
TMS6_saddsu2
,
// Add Two Signed and Unsigned 16-Bit Integers on Register Halves With Saturation
5887
TMS6_saddsub
,
// Parallel SADD and SSUB Operations On Common Inputs
5888
TMS6_saddsub2
,
// Parallel SADD2 and SSUB2 Operations On Common Inputs
5889
TMS6_saddu4
,
// Add With Saturation, Four Unsigned 8-Bit Pairs for Four 8-Bit Results
5890
TMS6_saddus2
,
// Add Two Unsigned and Signed 16-Bit Integers on Register Halves With Saturation
5891
TMS6_shfl
,
// Shuffle
5892
TMS6_shfl3
,
// 3-Way Bit Interleave On Three 16-Bit Values Into a 48-Bit Result
5893
TMS6_shlmb
,
// Shift Left and Merge Byte
5894
TMS6_shr2
,
// Arithmetic Shift Right, Signed, Packed 16-Bit
5895
TMS6_shrmb
,
// Shift Right and Merge Byte
5896
TMS6_shru2
,
// Arithmetic Shift Right, Unsigned, Packed 16-Bit
5897
TMS6_smpy2
,
// Multiply Signed by Signed, 16 LSB x 16 LSB and 16 MSB x 16 MSB With Left Shift and Saturation
5898
TMS6_smpy32
,
// Multiply Signed 32-Bit x Signed 32-Bit Into 64-Bit Result With Left Shift and Saturation
5899
TMS6_spack2
,
// Saturate and Pack Two 16 LSBs Into Upper and Lower Register Halves
5900
TMS6_spacku4
,
// Saturate and Pack Four Signed 16-Bit Integers Into Four Unsigned 8-Bit Halfwords
5901
TMS6_spdp
,
// Convert Single-Precision Floating-Point Value to Double-Precision Floating-Point Value
5902
TMS6_spint
,
// Convert Single-Precision Floating-Point Value to Integer
5903
TMS6_spkernel
,
// Software Pipelined Loop (SPLOOP) Buffer Operation Code Boundary
5904
TMS6_spkernelr
,
// Software Pipelined Loop (SPLOOP) Buffer Operation Code Boundary
5905
TMS6_sploop
,
// Software Pipelined Loop (SPLOOP) Buffer Operation
5906
TMS6_sploopd
,
// Software Pipelined Loop (SPLOOP) Buffer Operation With Delayed Testing
5907
TMS6_sploopw
,
// Software Pipelined Loop (SPLOOP) Buffer Operation With Delayed Testing and No Epilog
5908
TMS6_spmask
,
// Software Pipelined Loop (SPLOOP) Buffer Operation Load/Execution Control
5909
TMS6_spmaskr
,
// Software Pipelined Loop (SPLOOP) Buffer Operation Load/Execution Control
5910
TMS6_sptrunc
,
// Convert Single-Precision Floating-Point Value to Integer With Truncation
5911
TMS6_sshvl
,
// Variable Shift Left
5912
TMS6_sshvr
,
// Variable Shift Right
5913
TMS6_ssub2
,
// Subtract Two Signed 16-Bit Integers on Upper and Lower Register Halves With Saturation
5914
TMS6_stdw
,
// Store Doubleword to Memory With a 5-Bit Unsigned Constant Offset or Register Offset
5915
TMS6_stndw
,
// Store Nonaligned Doubleword to Memory With a 5-Bit Unsigned Constant Offset or Register Offset
5916
TMS6_stnw
,
// Store Nonaligned Word to Memory With a 5-Bit Unsigned Constant Offset or Register Offset
5917
TMS6_sub4
,
// Subtract Without Saturation, Four 8-Bit Pairs for Four 8-Bit Results
5918
TMS6_subabs4
,
// Subtract With Absolute Value, Four 8-Bit Pairs for Four 8-Bit Results
5919
TMS6_subdp
,
// Subtract Two Double-Precision Floating-Point Values
5920
TMS6_subsp
,
// Subtract Two Single-Precision Floating-Point Values
5921
TMS6_swap2
,
// Swap Bytes in Upper and Lower Register Halves
5922
TMS6_swap4
,
// Swap Byte Pairs in Upper and Lower Register Halves
5923
TMS6_swe
,
// Software Exception
5924
TMS6_swenr
,
// Software Exception, no Return
5925
TMS6_unpkhu4
,
// Unpack 16 MSB Into Two Lower 8-Bit Halfwords of Upper and Lower Register Halves
5926
TMS6_unpklu4
,
// Unpack 16 LSB Into Two Lower 8-Bit Halfwords of Upper and Lower Register Halves
5927
TMS6_xormpy
,
// Galois Field Multiply With Zero Polynomial
5928
TMS6_xpnd2
,
// Expand Bits to Packed 16-Bit Masks
5929
TMS6_xpnd4
,
// Expand Bits to Packed 8-Bit Masks
5930
// New TMS320C66x Instructions
5931
TMS6_cmatmpy
,
// Complex Matrix Multiply, Signed Complex 16-bit (16-bit real/16-bit Imaginary)
5932
TMS6_ccmatmpyr1
,
// Complex Conjugate Matrix Multiply With Rounding, Signed Complex 16-bit (16-bit Real/16-bit Imaginary)
5933
TMS6_ccmpy32r1
,
// Complex Multiply With Rounding and Conjugate, Signed Complex 16-bit (16-bit Real/16-bit Imaginary)
5934
TMS6_ccmatmpy
,
// Complex Conjugate Matrix Multiply, Signed Complex 16-bit (16-bit real/16-bit Imaginary)
5935
TMS6_cmatmpyr1
,
// Complex Matrix Multiply With Rounding, Signed Complex 16-bit (16-bit Real/16-bit Imaginary)
5936
TMS6_cmpysp
,
// Single Precision Complex Floating Point Multiply
5937
TMS6_crot90
,
// Complex Rotate By 90 Degrees, Signed Complex 16-bit (16-bit Real/16-bit Imaginary)
5938
TMS6_crot270
,
// Complex Rotate By 270 Degrees, Signed Complex 16-bit (16-bit Real/16-bit Imaginary)
5939
TMS6_dadd
,
// 2-Way SIMD Addition, Packed Signed 32-bit
5940
TMS6_dadd2
,
// 4-Way SIMD Addition, Packed Signed 16-bit
5941
TMS6_daddsp
,
// 2-Way SIMD Single Precision Floating Point Addition
5942
TMS6_dapys2
,
// 4-Way SIMD Apply Sign Bits to Operand
5943
TMS6_davg2
,
// 4-Way SIMD Average, Signed, Packed 16-bit
5944
TMS6_davgnr2
,
// 4-Way SIMD Average Without Rounding, Signed Packed 16-bit
5945
TMS6_davgnru4
,
// 8-Way SIMD Average Without Rounding, Unsigned Packed 8-bit
5946
TMS6_davgu4
,
// 8-Way SIMD Average, Unsigned Packed 8-bit
5947
TMS6_dccmpy
,
// 2-Way SIMD Complex Multiply With Conjugate, Packed Complex Signed 16-bit (16-bit Real/16-bit Imaginary)
5948
TMS6_dccmpyr1
,
// 2-Way SIMD Complex Multiply With Conjugate and Rounding, Packed Complex 16-bit (16-bit Real/16-bit Imaginary)
5949
TMS6_dcmpeq2
,
// 2-Way SIMD Compare If Equal, Packed 16-bit
5950
TMS6_dcmpeq4
,
// 4-Way SIMD Compare If Equal, Packed 8-bit
5951
TMS6_dcmpgt2
,
// 2-Way SIMD Compare If Greater-Than, Packed 16-bit
5952
TMS6_dcmpgtu4
,
// 4-Way SIMD Compare If Greater-Than, Unsigned Packed 8-bit
5953
TMS6_dcmpy
,
// 2-Way SIMD Complex Multiply, Packed Complex 16-bit (16-bit Real/16-bit Imaginary)
5954
TMS6_dcmpyr1
,
// 2-Way SIMD Complex Multiply With Rounding, Packed Complex 16-bit (16-bit Real/16-bit Imaginary)
5955
TMS6_dcrot270
,
// 2-Way SIMD Rotate Complex Number By 270 Degrees, Packed Complex 16-bit (16-bit Real/16-bit Imaginary)
5956
TMS6_dcrot90
,
// 2-Way SIMD Rotate Complex Number By 90 Degrees, Packed Complex 16-bit (16-bit Real/16-bit Imaginary)
5957
TMS6_dinthspu
,
// 2-Way SIMD Convert 16-bit Unsigned Integer to Single Precision Floating Point
5958
TMS6_dintspu
,
// 2-Way SIMD Convert 32-bit Unsigned Integer to Single Precision Floating Point, Packed Unsigned 32-bit
5959
TMS6_dmax2
,
// 2-Way SIMD Maximum, Packed Signed 16-bit
5960
TMS6_dmaxu4
,
// 4-Way SIMD Maximum, Packed Unsigned 8-bit
5961
TMS6_dmin2
,
// 2-Way SIMD Minimum, Packed Signed 16-bit
5962
TMS6_dminu4
,
// 4-Way SIMD Minimum, Packed Unsigned 8-bit
5963
TMS6_dmpy2
,
// 4-Way SIMD Multiply, Packed Signed 16-bit
5964
TMS6_dmpysp
,
// 2-Way SIMD Multiply, Packed Single Precision Floating Point
5965
TMS6_dmpysu4
,
// 4-Way SIMD Multiply Signed By Unsigned, Packed 8-bit
5966
TMS6_dmpyu2
,
// 4-Way SIMD Multiply Unisgned by Unsigned, Packed 16-bit
5967
TMS6_dmpyu4
,
// 4-Way SIMD Multiply Unsigned By Unsigned, Packed 8-bit
5968
TMS6_dmvd
,
// Move Two Independent Registers to a Register Pair, Delayed
5969
TMS6_dpackh2
,
// 2-Way SIMD Pack 16 MSBs Into Upper and Lower Register Halves
5970
TMS6_dpackh4
,
// 2-Way SIMD Pack Four High Bytes Into Four 8-Bit Halfwords
5971
TMS6_dpackhl2
,
// 2-Way SIMD Pack 16 MSB Into Upper and 16 LSB Into Lower Register Halves
5972
TMS6_dpackl2
,
// 2-Way SIMD Pack 16 LSBSs Into Upper and Lower Register Halves
5973
TMS6_dpackl4
,
// 2-Way SIMD Pack Four Low Bytes Into Four 8-bit Halfwords
5974
TMS6_dpacklh2
,
// 2-Way SIMD Pack 16 LSB Into Upper and 16 MSB Into Lower Register Halves
5975
TMS6_dsadd
,
// 2-Way SIMD Addition With Saturation, Packed Signed 32-bit
5976
TMS6_dsadd2
,
// 4-Way SIMD Addition with Saturation, Packed Signed 16-bit
5977
TMS6_dshl
,
// 2-Way SIMD Shift Left, Packed Signed 32-bit
5978
TMS6_dshl2
,
// 4-Way SIMD Shift Left, Packed Signed 16-bit
5979
TMS6_dshr
,
// 2-Way SIMD Shift Left, Packed Signed 32-bit
5980
TMS6_dshr2
,
// 4-Way SIMD Shift Left, Packed Signed 16-bit
5981
TMS6_dshru
,
// 2-Way SIMD Shift Right, Packed Unsigned 32-bit
5982
TMS6_dshru2
,
// 4-Way SIMD Shift Right, Packed Unsigned 16-bit
5983
TMS6_dsmpy2
,
// 4-Way SIMD Multiply Signed by Signed With Left Shift and Saturation, Packed Signed 16-bit
5984
TMS6_dspacku4
,
// 2-Way SIMD Saturate and Pack Into Unisgned Packed 8-bit
5985
TMS6_dspint
,
// 2-Way SIMD Convert Single Precision Floating Point to Signed 32-bit Integer
5986
TMS6_dspinth
,
// 2-Way SIMD Convert Single Precision Floating Point to Signed 16-bit Integer
5987
TMS6_dssub
,
// 2-Way SIMD Saturating Subtract, Packed Signed 32-bit
5988
TMS6_dssub2
,
// 4-Way SIMD Saturating Subtract, Packed Signed 16-bit
5989
TMS6_dsub
,
// 2-Way SIMD Subtract, Packed Signed 32-bit
5990
TMS6_dsub2
,
// 4-Way SIMD Subtract, Packed Signed 16-bit
5991
TMS6_dsubsp
,
// 2-Way SIMD Subtract, Packed Single Precision Floating Point
5992
TMS6_dxpnd2
,
// Expand Bits to Packed 16-bit Masks
5993
TMS6_dxpnd4
,
// Expand Bits to Packed 8-bit Masks
5994
TMS6_fadddp
,
// Fast Double-Precision Floating Point Add
5995
TMS6_faddsp
,
// Fast Single-Precision Floating Point Add
5996
TMS6_fmpydp
,
// Fast Double-Precision Floating Point Multiply
5997
TMS6_fsubdp
,
// Fast Double-Precision Floating Point Subtract
5998
TMS6_fsubsp
,
// Fast Single-Precision Floating Point Subtract
5999
TMS6_land
,
// Logical AND
6000
TMS6_landn
,
// Logical AND, One Operand Negated
6001
TMS6_lor
,
// Logical OR
6002
TMS6_mfence
,
// Memory Fence
6003
TMS6_mpyu2
,
// Multiply Unsigned by Unsigned, Packed 16-bit
6004
TMS6_qmpy32
,
// 4-Way SIMD Multiply, Packed Signed 32-bit
6005
TMS6_qmpysp
,
// 4-Way SIMD Floating Point Multiply, Packed Single-Precision Floating Point
6006
TMS6_qsmpy32r1
,
// 4-Way SIMD Multiply with Saturation and Rounding, Packed Signed 32-bit
6007
TMS6_shl2
,
// 2-Way SIMD Shift Left, Packed Signed 16-bit
6008
TMS6_unpkbu4
,
// Unpack All Unsigned Packed 8-bit to Unsigned Packed 16-bit
6009
TMS6_unpkh2
,
// Unpack High Signed Packed 16-bit to Packed 32-bit
6010
TMS6_unpkhu2
,
// Unpack High Unsigned Packed 16-bit to Packed 32-bit
6011
TMS6_fphead
,
// Special fake instruction to show the fetch packet header
6012
TMS6_last
,
6013
};
6014
/*
6015
* Interactive disassembler (IDA).
6016
* Intel 80196 module
6017
*
6018
*/
6019
enum
6020
{
6021
I196_null
= 0,
// Unknown Operation
6022
I196_add2
,
// Add words (2 operands)
6023
I196_add3
,
// Add words (3 operands)
6024
I196_addb2
,
// Add bytes (2 operands)
6025
I196_addb3
,
// Add bytes (3 operands)
6026
I196_addc
,
// Add words with carry
6027
I196_addcb
,
// Add bytes with carry
6028
I196_and2
,
// Logical AND words (2 operands)
6029
I196_and3
,
// Logical AND words (3 operands)
6030
I196_andb2
,
// Logical AND bytes (2 operands)
6031
I196_andb3
,
// Logical AND bytes (3 operands)
6032
I196_bmov
,
// Block move
6033
I196_bmovi
,
// Interruptable block move
6034
I196_br
,
// Branch indirect
6035
I196_clr
,
// Clear word
6036
I196_clrb
,
// Clear byte
6037
I196_clrc
,
// Clear carry flag
6038
I196_clrvt
,
// Clear overflow-trap flag
6039
I196_cmp
,
// Compare words
6040
I196_cmpb
,
// Compare bytes
6041
I196_cmpl
,
// Compare long
6042
I196_dec
,
// Decrement word
6043
I196_decb
,
// Decrement byte
6044
I196_di
,
// Disable interrupts
6045
I196_div
,
// Divide integers
6046
I196_divb
,
// Divide short-integers
6047
I196_divu
,
// Divide words, unsigned
6048
I196_divub
,
// Divide bytes, unsigned
6049
I196_djnz
,
// Decrement and jump if not zero
6050
I196_djnzw
,
// Decrement and jump if not zero word
6051
I196_dpts
,
// Disable peripheral transaction server
6052
I196_ei
,
// Enable interrupts
6053
I196_epts
,
// Enable peripheral transaction server
6054
I196_ext
,
// Sign-extend integer into long-integer
6055
I196_extb
,
// Sign-extend short-integer into integer
6056
I196_idlpd
,
// Idle/powerdown
6057
I196_inc
,
// Increment word
6058
I196_incb
,
// Increment byte
6059
I196_jbc
,
// Jump if bit is clear
6060
I196_jbs
,
// Jump if bit is set
6061
I196_jc
,
// Jump if carry flag is set
6062
I196_je
,
// Jump if equal
6063
I196_jge
,
// Jump if signed greater than or equal
6064
I196_jgt
,
// Jump if signed greater than
6065
I196_jh
,
// Jump if higher (unsigned)
6066
I196_jle
,
// Jump if signed less than or equal
6067
I196_jlt
,
// Jump if signed less than
6068
I196_jnc
,
// Jump if carry flag is clear
6069
I196_jne
,
// Jump if not equal
6070
I196_jnh
,
// Jump if not higher (unsigned)
6071
I196_jnst
,
// Jump if sticky bit flag is clear
6072
I196_jnv
,
// Jump if overflow flag is clear
6073
I196_jnvt
,
// Jump if overflow-trap flag is clear
6074
I196_jst
,
// Jump if sticky bit flag is set
6075
I196_jv
,
// Jump if overflow flag is set
6076
I196_jvt
,
// Jump if overflow-trap flag is set
6077
I196_lcall
,
// Long call
6078
I196_ld
,
// Load word
6079
I196_ldb
,
// Load byte
6080
I196_ldbse
,
// Load byte sign-extended
6081
I196_ldbze
,
// Load byte zero-extended
6082
I196_ljmp
,
// Long jump
6083
I196_mul2
,
// Multiply integers (2 operands)
6084
I196_mul3
,
// Multiply integers (3 operands)
6085
I196_mulb2
,
// Multiply short-integers (2 operands)
6086
I196_mulb3
,
// Multiply short-integers (3 operands)
6087
I196_mulu2
,
// Multiply words, unsigned (2 operands)
6088
I196_mulu3
,
// Multiply words, unsigned (3 operands)
6089
I196_mulub2
,
// Multiply bytes, unsigned (2 operands)
6090
I196_mulub3
,
// Multiply bytes, unsigned (3 operands)
6091
I196_neg
,
// Negate integer
6092
I196_negb
,
// Negate short-integer
6093
I196_nop
,
// No operation
6094
I196_norml
,
// Normalize long-integer
6095
I196_not
,
// Complement word
6096
I196_notb
,
// Complement byte
6097
I196_or
,
// Logical OR words
6098
I196_orb
,
// Logical OR bytes
6099
I196_pop
,
// Pop word
6100
I196_popa
,
// Pop all
6101
I196_popf
,
// Pop flags
6102
I196_push
,
// Push word
6103
I196_pusha
,
// Push all
6104
I196_pushf
,
// Push flags
6105
I196_ret
,
// Return from subroutine
6106
I196_rst
,
// Reset system
6107
I196_scall
,
// Short call
6108
I196_setc
,
// Set carry flag
6109
I196_shl
,
// Shift word left
6110
I196_shlb
,
// Shift byte left
6111
I196_shll
,
// Shift double-word left
6112
I196_shr
,
// Logical right shift word
6113
I196_shra
,
// Arithmetic right shift word
6114
I196_shrab
,
// Arithmetic right shift byte
6115
I196_shral
,
// Arithmetic right shift double-word
6116
I196_shrb
,
// Logical right shift byte
6117
I196_shrl
,
// Logical right shift double-word
6118
I196_sjmp
,
// Short jump
6119
I196_skip
,
// Two byte no-operation
6120
I196_st
,
// Store word
6121
I196_stb
,
// Store byte
6122
I196_sub2
,
// Subtract words (2 operands)
6123
I196_sub3
,
// Subtract words (3 operands)
6124
I196_subb2
,
// Subtract bytes (2 operands)
6125
I196_subb3
,
// subtract bytes (3 operands)
6126
I196_subc
,
// Subtract words with borrow
6127
I196_subcb
,
// Subtract bytes with borrow
6128
I196_tijmp
,
// Table indirect jump
6129
I196_trap
,
// Software trap
6130
I196_xch
,
// Exchange word
6131
I196_xchb
,
// Exchange byte
6132
I196_xor
,
// Logical exclusive-or words
6133
I196_xorb
,
// Logical exclusive-or bytes
6134
// 8x196NU, NP instructions
6135
I196_ebmovi
,
// Extended interruptable block move
6136
I196_ebr
,
// Extended branch indirect
6137
I196_ecall
,
// Extended call
6138
I196_ejmp
,
// Extended jump
6139
I196_eld
,
// Extended load word
6140
I196_eldb
,
// Extended load byte
6141
I196_est
,
// Extended store word
6142
I196_estb
,
// Extended store byte
6143
// 8x6x specific instructions
6144
I196_reti
,
6145
I196_retei
,
6146
I196_rombank
,
6147
I196_bank0
,
6148
I196_bank1
,
6149
I196_bank2
,
6150
I196_bank3
,
6151
I196_last
6152
};
6153
/*
6154
* Interactive disassembler (IDA).
6155
* Copyright (c) 1990-2026 Hex-Rays
6156
* ALL RIGHTS RESERVED.
6157
*
6158
* Renesas SuperH - RISC with 16bit instructions
6159
*
6160
*/
6161
enum
6162
{
6163
SH3_null
= 0,
// Unknown Operation
6164
SH3_add
,
// Add binary
6165
SH3_addc
,
// Add with Carry
6166
SH3_addv
,
// Add with V Flag Overflow Check
6167
SH3_and
,
// AND Logical
6168
SH3_and_b
,
// AND Byte Logical
6169
SH3_bf
,
// Branch if False
6170
SH3_bf_s
,
// Branch of False with Delay Slot
6171
SH3_bra
,
// Branch
6172
SH3_braf
,
// Branch Far
6173
SH3_bsr
,
// Branch to Subroutine
6174
SH3_bsrf
,
// Branch to Subroutine Far
6175
SH3_bt
,
// Branch if True
6176
SH3_bt_s
,
// Branch if True with Delay Slot
6177
SH3_clrmac
,
// Clear MAC register
6178
SH3_clrs
,
// Clear S Bit
6179
SH3_clrt
,
// Clear T Bit
6180
SH3_cmp_eq
,
// Compare: Equal
6181
SH3_cmp_ge
,
// Compare: Signed Greater or Equal
6182
SH3_cmp_gt
,
// Compare: Signed Greater
6183
SH3_cmp_hi
,
// Compare: Unsigned Greater
6184
SH3_cmp_hs
,
// Compare: Unsigned Greater or Equal
6185
SH3_cmp_pl
,
// Compare: Positive
6186
SH3_cmp_pz
,
// Compare: Positive or Zero
6187
SH3_cmp_str
,
// Compare: Equal Bytes
6188
SH3_div0s
,
// Divide Step 0 as Signed
6189
SH3_div0u
,
// Divide Step 0 as Unsigned
6190
SH3_div1
,
// Divide Step 1
6191
SH3_dmuls_l
,
// Double-Length Multiply as Signed
6192
SH3_dmulu_l
,
// Double-Length Multiply as Unsigned
6193
SH3_dt
,
// Decrement and Test
6194
SH3_exts_b
,
// Extend as Signed (Byte)
6195
SH3_exts_w
,
// Extend as Signed (Word)
6196
SH3_extu_b
,
// Extend as Unsigned (Byte)
6197
SH3_extu_w
,
// Extend as Unsigned (Word)
6198
SH3_jmp
,
// Jump
6199
SH3_jsr
,
// Jump to Subroutine
6200
SH3_ldc
,
// Load to Control Register
6201
SH3_ldc_l
,
// Load to Control Register Long
6202
SH3_lds
,
// Load to System Register
6203
SH3_lds_l
,
// Load to System Register Long
6204
SH3_ldtlb
,
// Load PTEH/PTEL/PTEA to TLB
6205
SH3_mac_w
,
// Multiply and Accumulate Word
6206
SH3_mac_l
,
// Multiply and Accumulate Long
6207
SH3_mov
,
// Move Data
6208
SH3_mov_b
,
// Move Byte Data
6209
SH3_mov_w
,
// Move Word Data
6210
SH3_mov_l
,
// Move Long Data
6211
SH3_movi
,
// Move Immediate Byte Data
6212
SH3_movi_w
,
// Move Immediate Word Data
6213
SH3_movi_l
,
// Move Immediate Long Data
6214
SH3_movp_b
,
// Move Peripherial Byte Data
6215
SH3_movp_w
,
// Move Peripherial Word Data
6216
SH3_movp_l
,
// Move Peripherial Long Data
6217
SH3_movs_b
,
// Move Structure Byte Data
6218
SH3_movs_w
,
// Move Structure Word Data
6219
SH3_movs_l
,
// Move Structure Long Data
6220
SH3_mova
,
// Move Effective Address
6221
SH3_movt
,
// Move T Bit
6222
SH3_mul
,
// Multiply Long
6223
SH3_muls
,
// Multiply as Signed Word
6224
SH3_mulu
,
// Multiply as Unsigned Word
6225
SH3_neg
,
// Negate
6226
SH3_negc
,
// Negate with Carry
6227
SH3_nop
,
// No Operation
6228
SH3_not
,
// NOT - Logical Complement
6229
SH3_or
,
// OR Logical
6230
SH3_or_b
,
// OR Byte Logical
6231
SH3_pref
,
// Prefetch Data to the Cache
6232
SH3_rotcl
,
// Rotate with Carry Left
6233
SH3_rotcr
,
// Rotate with Carry Right
6234
SH3_rotl
,
// Rotate Left
6235
SH3_rotr
,
// Rotate Right
6236
SH3_rte
,
// Return from Exception
6237
SH3_rts
,
// Return from Subroutine
6238
SH3_sets
,
// Set S Bit
6239
SH3_sett
,
// Set T Bit
6240
SH3_shad
,
// Shift Arithmetic Dynamically
6241
SH3_shal
,
// Shift Arithmetic Left
6242
SH3_shar
,
// Shift Arithmetic Right
6243
SH3_shld
,
// Shift Logical Dynamically
6244
SH3_shll
,
// Shift Logical Left
6245
SH3_shll2
,
// Shift Logical Left 2
6246
SH3_shll8
,
// Shift Logical Left 8
6247
SH3_shll16
,
// Shift Logical Left 16
6248
SH3_shlr
,
// Shift Logical Right
6249
SH3_shlr2
,
// Shift Logical Right 2
6250
SH3_shlr8
,
// Shift Logical Right 8
6251
SH3_shlr16
,
// Shift Logical Right 16
6252
SH3_sleep
,
// Sleep
6253
SH3_stc
,
// Store Control Register
6254
SH3_stc_l
,
// Store Control Register Long
6255
SH3_sts
,
// Store System Register
6256
SH3_sts_l
,
// Store System Register Long
6257
SH3_sub
,
// Subtract Binary
6258
SH3_subc
,
// Subtract with Carry
6259
SH3_subv
,
// Subtract with V Flag Underflow Check
6260
SH3_swap_b
,
// Swap Register Halves (Byte)
6261
SH3_swap_w
,
// Swap Register Halves (Word)
6262
SH3_tas_b
,
// Test and Set
6263
SH3_trapa
,
// Trap Always
6264
SH3_tst
,
// Test Logical
6265
SH3_tst_b
,
// Test Byte Logical
6266
SH3_xor
,
// Exclusive OR Logical
6267
SH3_xor_b
,
// Exclusive OR Byte Logical
6268
SH3_xtrct
,
// Extract
6269
SH4_fabs
,
// Floating-point absolute value
6270
SH4_fadd
,
// Floating-point add
6271
SH4_fcmp_eq
,
// Floating-point compare eqaul
6272
SH4_fcmp_gt
,
// Floating-point compare greater than
6273
SH4_fcnvds
,
// Floating-point convert double to single precision
6274
SH4_fcnvsd
,
// Floating-point convert single to double precision
6275
SH4_fdiv
,
// Floating-point divide
6276
SH4_fipr
,
// Floating-point inner product
6277
SH4_fldi0
,
// Floating-point Load Immediate 0.0
6278
SH4_fldi1
,
// Floating-point Load Immediate 1.0
6279
SH4_flds
,
// Floating-point Load to system register
6280
SH4_float
,
// Floating-point convert from integer
6281
SH4_fmac
,
// Floating-point multiply and accumulate
6282
SH4_fmov
,
// Floating-point move
6283
SH4_fmov_s
,
// Floating-point move single precision
6284
SH4_fmovex
,
// Floating-point move extension
6285
SH4_fmul
,
// Floating-point multiply
6286
SH4_fneg
,
// Floating-Point sign inversion
6287
SH4_frchg
,
// FR-bit change
6288
SH4_fschg
,
// SZ-bit change
6289
SH4_fsqrt
,
// Floating-point square root
6290
SH4_fsts
,
// Floating-point store system register
6291
SH4_fsub
,
// Floating-point subtract
6292
SH4_ftrc
,
// Floating-point truncate and convert to integer
6293
SH4_ftrv
,
// Floating-point transform vector
6294
SH4_ftstn
,
// Floating point square root reciprocal approximate
6295
SH4_movca_l
,
// Move with cache block allocation
6296
SH4_ocbi
,
// Operand Cache Block Invalidate
6297
SH4_ocbp
,
// Operand Cache Block Purge
6298
SH4_ocbwb
,
// Operand Cache Block Write Back
6299
SH4_fsca
,
// Floating point sine and cosine approximate
6300
// SH-2a new instructions
6301
SH2a_band_b
,
// Bit And Byte Data
6302
SH2a_bandnot_b
,
// Bit And Not Byte Data
6303
SH2a_bclr
,
// Bit Clear
6304
SH2a_bclr_b
,
// Bit Clear Byte Data
6305
SH2a_bld
,
// Bit Load
6306
SH2a_bld_b
,
// Bit Load Byte Data
6307
SH2a_bldnot_b
,
// Bit Load Not Byte Data
6308
SH2a_bor_b
,
// Bit Or Byte Data
6309
SH2a_bornot_b
,
// Bit Or Not Byte Data
6310
SH2a_bset
,
// Bit Set
6311
SH2a_bset_b
,
// Bit Set Byte Data
6312
SH2a_bst
,
// Bit Store
6313
SH2a_bst_b
,
// Bit Store Byte Data
6314
SH2a_bxor_b
,
// Bit Exclusive Or Byte Data
6315
SH2a_clips_b
,
// Clip as Signed Byte
6316
SH2a_clips_w
,
// Clip as Signed Word
6317
SH2a_clipu_b
,
// Clip as Unsigned Byte
6318
SH2a_clipu_w
,
// Clip as Unsigned Word
6319
SH2a_divs
,
// Divide as Signed
6320
SH2a_divu
,
// Divide as Unsigned
6321
SH2a_jsr_n
,
// Jump to Subroutine with No delay slot
6322
SH2a_ldbank
,
// Load Register Bank
6323
SH2a_movi20
,
// 20-bit immediate data transfer
6324
SH2a_movi20s
,
// 20-bit immediate data transfer, 8-bit left-shift
6325
SH2a_movml_l
,
// Move Multi-register Lower part
6326
SH2a_movmu_l
,
// Move Multi-register Upper part
6327
SH2a_movrt
,
// Move Reverse T bit
6328
SH2a_movu_b
,
// Move Structure Byte Data as Unsigned
6329
SH2a_movu_w
,
// Move Structure Word Data as Unsigned
6330
SH2a_mulr
,
// Multiply to Register
6331
SH2a_nott
,
// Not T bit
6332
SH2a_resbank
,
// Restore From Register Bank
6333
SH2a_rts_n
,
// Return from Subroutine with No delay slot
6334
SH2a_rtv_n
,
// Return to Value and from Subroutine with No delay slot
6335
SH2a_stbank
,
// Store Register Bank
6336
// SH-4a new instructions
6337
SH4a_movco_l
,
// Move Conditional
6338
SH4a_movli_l
,
// Move Linked
6339
SH4a_movua_l
,
// Move Unaligned
6340
SH4a_icbi
,
// Instruction Cache Block Invalidate
6341
SH4a_prefi
,
// Prefetch Instruction Cache Block
6342
SH4a_synco
,
// Synchronize Data Operation
6343
SH4a_fsrra
,
// Floating Point Square Reciprocal Approximate
6344
SH4a_fpchg
,
// PR-bit Change
6345
SH4_last
,
6346
};
6347
/*
6348
* Interactive disassembler (IDA).
6349
* Zilog Z8 module
6350
*
6351
*/
6352
enum
6353
{
6354
Z8_null
= 0,
// Unknown Operation
6355
Z8_adc
,
// Add with carry
6356
Z8_add
,
// Add
6357
Z8_and
,
// Logical AND
6358
Z8_call
,
// Call procedure
6359
Z8_ccf
,
// Complement carry flag
6360
Z8_clr
,
// Clear
6361
Z8_com
,
// Complement
6362
Z8_cp
,
// Compare
6363
Z8_da
,
// Decimal adjust
6364
Z8_dec
,
// Decrement
6365
Z8_decw
,
// Decrement word
6366
Z8_di
,
// Disable interrupts
6367
Z8_djnz
,
// Decrement and jump if non-zero
6368
Z8_ei
,
// Enable interrupts
6369
Z8_halt
,
// Enter HALT mode
6370
Z8_inc
,
// Increment
6371
Z8_incw
,
// Increment word
6372
Z8_iret
,
// Return from interrupt
6373
Z8_jp
,
// Unconditional jump
6374
Z8_jpcond
,
// Conditional jump
6375
Z8_jr
,
// Relative jump
6376
Z8_jrcond
,
// Conditional relative jump
6377
Z8_ld
,
// Load data
6378
Z8_ldc
,
// Load constant
6379
Z8_ldci
,
// Load constant with auto-increment
6380
Z8_lde
,
// Load external data
6381
Z8_ldei
,
// Load external data with auto-increment
6382
Z8_nop
,
// NOP
6383
Z8_or
,
// Logical OR
6384
Z8_pop
,
// Pop
6385
Z8_push
,
// Push
6386
Z8_rcf
,
// Reset carry flag
6387
Z8_ret
,
// Return
6388
Z8_rl
,
// Rotate left
6389
Z8_rlc
,
// Rotate left through carry
6390
Z8_rr
,
// Rotate right
6391
Z8_rrc
,
// Rotate right through carry
6392
Z8_sbc
,
// Subtract with carry
6393
Z8_scf
,
// Set carry flag
6394
Z8_sra
,
// Shift right arithmetic
6395
Z8_srp
,
// Set register pointer
6396
Z8_stop
,
// Enter STOP mode
6397
Z8_sub
,
// Subtract
6398
Z8_swap
,
// Swap nibbles
6399
Z8_tm
,
// Test under mask
6400
Z8_tcm
,
// Test complement under mask
6401
Z8_xor
,
// Logical EXCLUSIVE OR
6402
Z8_wdh
,
// Enable WATCH-DOG in HALT mode
6403
Z8_wdt
,
// Clear WATCH-DOG timer
6404
Z8_last
6405
};
6406
/*
6407
* Interactive disassembler (IDA).
6408
* Copyright (c) 1990-2026 Hex-Rays
6409
* ALL RIGHTS RESERVED.
6410
*
6411
* Atmel AVR - 8-bit RISC processor
6412
*
6413
*/
6414
enum
6415
{
6416
AVR_null
= 0,
// Unknown Operation
6417
// ARITHMETIC AND LOGIC INSTRUCTIONS
6418
AVR_add
,
// Add without Carry
6419
AVR_adc
,
// Add with Carry
6420
AVR_adiw
,
// Add Immediate to Word
6421
AVR_sub
,
// Subtract without Carry
6422
AVR_subi
,
// Subtract Immediate
6423
AVR_sbc
,
// Subtract with Carry
6424
AVR_sbci
,
// Subtract Immediate with Carry
6425
AVR_sbiw
,
// Subtract Immediate from Word
6426
AVR_and
,
// Logical AND
6427
AVR_andi
,
// Logical AND with Immediate
6428
AVR_or
,
// Logical OR
6429
AVR_ori
,
// Logical OR with Immediate
6430
AVR_eor
,
// Exclusive OR
6431
AVR_com
,
// One's Complement
6432
AVR_neg
,
// Two's Complement
6433
AVR_sbr
,
// Set Bit(s) in Register
6434
AVR_cbr
,
// Clear Bit(s) in Register
6435
AVR_inc
,
// Increment
6436
AVR_dec
,
// Decrement
6437
AVR_tst
,
// Test for Zero or Minus
6438
AVR_clr
,
// Clear Register
6439
AVR_ser
,
// Set Register
6440
AVR_cp
,
// Compare
6441
AVR_cpc
,
// Compare with Carry
6442
AVR_cpi
,
// Compare with Immediate
6443
AVR_mul
,
// Multiply
6444
// BRANCH INSTRUCTIONS
6445
AVR_rjmp
,
// Relative Jump
6446
AVR_ijmp
,
// Indirect Jump to (Z)
6447
AVR_jmp
,
// Jump
6448
AVR_rcall
,
// Relative Call Subroutine
6449
AVR_icall
,
// Indirect Call to (Z)
6450
AVR_call
,
// Call Subroutine
6451
AVR_ret
,
// Subroutine Return
6452
AVR_reti
,
// Interrupt Return
6453
AVR_cpse
,
// Compare, Skip if Equal
6454
AVR_sbrc
,
// Skip if Bit in Register Cleared
6455
AVR_sbrs
,
// Skip if Bit in Register Set
6456
AVR_sbic
,
// Skip if Bit in I/O Register Cleared
6457
AVR_sbis
,
// Skip if Bit in I/O Register Set
6458
AVR_brbs
,
// Branch if Status Flag Set
6459
AVR_brbc
,
// Branch if Status Flag Cleared
6460
AVR_breq
,
// Branch if Equal
6461
AVR_brne
,
// Branch if Not Equal
6462
AVR_brcs
,
// Branch if Carry Set
6463
AVR_brcc
,
// Branch if Carry Cleared
6464
AVR_brsh
,
// Branch if Same or Higher
6465
AVR_brlo
,
// Branch if Lower
6466
AVR_brmi
,
// Branch if Minus
6467
AVR_brpl
,
// Branch if Plus
6468
AVR_brge
,
// Branch if Greater or Equal
6469
AVR_brlt
,
// Branch if Less Than
6470
AVR_brhs
,
// Branch if Half Carry Flag Set
6471
AVR_brhc
,
// Branch if Half Carry Flag Cleared
6472
AVR_brts
,
// Branch if T Flag Set
6473
AVR_brtc
,
// Branch if T Flag Cleared
6474
AVR_brvs
,
// Branch if Overflow Flag is Set
6475
AVR_brvc
,
// Branch if Overflow Flag is Cleared
6476
AVR_brie
,
// Branch if Interrupt Enabled
6477
AVR_brid
,
// Branch if Interrupt Disabled
6478
// DATA TRANSFER INSTRUCTIONS
6479
AVR_mov
,
// Copy Register
6480
AVR_ldi
,
// Load Immediate
6481
AVR_lds
,
// Load Direct
6482
AVR_ld
,
// Load Indirect
6483
AVR_ldd
,
// Load Indirect with Displacement
6484
AVR_sts
,
// Store Direct to SRAM
6485
AVR_st
,
// Store Indirect
6486
AVR_std
,
// Store Indirect with Displacement
6487
AVR_lpm
,
// Load Program Memory
6488
AVR_in
,
// In Port
6489
AVR_out
,
// Out Port
6490
AVR_push
,
// Push Register on Stack
6491
AVR_pop
,
// Pop Register from Stack
6492
// BIT AND BIT-TEST INSTRUCTIONS
6493
AVR_lsl
,
// Logical Shift Left
6494
AVR_lsr
,
// Logical Shift Right
6495
AVR_rol
,
// Rotate Left Through Carry
6496
AVR_ror
,
// Rotate Right Through Carry
6497
AVR_asr
,
// Arithmetic Shift Right
6498
AVR_swap
,
// Swap Nibbles
6499
AVR_bset
,
// Flag Set
6500
AVR_bclr
,
// Flag Clear
6501
AVR_sbi
,
// Set Bit in I/O Register
6502
AVR_cbi
,
// Clear Bit in I/O Register
6503
AVR_bst
,
// Bit Store from Register to T
6504
AVR_bld
,
// Bit load from T to Register
6505
AVR_sec
,
// Set Carry
6506
AVR_clc
,
// Clear Carry
6507
AVR_sen
,
// Set Negative Flag
6508
AVR_cln
,
// Clear Negative Flag
6509
AVR_sez
,
// Set Zero Flag
6510
AVR_clz
,
// Clear Zero Flag
6511
AVR_sei
,
// Global Interrupt Enable
6512
AVR_cli
,
// Global Interrupt Disable
6513
AVR_ses
,
// Set Signed Test Flag
6514
AVR_cls
,
// Clear Signed Test Flag
6515
AVR_sev
,
// Set Two's Complement Overflow
6516
AVR_clv
,
// Clear Two's Complement Overflow
6517
AVR_set
,
// Set T in SREG
6518
AVR_clt
,
// Clear T in SREG
6519
AVR_seh
,
// Set Half Carry Flag in SREG
6520
AVR_clh
,
// Clear Half Carry Flag in SREG
6521
AVR_nop
,
// No Operation
6522
AVR_sleep
,
// Sleep
6523
AVR_wdr
,
// Watchdog Reset
6524
// New MegaAVR instructions
6525
AVR_elpm
,
// Extended Load Program Memory
6526
AVR_espm
,
// Extended Store Program Memory
6527
AVR_fmul
,
// Fractional Multiply Unsigned
6528
AVR_fmuls
,
// Fractional Multiply Signed
6529
AVR_fmulsu
,
// Fractional Multiply Signed with Unsigned
6530
AVR_movw
,
// Copy Register Word
6531
AVR_muls
,
// Multiply Signed
6532
AVR_mulsu
,
// Multiply Signed with Unsigned
6533
AVR_spm
,
// Store Program Memory
6534
AVR_eicall
,
// Extended Indirect Call to Subroutine
6535
AVR_eijmp
,
// Extended Indirect Jump
6536
// New XMega instructions
6537
AVR_des
,
// Data Encryption Standard
6538
AVR_lac
,
// Load And Clear
6539
AVR_las
,
// Load And Set
6540
AVR_lat
,
// Load And Toggle
6541
AVR_xch
,
// Exchange
6542
AVR_last
,
6543
};
6544
/*
6545
* Interactive disassembler (IDA).
6546
* Copyright (c) 1990-2026 Hex-Rays
6547
* ALL RIGHTS RESERVED.
6548
*
6549
*/
6550
enum
6551
{
6552
MIPS_null
= 0,
// Unknown Operation
6553
// The core processor instructions
6554
MIPS_add
,
// Add
6555
MIPS_addu
,
// Add Unsigned
6556
MIPS_and
,
// AND
6557
MIPS_dadd
,
// Doubleword Add
6558
MIPS_daddu
,
// Doubleword Add Unsigned
6559
MIPS_dsub
,
// Doubleword Subtract
6560
MIPS_dsubu
,
// Doubleword Subtract Unsigned
6561
MIPS_nor
,
// NOR
6562
MIPS_or
,
// OR
6563
MIPS_slt
,
// Set on Less Than
6564
MIPS_sltu
,
// Set on Less Than Unsigned
6565
MIPS_sub
,
// Subtract
6566
MIPS_subu
,
// Subtract Unsigned
6567
MIPS_xor
,
// Exclusive OR
6568
MIPS_dsll
,
// Doubleword Shift Left Logical
6569
MIPS_dsll32
,
// Doubleword Shift Left Logical + 32
6570
MIPS_dsra
,
// Doubleword Shift Right Arithmetic
6571
MIPS_dsra32
,
// Doubleword Shift Right Arithmetic + 32
6572
MIPS_dsrl
,
// Doubleword Shift Right Logical
6573
MIPS_dsrl32
,
// Doubleword Shift Right Logical + 32
6574
MIPS_sll
,
// Shift Left Logical
6575
MIPS_sra
,
// Shift Right Arithmetic
6576
MIPS_srl
,
// Shift Right Logical
6577
MIPS_dsllv
,
// Doubleword Shift Left Logical Variable
6578
MIPS_dsrav
,
// Doubleword Shift Right Arithmetic Variable
6579
MIPS_dsrlv
,
// Doubleword Shift Right Logical Variable
6580
MIPS_sllv
,
// Shift Left Logical Variable
6581
MIPS_srav
,
// Shift Right Arithmetic Variable
6582
MIPS_srlv
,
// Shift Right Logical Variable
6583
MIPS_addi
,
// Add Immediate
6584
MIPS_addiu
,
// Add Immediate Unsigned
6585
MIPS_daddi
,
// Doubleword Add Immediate
6586
MIPS_daddiu
,
// Doubleword Add Immediate Unsigned
6587
MIPS_slti
,
// Set on Less Than Immediate
6588
MIPS_sltiu
,
// Set on Less Than Immediate Unsigned
6589
MIPS_andi
,
// AND Immediate
6590
MIPS_ori
,
// OR Immediate
6591
MIPS_xori
,
// Exclusive OR Immediate
6592
MIPS_teq
,
// Trap if Equal
6593
MIPS_tge
,
// Trap if Greater Than or Equal
6594
MIPS_tgeu
,
// Trap if Greater Than or Equal Unsigned
6595
MIPS_tlt
,
// Trap if Less Than
6596
MIPS_tltu
,
// Trap if Less Than Unsigned
6597
MIPS_tne
,
// Trap if Not Equal
6598
MIPS_cfc1
,
// Move Control From FPU
6599
MIPS_cfc2
,
// Move Control From Coprocessor 2
6600
MIPS_ctc1
,
// Move Control to FPU
6601
MIPS_ctc2
,
// Move Control to Coprocessor 2
6602
MIPS_dmfc0
,
// Doubleword Move From CP0
6603
MIPS_qmfc2
,
// Quadword Move From CP2
6604
MIPS_dmtc0
,
// Doubleword Move To CP0
6605
MIPS_qmtc2
,
// Quadword Move To CP2
6606
MIPS_mfc0
,
// Move from CP0
6607
MIPS_mfc1
,
// Move from FPU
6608
MIPS_mfc2
,
// Move from CP2
6609
MIPS_mtc0
,
// Move to CP0
6610
MIPS_mtc1
,
// Move to FPU
6611
MIPS_mtc2
,
// Move to CP2
6612
MIPS_teqi
,
// Trap if Equal Immediate
6613
MIPS_tgei
,
// Trap if Greater Than or Equal Immediate
6614
MIPS_tgeiu
,
// Trap if Greater Than or Equal Immediate Unsigned
6615
MIPS_tlti
,
// Trap if Less Than Immediate
6616
MIPS_tltiu
,
// Trap if Less Than Immediate Unsigned
6617
MIPS_tnei
,
// Trap if Not Equal Immediate
6618
MIPS_ddiv
,
// Doubleword Divide
6619
MIPS_ddivu
,
// Doubleword Divide Unsigned
6620
MIPS_div
,
// Divide
6621
MIPS_divu
,
// Divide Unsigned
6622
MIPS_dmult
,
// Doubleword Multiply
6623
MIPS_dmultu
,
// Doubleword Multiply Unsigned
6624
MIPS_mult
,
// Multiply
6625
MIPS_multu
,
// Multiply Unsigned
6626
MIPS_mthi
,
// Move To HI
6627
MIPS_mtlo
,
// Move To LO
6628
MIPS_mfhi
,
// Move From HI
6629
MIPS_mflo
,
// Move From LO
6630
MIPS_cop0
,
// Coprocessor 0 Operation
6631
MIPS_cop1
,
// FPU Operation
6632
MIPS_cop2
,
// Coprocessor 2 Operation
6633
MIPS_break
,
// Break
6634
MIPS_syscall
,
// System Call
6635
MIPS_bc0f
,
// Branch on Coprocessor 0 False
6636
MIPS_bc1f
,
// Branch on FPU False
6637
MIPS_bc2f
,
// Branch on Coprocessor 2 False
6638
MIPS_bc3f
,
// Branch on Coprocessor 3 False
6639
MIPS_bc0fl
,
// Branch on Coprocessor 0 False Likely
6640
MIPS_bc1fl
,
// Branch on FPU False Likely
6641
MIPS_bc2fl
,
// Branch on Coprocessor 2 False Likely
6642
MIPS_bc3fl
,
// Branch on Coprocessor 3 False Likely
6643
MIPS_bc0t
,
// Branch on Coprocessor 0 True
6644
MIPS_bc1t
,
// Branch on FPU True
6645
MIPS_bc2t
,
// Branch on Coprocessor 2 True
6646
MIPS_bc3t
,
// Branch on Coprocessor 3 True
6647
MIPS_bc0tl
,
// Branch on Coprocessor 0 True Likely
6648
MIPS_bc1tl
,
// Branch on FPU True Likely
6649
MIPS_bc2tl
,
// Branch on Coprocessor 2 True Likely
6650
MIPS_bc3tl
,
// Branch on Coprocessor 3 True Likely
6651
MIPS_bgez
,
// Branch on Greater Than or Equal to Zero
6652
MIPS_bgezal
,
// Branch on Greater Than or Equal to Zero And Link
6653
MIPS_bgezall
,
// Branch on Greater Than or Equal to Zero And Link Likely
6654
MIPS_bgezl
,
// Branch on Greater Than or Equal to Zero Likely
6655
MIPS_bgtz
,
// Branch on Greater Than Zero
6656
MIPS_bgtzl
,
// Branch on Greater Than Zero Likely
6657
MIPS_blez
,
// Branch on Less Than or Equal to Zero
6658
MIPS_blezl
,
// Branch on Less Than or Equal to Zero Likely
6659
MIPS_bltz
,
// Branch on Less Than Zero
6660
MIPS_bltzal
,
// Branch on Less Than Zero And Link
6661
MIPS_bltzall
,
// Branch on Less Than Zero And Link Likely
6662
MIPS_bltzl
,
// Branch on Less Than Zero Likely
6663
MIPS_beq
,
// Branch on Equal
6664
MIPS_beql
,
// Branch on Equal Likely
6665
MIPS_bne
,
// Branch on Not Equal
6666
MIPS_bnel
,
// Branch on Not Equal Likely
6667
MIPS_jalr
,
// Jump And Link Register
6668
MIPS_j
,
// Jump
6669
MIPS_jr
,
// Jump Register
6670
MIPS_jal
,
// Jump And Link
6671
MIPS_jalx
,
// Jump And Link And Exchange
6672
MIPS_cache
,
// Cache Operation
6673
MIPS_lb
,
// Load Byte
6674
MIPS_lbu
,
// Load Byte Unsigned
6675
MIPS_ldl
,
// Load Doubleword Left
6676
MIPS_ldr
,
// Load Doubleword Right
6677
MIPS_lwl
,
// Load Word Left
6678
MIPS_lwr
,
// Load Word Right
6679
MIPS_ld
,
// Load Doubleword
6680
MIPS_lld
,
// Load Linked Doubleword
6681
MIPS_ldc1
,
// Load Double FPU
6682
MIPS_ldc2
,
// Load Double Coprocessor 2
6683
MIPS_ll
,
// Load Linked
6684
MIPS_lw
,
// Load Word
6685
MIPS_lwu
,
// Load Word Unsigned
6686
MIPS_lh
,
// Load Halfword
6687
MIPS_lhu
,
// Load Halfword Unsigned
6688
MIPS_lui
,
// Load Upper Immediate
6689
MIPS_lwc1
,
// Load Word to FPU
6690
MIPS_lwc2
,
// Load Word to Coprocessor 2
6691
MIPS_sb
,
// Store Byte
6692
MIPS_sdl
,
// Store Doubleword Left
6693
MIPS_sdr
,
// Store Doubleword Right
6694
MIPS_swl
,
// Store Word Left
6695
MIPS_swr
,
// Store Word Right
6696
MIPS_scd
,
// Store Conditional Doubleword
6697
MIPS_sd
,
// Store Doubleword
6698
MIPS_sdc1
,
// Store Double FPU
6699
MIPS_sdc2
,
// Store Double Coprocessor 2
6700
MIPS_sc
,
// Store Conditional
6701
MIPS_sw
,
// Store Word
6702
MIPS_sh
,
// Store Halfword
6703
MIPS_swc1
,
// Store Word from FPU
6704
MIPS_swc2
,
// Store Word from Coprocessor 2
6705
MIPS_sync
,
// Sync
6706
// Coprocessor 0 instructions
6707
MIPS_eret
,
// Exception Return
6708
MIPS_tlbp
,
// Probe TLB for Matching Entry
6709
MIPS_tlbr
,
// Read Indexed TLB Entry
6710
MIPS_tlbwi
,
// Write Indexed TLB Entry
6711
MIPS_tlbwr
,
// Write Random TLB Entry
6712
// Coprocessor 1 (FPU) instructions
6713
MIPS_fadd
,
// Floating-point Add
6714
MIPS_fsub
,
// Floating-point Subtract
6715
MIPS_fmul
,
// Floating-point Multiply
6716
MIPS_fdiv
,
// Floating-point Divide
6717
MIPS_fabs
,
// Floating-point Absolute Value
6718
MIPS_fcvt_s
,
// Floating-point Convert to Single Fixed-Point Format
6719
MIPS_fcvt_d
,
// Floating-point Convert to Double Floating-Point Format
6720
MIPS_fcvt_w
,
// Floating-point Convert to Fixed-Point Format
6721
MIPS_fcvt_l
,
// Floating-point Convert to Long Fixed-Point Format
6722
MIPS_fround_l
,
// Floating-point Round to Long Fixed-Point Format
6723
MIPS_ftrunc_l
,
// Floating-point Truncate to Long Fixed-Point Format
6724
MIPS_fceil_l
,
// Floating-point Ceiling to Long Fixed-Point Format
6725
MIPS_ffloor_l
,
// Floating-point Floor to Long Fixed-Point Format
6726
MIPS_fround_w
,
// Floating-point Round to Single Fixed-Point Format
6727
MIPS_ftrunc_w
,
// Floating-point Truncate to Single Fixed-Point Format
6728
MIPS_fceil_w
,
// Floating-point Ceiling to Single Fixed-Point Format
6729
MIPS_ffloor_w
,
// Floating-point Floor to Single Fixed-Point Format
6730
MIPS_fmov
,
// Floating-point Move
6731
MIPS_fneg
,
// Floating-point Negate
6732
MIPS_fsqrt
,
// Floating-point Square Root
6733
MIPS_fc_f
,
// Floating-point Compare
6734
MIPS_fc_un
,
// Floating-point Compare
6735
MIPS_fc_eq
,
// Floating-point Compare
6736
MIPS_fc_ueq
,
// Floating-point Compare
6737
MIPS_fc_olt
,
// Floating-point Compare
6738
MIPS_fc_ult
,
// Floating-point Compare
6739
MIPS_fc_ole
,
// Floating-point Compare
6740
MIPS_fc_ule
,
// Floating-point Compare
6741
MIPS_fc_sf
,
// Floating-point Compare
6742
MIPS_fc_ngle
,
// Floating-point Compare
6743
MIPS_fc_seq
,
// Floating-point Compare
6744
MIPS_fc_ngl
,
// Floating-point Compare
6745
MIPS_fc_lt
,
// Floating-point Compare
6746
MIPS_fc_nge
,
// Floating-point Compare
6747
MIPS_fc_le
,
// Floating-point Compare
6748
MIPS_fc_ngt
,
// Floating-point Compare
6749
// Pseudo instructions
6750
MIPS_nop
,
// No operation
6751
MIPS_mov
,
// Move register
6752
MIPS_neg
,
// Negate
6753
MIPS_negu
,
// Negate Unsigned
6754
MIPS_bnez
,
// Branch on Not Zero
6755
MIPS_bnezl
,
// Branch on Not Zero Likely
6756
MIPS_beqz
,
// Branch on Zero
6757
MIPS_beqzl
,
// Branch on Zero Likely
6758
MIPS_b
,
// Branch Always
6759
MIPS_bal
,
// Branch Always and Link
6760
MIPS_li
,
// Load Immediate
6761
MIPS_la
,
// Load Address
6762
// MIPS IV instructions
6763
MIPS_pref
,
// Prefetch
6764
MIPS_ldxc1
,
// Load Doubleword Indexed to Floating Point
6765
MIPS_lwxc1
,
// Load Word Indexed to Floating Point
6766
MIPS_sdxc1
,
// Store Doubleword Indexed from Floating Point
6767
MIPS_swxc1
,
// Store Word Indexed from Floating Point
6768
MIPS_madd_s
,
// Floating-Point Multiply Add
6769
MIPS_madd_d
,
// Floating-Point Multiply Add
6770
MIPS_msub_s
,
// Floating-Point Multiply Subtract
6771
MIPS_msub_d
,
// Floating-Point Multiply Subtract
6772
MIPS_movf
,
// Move Conditional on FP False
6773
MIPS_movt
,
// Move Conditional on FP True
6774
MIPS_movn
,
// Move Conditional on Not Zero
6775
MIPS_movz
,
// Move Conditional on Zero
6776
MIPS_fmovf
,
// Floating-Point Move Conditional on FP False
6777
MIPS_fmovt
,
// Floating-Point Move Conditional on FP True
6778
MIPS_fmovn
,
// Floating-Point Move Conditional on Not Zero
6779
MIPS_fmovz
,
// Floating-Point Move Conditional on Zero
6780
MIPS_nmadd_s
,
// Floating-Pont Negative Multiply Add
6781
MIPS_nmadd_d
,
// Floating-Pont Negative Multiply Add
6782
MIPS_nmsub_s
,
// Floating-Pont Negative Multiply Subtract
6783
MIPS_nmsub_d
,
// Floating-Pont Negative Multiply Subtract
6784
MIPS_prefx
,
// Prefetch Indexed
6785
MIPS_frecip
,
// Reciprocal Approximation
6786
MIPS_frsqrt
,
// Reciprocal Suare Root Approximation
6787
// RSP instructions
6788
MIPS_lbv
,
// Load Byte into Vector
6789
MIPS_lsv
,
// Load Short into Vector
6790
MIPS_llv
,
// Load Word into Vector
6791
MIPS_ldv
,
// Load Doubleword into Vector
6792
MIPS_lqv
,
// Load Quadword into Vector
6793
MIPS_lrv
,
// Load Rest Vector
6794
MIPS_lpv
,
// Load Packed Vector
6795
MIPS_luv
,
// Load Unpack Vector
6796
MIPS_lhv
,
// Load Half Vector
6797
MIPS_lfv
,
// Load Fourth Vector
6798
MIPS_lwv
,
// Load Wrap Vector
6799
MIPS_ltv
,
// Load Transpose Vector
6800
MIPS_sbv
,
// Store Byte from Vector
6801
MIPS_ssv
,
// Store Short from Vector
6802
MIPS_slv
,
// Store Word from Vector
6803
MIPS_sdv
,
// Store Doubleword from Vector
6804
MIPS_sqv
,
// Store Quadword from Vector
6805
MIPS_srv
,
// Store Rest Vector
6806
MIPS_spv
,
// Store Packed Vector
6807
MIPS_suv
,
// Store Unpack Vector
6808
MIPS_shv
,
// Store Half Vector
6809
MIPS_sfv
,
// Store Fourth Vector
6810
MIPS_swv
,
// Store Wrap Vector
6811
MIPS_stv
,
// Store Transpose Vector
6812
MIPS_vmulf
,
// Vector (Frac) Multiply
6813
MIPS_vmacf
,
// Vector (Frac) Multiply Accumulate
6814
MIPS_vmulu
,
// Vector (Unsigned Frac) Multiply
6815
MIPS_vmacu
,
// Vector (Unsigned Frac) Multiply Accumulate
6816
MIPS_vrndp
,
// Vector DCT Round (+)
6817
MIPS_vrndn
,
// Vector DCT Round (-)
6818
MIPS_vmulq
,
// Vector (Integer) Multiply
6819
MIPS_vmacq
,
// Vector (Integer) Multiply Accumulate
6820
MIPS_vmudh
,
// Vector (High) Multiply
6821
MIPS_vmadh
,
// Vector (High) Multiply Accumulate
6822
MIPS_vmudm
,
// Vector (Mid-M) Multiply
6823
MIPS_vmadm
,
// Vector (Mid-M) Multiply Accumulate
6824
MIPS_vmudn
,
// Vector (Mid-N) Multiply
6825
MIPS_vmadn
,
// Vector (Mid-N) Multiply Accumulate
6826
MIPS_vmudl
,
// Vector (Low) Multiply
6827
MIPS_vmadl
,
// Vector (Low) Multiply Accumulate
6828
MIPS_vadd
,
// Vector Add
6829
MIPS_vsub
,
// Vector Subtract
6830
MIPS_vsut
,
// Vector SUT (vt - vs)
6831
MIPS_vabs
,
// Vector Absolute Value
6832
MIPS_vaddc
,
// Vector ADDC
6833
MIPS_vsubc
,
// Vector SUBC
6834
MIPS_vaddb
,
// Vector Add Byte
6835
MIPS_vsubb
,
// Vector Subtract Byte
6836
MIPS_vaccb
,
// Vector Add Byte/Add Accumulator
6837
MIPS_vsucb
,
// Vector Subtract Byte/Add Accumulator
6838
MIPS_vsad
,
// Vector SAD
6839
MIPS_vsac
,
// Vector SAC
6840
MIPS_vsum
,
// Vector SUM
6841
MIPS_vsaw
,
// Vector SAW
6842
MIPS_vlt
,
// Vector Less Than
6843
MIPS_veq
,
// Vector Equal To
6844
MIPS_vne
,
// Vector Not Equal To
6845
MIPS_vge
,
// Vector Greater Than or Equal To
6846
MIPS_vcl
,
// Vector Clip Low
6847
MIPS_vch
,
// Vector Clip High
6848
MIPS_vcr
,
// Vector 1's Complement Clip
6849
MIPS_vmrg
,
// Vector Merge
6850
MIPS_vand
,
// Vector Logical AND
6851
MIPS_vnand
,
// Vector Logical NAND
6852
MIPS_vor
,
// Vector Logical OR
6853
MIPS_vnor
,
// Vector Logical NOR
6854
MIPS_vxor
,
// Vector Logical Exclusive OR
6855
MIPS_vnxor
,
// Vector Logical NOT Exclusive OR
6856
MIPS_vnoop
,
// Vector No-Operation
6857
MIPS_vmov
,
// Vector Scalar-Element Move
6858
MIPS_vrcp
,
// Single Precision, Lookup Source, Write Result
6859
MIPS_vrsq
,
// Single Precision, Lookup Source, Write Result
6860
MIPS_vrcph
,
// Set Source, Write Previous Result
6861
MIPS_vrsqh
,
// Set Source, Write Previous Result
6862
MIPS_vrcpl
,
// Lookup Source and Previous, Write Result
6863
MIPS_vrsql
,
// Lookup Source and Previous, Write Result
6864
MIPS_vinst
,
// Vector Insert Triple (5/5/5/1)
6865
MIPS_vextt
,
// Vector Extract Triple (5/5/5/1)
6866
MIPS_vinsq
,
// Vector Insert Quad (4/4/4/4)
6867
MIPS_vextq
,
// Vector Extract Quad (4/4/4/4)
6868
MIPS_vinsn
,
// Vector Insert Nibble (4/4/4/4) Sign-Extended
6869
MIPS_vextn
,
// Vector Insert Nibble (4/4/4/4) Sign-Extended
6870
MIPS_cfc0
,
// Move Control From Coprocessor 0
6871
MIPS_ctc0
,
// Move Control to Coprocessor 0
6872
// R5900 (PSX2 or PlayStation2) processor additional commands
6873
MIPS_mtsa
,
// Move To Shift Amount Register
6874
MIPS_R5900_first
=
MIPS_mtsa
,
6875
MIPS_mfsa
,
// Move From Shift Amount Register
6876
MIPS_mtsab
,
// Move Byte Count To Shift Amount Register
6877
MIPS_mtsah
,
// Move Halfword Count To Shift Amount Register
6878
MIPS_fadda
,
// Floating-point add to accumulator
6879
MIPS_fsuba
,
// Floating-point subtract to accumulator
6880
MIPS_fmula
,
// Floating-point multiply to accumulator
6881
MIPS_fmadda
,
// Floating-point multiply and add to accumulator
6882
MIPS_fmsuba
,
// Floating-point multiply and subtract from accumulator
6883
MIPS_fmadd
,
// Floating-point multiply and add
6884
MIPS_fmsub
,
// Floating-point multiply and subtract
6885
MIPS_fmax
,
// Floating-point maximum
6886
MIPS_fmin
,
// Floating-point minimum
6887
MIPS_plzcw
,
// Parallel Leading Zero or One Count Word
6888
MIPS_mthi1
,
// Move To HI1 Register
6889
MIPS_mtlo1
,
// Move To LO1 Register
6890
MIPS_pmthl_lw
,
// Parallel Move From HI/LO Register
6891
MIPS_pmthi
,
// Parallel Move To HI Register
6892
MIPS_pmtlo
,
// Parallel Move To LO Register
6893
MIPS_div1
,
// Divide Pipeline 1
6894
MIPS_divu1
,
// Divide Unsigned Pipeline 1
6895
MIPS_pdivw
,
// Parallel Divide Word
6896
MIPS_pdivuw
,
// Parallel Divide Unsigned Word
6897
MIPS_pdivbw
,
// Parallel Divide Broadcast Word
6898
MIPS_paddw
,
// Parallel Add Word
6899
MIPS_pmaddw
,
// Parallel Multiply-Add Word
6900
MIPS_mult1
,
// Multiply Pipeline 1
6901
MIPS_multu1
,
// Multiply Unsigned Pipeline 1
6902
MIPS_madd1
,
// Multiply-Add Pipeline 1
6903
MIPS_maddu1
,
// Multiply-Add Unsigned Pipeline 1
6904
MIPS_pmadduw
,
// Parallel Multiply-Add Unsigned Word
6905
MIPS_psubw
,
// Parallel Subtract HalfWord
6906
MIPS_pcgtw
,
// Parallel Compare for Greater Than Word
6907
MIPS_psllvw
,
// Parallel Shift Left Logical Variable Word
6908
MIPS_pceqw
,
// Parallel Compare for Equal Word
6909
MIPS_pmaxw
,
// Parallel Maximize Word
6910
MIPS_psrlvw
,
// Parallel Shift Right Logical Variable Word
6911
MIPS_pminw
,
// Parallel Minimize Word
6912
MIPS_psravw
,
// Parallel Shift Right Arithmetic Variable Word
6913
MIPS_paddh
,
// Parallel Add Halfword
6914
MIPS_pmsubw
,
// Parallel Multiply-Subtract Word
6915
MIPS_padsbh
,
// Parallel Add/Subtract Halfword
6916
MIPS_psubh
,
// Parallel Subtract Halfword
6917
MIPS_pcgth
,
// Parallel Compare for Greater Than Halfword
6918
MIPS_pceqh
,
// Parallel Compare for Equal Halfword
6919
MIPS_pmaxh
,
// Parallel Maximize Halfword
6920
MIPS_pminh
,
// Parallel Minimize Halfword
6921
MIPS_paddb
,
// Parallel Add Byte
6922
MIPS_psubb
,
// Parallel Subtract Byte
6923
MIPS_pcgtb
,
// Parallel Compare for Greater Than Byte
6924
MIPS_pinth
,
// Parallel Interleave Halfword
6925
MIPS_pceqb
,
// Parallel Compare for Equal Byte
6926
MIPS_pintoh
,
// Parallel Interleave Odd Halfword
6927
MIPS_pmultw
,
// Parallel Multiply Word
6928
MIPS_pmultuw
,
// Parallel Multiply Unsigned Word
6929
MIPS_pcpyld
,
// Parallel Copy Lower Doubleword
6930
MIPS_pcpyud
,
// Parallel Copy Upper Doubleword
6931
MIPS_paddsw
,
// Parallel Add with Signed Saturation Word
6932
MIPS_pmaddh
,
// Parallel Multiply-Add Halfword
6933
MIPS_padduw
,
// Parallel Add with Unsigned Saturation Word
6934
MIPS_psubsw
,
// Parallel Subtract with Signed Saturation Word
6935
MIPS_phmadh
,
// Parallel Horizontal Multiply-Add Halfword
6936
MIPS_psubuw
,
// Parallel Subtract with Unsigned Saturation Word
6937
MIPS_pextlw
,
// Parallel Extend Lower from Word
6938
MIPS_pand
,
// Parallel AND
6939
MIPS_pextuw
,
// Parallel Extend Upper from Word
6940
MIPS_por
,
// Parallel OR
6941
MIPS_ppacw
,
// Paralle Pack to Word
6942
MIPS_pxor
,
// Parallel XOR
6943
MIPS_pnor
,
// Parallel NOR
6944
MIPS_paddsh
,
// Parallel Add with Signed Saturation Halfword
6945
MIPS_pmsubh
,
// Parallel Multiply-Subtract Halfword
6946
MIPS_padduh
,
// Parallel Add with Unsigned Saturation Halfword
6947
MIPS_psubsh
,
// Parallel Subtract with Signed Saturation Halfword
6948
MIPS_phmsbh
,
// Parallel Horizontal Multiply-Subtract Halfword
6949
MIPS_psubuh
,
// Parallel Subtract with Unsigned Saturation Halfword
6950
MIPS_pextlh
,
// Parallel Extend Lower from Halfword
6951
MIPS_pextuh
,
// Parallel Extend Upper from Halfword
6952
MIPS_ppach
,
// Paralle Pack to Halfword
6953
MIPS_paddsb
,
// Parallel Add with Signed Saturation Byte
6954
MIPS_paddub
,
// Parallel Add with Unsigned Saturation Byte
6955
MIPS_psubsb
,
// Parallel Subtract with Signed Saturation Byte
6956
MIPS_psubub
,
// Parallel Subtract with Unsigned Saturation Byte
6957
MIPS_pextlb
,
// Parallel Extend Lower from Byte
6958
MIPS_pextub
,
// Parallel Extend Upper from Byte
6959
MIPS_ppacb
,
// Paralle Pack to Byte
6960
MIPS_qfsrv
,
// Quadword Funnel Shift Right Variable
6961
MIPS_pmulth
,
// Parallel Multiply Halfword
6962
MIPS_pabsw
,
// Parallel Absolute Word
6963
MIPS_pabsh
,
// Parallel Absolute Halfword
6964
MIPS_pexoh
,
// Parallel Exchange Odd Halfword
6965
MIPS_pexch
,
// Parallel Exchange Center Halfword
6966
MIPS_prevh
,
// Parallel Reverse Halfword
6967
MIPS_pcpyh
,
// Parallel Copy Halfword
6968
MIPS_pext5
,
// Parallel Extend Upper from 5 bits
6969
MIPS_pexow
,
// Parallel Exchange Odd Word
6970
MIPS_pexcw
,
// Parallel Exchange Center Word
6971
MIPS_ppac5
,
// Parallel Pack to 5 bits
6972
MIPS_prot3w
,
// Parallel Rotate 3 Words
6973
MIPS_psllh
,
// Parallel Shift Left Logical Halfword
6974
MIPS_psrlh
,
// Parallel Shift Right Logical Halfword
6975
MIPS_psrah
,
// Parallel Shift Right Arithmetic Halfword
6976
MIPS_psllw
,
// Parallel Shift Left Logical Word
6977
MIPS_psrlw
,
// Parallel Shift Right Logical Word
6978
MIPS_psraw
,
// Parallel Shift Right Arithmetic Word
6979
MIPS_mfhi1
,
// Move From HI1 Register
6980
MIPS_mflo1
,
// Move From LO1 Register
6981
MIPS_pmfhi
,
// Parallel Move From HI Register
6982
MIPS_pmflo
,
// Parallel Move From LO Register
6983
MIPS_pmfhl
,
// Parallel Move From HI/LO Register
6984
MIPS_lq
,
// Load Quadword
6985
MIPS_sq
,
// Store Quadword
6986
MIPS_lqc2
,
// Load Quadword Coprocessor 2
6987
MIPS_sqc2
,
// Store Quadword Coprocessor 2
6988
MIPS_madd_r5900
,
// Multiply/Add
6989
MIPS_maddu_r5900
,
// Multiply/Add Unsigned
6990
MIPS_R5900_last
=
MIPS_maddu_r5900
,
6991
MIPS_mult3
,
// Multiply (3-operand)
6992
MIPS_multu3
,
// Multiply Unsigned (3-operand)
6993
// 16-bit instructions
6994
// NOTE: in previous version of IDA, all mips16 instructions
6995
// had separate numbers, even for the instructions with the
6996
// same mnemonics. Now same mnemonics have the same numbers,
6997
// regardless of the encoding.
6998
MIPS_bteqz
=439,
// Branch on T Equal to Zero
6999
MIPS_btnez
,
// Branch on T Not Equal to Zero
7000
MIPS_cmp
,
// Compare
7001
MIPS_cmpi
,
// Compare Immediate
7002
MIPS_extend
=458,
// Extend
7003
MIPS_move
=473,
// Move
7004
MIPS_not
=477,
// Not
7005
MIPS_dla
=495,
// Load 64-bit address
7006
// Instructions which belong to MIPS32 but which were not decoded by IDA
7007
MIPS_clo
=498,
// Count Leading Ones in Word
7008
MIPS_clz
,
// Count Leading Zeros in Word
7009
MIPS_madd
,
// Multiply/Add
7010
MIPS_maddu
,
// Multiply/Add Unsigned
7011
MIPS_msub
,
// Multiply and Subtract Word to Hi,Lo
7012
MIPS_msubu
,
// Multiply and Subtract Word to Hi,Lo
7013
MIPS_mul
,
// Multiply Word to GPR
7014
MIPS_sdbbp
,
// Software Debug Breakpoint
7015
MIPS_wait
,
// Enter Standby Mode
7016
// New instructions for MIPS32 Release 2.0
7017
MIPS_alnv_ps
,
// Floating Point Align Variable
7018
MIPS_deret
,
// Debug Exception Return
7019
MIPS_di
,
// Disable interrupts
7020
MIPS_ehb
,
// Execution Hazard Barrier
7021
MIPS_ei
,
// Enable interrupts
7022
MIPS_ext
,
// Extract Bit Field
7023
MIPS_fcvt_ps
,
// Floating Point Convert Pair to Paired Single
7024
MIPS_fcvt_s_pl
,
// Floating Point Convert Pair Lower to Single Floating Point
7025
MIPS_fcvt_s_pu
,
// Floating Point Convert Pair Upper to Single Floating Point
7026
MIPS_ins
,
// Insert Bit Field
7027
MIPS_jalr_hb
,
// Jump and Link Register with Hazard Barrier
7028
MIPS_jr_hb
,
// Jump Register with Hazard Barrier
7029
MIPS_luxc1
,
// Load Doubleword Indexed Unaligned to Floating Point
7030
MIPS_madd_ps
,
// Floating Point Multiply Add
7031
MIPS_mfhc1
,
// Move Word from High Half of Floating Point Register
7032
MIPS_mfhc2
,
// Move Word from High Half of Coprocessor 2 Register
7033
MIPS_msub_ps
,
// Floating Point Multiply Subtract
7034
MIPS_mthc1
,
// Move Word to High Half of Floating Point Register
7035
MIPS_mthc2
,
// Move Word to High Half of Coprocessor 2 Register
7036
MIPS_nmadd_ps
,
// Floating Point Negative Multiply Add
7037
MIPS_nmsub_ps
,
// Floating Point Negative Multiply Subtract
7038
MIPS_pll
,
// Pair Lower Lower
7039
MIPS_plu
,
// Pair Lower Upper
7040
MIPS_pul
,
// Pair Upper Lower
7041
MIPS_puu
,
// Pair Upper Upper
7042
MIPS_rdhwr
,
// Read Hardware Register
7043
MIPS_rdpgpr
,
// Read GPR from Previous Shadow Set
7044
MIPS_rotr
,
// Rotate Word Right
7045
MIPS_rotrv
,
// Rotate Word Right Variable
7046
MIPS_seb
,
// Sign-Extend Byte
7047
MIPS_seh
,
// Sign-Extend Halfword
7048
MIPS_suxc1
,
// Store Doubleword Indexed Unaligned from Floating Point
7049
MIPS_synci
,
// Synchronize Caches to Make Instruction Writes Effective
7050
MIPS_wrpgpr
,
// Write GPR to Previous Shadow Set
7051
MIPS_wsbh
,
// Word Swap Bytes Within Halfwords
7052
// Missing instructions - for some reason they were not supported before
7053
MIPS_dmfc1
,
// Doubleword Move From CP1
7054
MIPS_dmtc1
,
// Doubleword Move To CP1
7055
// additional MIPS16e instructions
7056
MIPS_save
,
// Save Registers and Set Up Stack Frame
7057
MIPS_restore
,
// Restore Registers and Deallocate Stack Frame
7058
MIPS_jalrc
,
// Jump and Link Register, Compact
7059
MIPS_jrc
,
// Jump Register, Compact
7060
MIPS_sew
,
// Sign-Extend Word
7061
MIPS_zeb
,
// Zero-Extend Byte
7062
MIPS_zeh
,
// Zero-Extend Halfword
7063
MIPS_zew
,
// Zero-Extend Word
7064
// extra pseudoinstructions
7065
MIPS_ssnop
,
// Superscalar No operation
7066
MIPS_li_s
,
// Load floating-point immediate
7067
MIPS_li_d
,
// Load floating-point immediate
7068
MIPS_dneg
,
// Negate
7069
MIPS_dnegu
,
// Negate Unsigned
7070
MIPS_pause
,
// Wait for the LLBit to clear
7071
// Missing instructions from MIPS64 Release 2
7072
MIPS_dclo
,
// Count Leading Ones in Doubleword
7073
MIPS_dclz
,
// Count Leading Zeros in Doubleword
7074
MIPS_dext
,
// Doubleword Extract Bit Field
7075
MIPS_dextm
,
// Doubleword Extract Bit Field Middle
7076
MIPS_dextu
,
// Doubleword Extract Bit Field Upper
7077
MIPS_dins
,
// Doubleword Insert Bit Field
7078
MIPS_dinsm
,
// Doubleword Insert Bit Field Middle
7079
MIPS_dinsu
,
// Doubleword Insert Bit Field Upper
7080
MIPS_dmfc2
,
// Doubleword Move From CP2
7081
MIPS_dmtc2
,
// Doubleword Move To CP2
7082
MIPS_drotr
,
// Doubleword Rotate Right
7083
MIPS_drotr32
,
// Doubleword Rotate Right Plus 32
7084
MIPS_drotrv
,
// Doubleword Rotate Right Variable
7085
MIPS_dsbh
,
// Doubleword Swap Bytes Within Halfwords
7086
MIPS_dshd
,
// Doubleword Swap Halfwords Within Doublewords
7087
// cnMIPS (Cavium Networks Octeon) instructions
7088
MIPS_baddu
,
// Unsigned Byte Add
7089
MIPS_bbit0
,
// Branch on Bit Clear
7090
MIPS_bbit032
,
// Branch on Bit Clear Plus 32
7091
MIPS_bbit1
,
// Branch on Bit Set
7092
MIPS_bbit132
,
// Branch on Bit Set Plus 32
7093
MIPS_cins
,
// Clear and Insert a Bit Field
7094
MIPS_cins32
,
// Clear and Insert a Bit Field Plus 32
7095
MIPS_dmul
,
// Multiply Doubleword to GPR
7096
MIPS_dpop
,
// Count Ones in a Doubleword
7097
MIPS_exts
,
// Extract a Signed Bit Field
7098
MIPS_exts32
,
// Extract a Signed Bit Field Plus 32
7099
MIPS_mtm0
,
// Load Multiplier Register MPL0
7100
MIPS_mtm1
,
// Load Multiplier Register MPL1
7101
MIPS_mtm2
,
// Load Multiplier Register MPL2
7102
MIPS_mtp0
,
// Load Multiplier Register P0
7103
MIPS_mtp1
,
// Load Multiplier Register P1
7104
MIPS_mtp2
,
// Load Multiplier Register P2
7105
MIPS_pop
,
// Count Ones in a Word
7106
MIPS_saa
,
// Store Atomic Add Word
7107
MIPS_saad
,
// Store Atomic Add Double Word
7108
MIPS_seq
,
// Set on Equal
7109
MIPS_seqi
,
// Set on Equal Immediate
7110
MIPS_sne
,
// Set on Not Equal
7111
MIPS_snei
,
// Set on Not Equal Immediate
7112
MIPS_synciobdma
,
// Synchronize IOBDMAs
7113
MIPS_syncs
,
// Synchronize Special
7114
MIPS_syncw
,
// Synchronize Stores
7115
MIPS_syncws
,
// Synchronize Stores Special
7116
MIPS_uld
,
// Unaligned Load Doubleword
7117
MIPS_ulw
,
// Unaligned Load Word
7118
MIPS_usd
,
// Unaligned Store Doubleword
7119
MIPS_usw
,
// Unaligned Store Word
7120
MIPS_v3mulu
,
// 192-bit x 64-bit Unsigned Multiply and Add
7121
MIPS_vmm0
,
// 64-bit Unsigned Multiply and Add Move
7122
MIPS_vmulu_cn
,
// 64-bit Unsigned Multiply and Add
7123
// NEC VR5432 and PSP instructions
7124
MIPS_dbreak
,
// Debug Break
7125
MIPS_dret
,
// Debug Return
7126
MIPS_mfdr
,
// Move from Debug Register
7127
MIPS_mtdr
,
// Move to Debug Register
7128
// Allegrex (Sony PSP) instructions
7129
PSP_bitrev
,
// Bit reverse
7130
PSP_max
,
// Maximum
7131
PSP_min
,
// Minimum
7132
PSP_mfic
,
// Move from interrupt controller
7133
PSP_mtic
,
// Move to interrupt controller
7134
PSP_wsbw
,
// Word Swap Bytes Within Word
7135
PSP_sleep
,
// Sleep
7136
// Allegrex VFPU instructions
7137
PSP_lv
,
// Load Vector
7138
PSP_lvl
,
// Load Vector Left
7139
PSP_lvr
,
// Load Vector Right
7140
PSP_sv
,
// Store Vector
7141
PSP_svl
,
// Store Vector Left
7142
PSP_svr
,
// Store Vector Right
7143
PSP_mfv
,
// Move from VFPU
7144
PSP_mtv
,
// Move to VFPU
7145
PSP_mfvc
,
// Move Control from VFPU
7146
PSP_mtvc
,
// Move Control to VFPU
7147
PSP_bvf
,
// Branch on VFPU False
7148
PSP_bvt
,
// Branch on VFPU True
7149
PSP_bvfl
,
// Branch on VFPU False Likely
7150
PSP_bvtl
,
// Branch on VFPU True Likely
7151
PSP_vnop
,
// VFPU no-op
7152
PSP_vflush
,
// VFPU flush
7153
PSP_vsync
,
// VFPU sync
7154
PSP_vabs
,
// Vector absolute value
7155
PSP_vadd
,
// Vector add
7156
PSP_vasin
,
// Vector arcsine
7157
PSP_vavg
,
// Vector average
7158
PSP_vbfy1
,
// IDCT butterfly 1
7159
PSP_vbfy2
,
// IDCT butterfly 2
7160
PSP_vc2i
,
// Vector convert signed char to integer
7161
PSP_vcmovf
,
// Vector move if condition field is true
7162
PSP_vcmovt
,
// Vector move if condition field is false
7163
PSP_vcmp
,
// Vector compare and set condition fields
7164
PSP_vcos
,
// Vector cosine
7165
PSP_vcrs
,
// Vector cross multiplication: vd = [y1*z2, z1*x2, x1*y2]
7166
PSP_vcrsp
,
// Vector cross product
7167
PSP_vcst
,
// Set constant
7168
PSP_vdet
,
// Determinant
7169
PSP_vdiv
,
// Vector divide
7170
PSP_vdot
,
// Vector dot product
7171
PSP_vexp2
,
// Vector exponent of 2 (2^x)
7172
PSP_vf2h
,
// Vector convert float single to half precision
7173
PSP_vf2id
,
// Vector convert float to integer, round down
7174
PSP_vf2in
,
// Vector convert float to integer, round to nearest
7175
PSP_vf2iu
,
// Vector convert float to integer, round up
7176
PSP_vf2iz
,
// Vector convert float to integer, round toward zero
7177
PSP_vfad
,
// Vector funnel add (sum components)
7178
PSP_vfim
,
// Set floating-point immediate
7179
PSP_vh2f
,
// Vector convert float half to single precision
7180
PSP_vhdp
,
// Vector homogenous dot product
7181
PSP_vhtfm2
,
// Homogenous transform vector by matrix
7182
PSP_vhtfm3
,
// Homogenous transform vector by matrix
7183
PSP_vhtfm4
,
// Homogenous transform vector by matrix
7184
PSP_vi2c
,
// Vector convert integer to signed char
7185
PSP_vi2f
,
// Vector convert integer to float
7186
PSP_vi2s
,
// Vector convert integer to signed short
7187
PSP_vi2uc
,
// Vector convert integer to unsigned char
7188
PSP_vi2us
,
// Vector convert integer to unsigned short
7189
PSP_vidt
,
// Set vector to identity
7190
PSP_viim
,
// Set integer immediate
7191
PSP_vlgb
,
// Vector log binary (extract exponent)
7192
PSP_vlog2
,
// Vector logarithm base 2
7193
PSP_vmax
,
// Vector maximum values
7194
PSP_vmfvc
,
// Vector move from control register
7195
PSP_vmidt
,
// Set matrix to identity
7196
PSP_vmin
,
// Vector minimum values
7197
PSP_vmmov
,
// Move matrix
7198
PSP_vmmul
,
// Matrix multiply
7199
PSP_vmone
,
// Set matrix to ones
7200
PSP_vmov
,
// Move vector
7201
PSP_vmscl
,
// Scale matrix by
7202
PSP_vmtvc
,
// Vector move to control register
7203
PSP_vmul
,
// Vector multiply
7204
PSP_vmzero
,
// Set matrix to zeroes
7205
PSP_vneg
,
// Vector negate
7206
PSP_vnrcp
,
// Vector negative reciprocal (-1/x)
7207
PSP_vnsin
,
// Vector negative sine
7208
PSP_vocp
,
// Vector one complement (1-x)
7209
PSP_vone
,
// Set vector to ones
7210
PSP_vpfxd
,
// Set prefix operation for vd
7211
PSP_vpfxs
,
// Set prefix operation for vs
7212
PSP_vpfxt
,
// Set prefix operation for vt
7213
PSP_vqmul
,
// Quaternion multiply
7214
PSP_vrcp
,
// Vector reciprocal (1/x)
7215
PSP_vrexp2
,
// Vector reciprocal exponent of 2 (1/(2^x))
7216
PSP_vrndf1
,
// Vector generate pseudorandom float (1.0 ~ 2.0)
7217
PSP_vrndf2
,
// Vector generate pseudorandom float (2.0 ~ 4.0)
7218
PSP_vrndi
,
// Vector generate pseudorandom integer
7219
PSP_vrnds
,
// Vector set pseudorandom seed
7220
PSP_vrot
,
// Rotate vector
7221
PSP_vrsq
,
// Vector reciprocal square root (1/sqrt(x))
7222
PSP_vs2i
,
// Vector convert signed short to integer
7223
PSP_vsat0
,
// Vector saturate to range 0..1
7224
PSP_vsat1
,
// Vector saturate to range -1..1
7225
PSP_vsbn
,
// Vector scale by 2^x, round to nearest
7226
PSP_vsbz
,
// Vector scale by 2^x, round towards zero
7227
PSP_vscl
,
// Vector scale by
7228
PSP_vscmp
,
// Vector set signed compare
7229
PSP_vsge
,
// Vector set results for greater than or equal
7230
PSP_vsgn
,
// Vector get sign
7231
PSP_vsin
,
// Vector sine
7232
PSP_vslt
,
// Vector set results for less
7233
PSP_vsocp
,
// Vector split and one complement
7234
PSP_vsqrt
,
// Vector square root
7235
PSP_vsrt1
,
// Vector sort 1: vd = min(x,y), max(x,y), min(z,w), max(z,w)
7236
PSP_vsrt2
,
// Vector sort 2: vd = min(x,w), max(y,z), min(y,z), max(x,w)
7237
PSP_vsrt3
,
// Vector sort 3: vd = max(x,y), min(x,y), max(z,w), min(z,w)
7238
PSP_vsrt4
,
// Vector sort 4: vd = max(x,w), max(y,z), min(y,z), max(x,w)
7239
PSP_vsub
,
// Vector subtract
7240
PSP_vt4444
,
// Transform color RGBA8888 to RGBA4444
7241
PSP_vt5551
,
// Transform color RGBA8888 to RGBA5551
7242
PSP_vt5650
,
// Transform color RGB888 to RGB565
7243
PSP_vtfm2
,
// Transform vector by matrix
7244
PSP_vtfm3
,
// Transform vector by matrix
7245
PSP_vtfm4
,
// Transform vector by matrix
7246
PSP_vuc2i
,
// Vector convert unsigned char to integer
7247
PSP_vus2i
,
// Vector convert unsigned short to integer
7248
PSP_vwbn
,
// Wrap BigNum
7249
PSP_vzero
,
// VFPU set vector to zeroes
7250
// PSP Media Engine instructions
7251
PSP_mfvme
,
// move from VME
7252
PSP_mtvme
,
// move to VME
7253
// Toshiba TX19a instructions
7254
MIPS_ac0iu
,
// Add Coprocessor 0 Immediate Unsigned
7255
MIPS_bs1f
,
// Bit Search One Forward
7256
MIPS_bfins
,
// Bit field insert
7257
MIPS_addmiu
,
// Add Immediate to Memory Word
7258
MIPS_sadd
,
// Saturated Add
7259
MIPS_ssub
,
// Saturated Subtract
7260
MIPS_btst
,
// Bit Test
7261
MIPS_bclr
,
// Bit Clear
7262
MIPS_bset
,
// Bit Set
7263
MIPS_bins
,
// Bit Insert
7264
MIPS_bext
,
// Bit Extract
7265
MIPS_dive
,
// Divide, with Overflow Exception
7266
MIPS_diveu
,
// Divide unsigned, with Overflow Exception
7267
MIPS_min
,
// Minimum signed
7268
MIPS_max
,
// Maximum signed
7269
MIPS_madd3
,
// Multiply/Add (3-operand)
7270
MIPS_maddu3
,
// Multiply/Add Unsigned (3-operand)
7271
MIPS_msub3
,
// Multiply and Subtract Word to Hi,Lo (3-operand)
7272
MIPS_msubu3
,
// Multiply and Subtract Word to Hi,Lo (3-operand)
7273
// MIPS-MT
7274
MIPS_dvpe
,
// Disable Virtual Processor Execution
7275
MIPS_evpe
,
// Enable Virtual Processor Execution
7276
MIPS_dmt
,
// Disable Multi-Threaded Execution
7277
MIPS_emt
,
// Enable Multi-Threaded Execution
7278
MIPS_fork
,
// Allocate and Schedule a New Thread
7279
MIPS_yield
,
// Conditionally Deschedule or Deallocate the Current Thread
7280
MIPS_mftr
,
// Move From Thread Context
7281
MIPS_mftc0
,
// Move From Thread Context (CP0 register, low-order half)
7282
MIPS_mfthc0
,
// Move From Thread Context (CP0 register, high-order half)
7283
MIPS_mftlo
,
// Move From Thread Context (LO register)
7284
MIPS_mfthi
,
// Move From Thread Context (HI register)
7285
MIPS_mftacx
,
// Move From Thread Context (ACX register)
7286
MIPS_mftdsp
,
// Move From Thread Context (DSPControl register)
7287
MIPS_mfthc1
,
// Move From Thread Context (CP1 register, high-order half)
7288
MIPS_mftc1
,
// Move From Thread Context (CP1 register, low-order half)
7289
MIPS_cftc1
,
// Move From Thread Context (CP1 control register)
7290
MIPS_mfthc2
,
// Move From Thread Context (CP2 register, high-order half)
7291
MIPS_mftc2
,
// Move From Thread Context (CP2 register, low-order half)
7292
MIPS_cftc2
,
// Move From Thread Context (CP2 control register)
7293
MIPS_mftgpr
,
// Move From Thread Context (general-purpose register)
7294
MIPS_mttr
,
// Move To Thread Context
7295
MIPS_mttc0
,
// Move To Thread Context (CP0 register, low-order half)
7296
MIPS_mtthc0
,
// Move To Thread Context (CP0 register, high-order half)
7297
MIPS_mttlo
,
// Move To Thread Context (LO register)
7298
MIPS_mtthi
,
// Move To Thread Context (HI register)
7299
MIPS_mttacx
,
// Move To Thread Context (ACX register)
7300
MIPS_mttdsp
,
// Move To Thread Context (DSPControl register)
7301
MIPS_mtthc1
,
// Move To Thread Context (CP1 register, high-order half)
7302
MIPS_mttc1
,
// Move To Thread Context (CP1 register, low-order half)
7303
MIPS_cttc1
,
// Move To Thread Context (CP1 control register)
7304
MIPS_mtthc2
,
// Move To Thread Context (CP2 register, high-order half)
7305
MIPS_mttc2
,
// Move To Thread Context (CP2 register, low-order half)
7306
MIPS_cttc2
,
// Move To Thread Context (CP2 control register)
7307
MIPS_mttgpr
,
// Move To Thread Context (general-purpose register)
7308
// MIPS-3D
7309
MIPS_faddr
,
// Floating-point Reduction Addition
7310
MIPS_bc1any2f
,
// Branch on Any of Two Floating Point Condition Codes False
7311
MIPS_bc1any2t
,
// Branch on Any of Two Floating Point Condition Codes True
7312
MIPS_bc1any4f
,
// Branch on Any of Four Floating Point Condition Codes False
7313
MIPS_bc1any4t
,
// Branch on Any of Four Floating Point Condition Codes True
7314
MIPS_fcabs_f
,
// Floating-point Absolute Compare
7315
MIPS_fcabs_un
,
// Floating-point Absolute Compare
7316
MIPS_fcabs_eq
,
// Floating-point Absolute Compare
7317
MIPS_fcabs_ueq
,
// Floating-point Absolute Compare
7318
MIPS_fcabs_olt
,
// Floating-point Absolute Compare
7319
MIPS_fcabs_ult
,
// Floating-point Absolute Compare
7320
MIPS_fcabs_ole
,
// Floating-point Absolute Compare
7321
MIPS_fcabs_ule
,
// Floating-point Absolute Compare
7322
MIPS_fcabs_sf
,
// Floating-point Absolute Compare
7323
MIPS_fcabs_ngle
,
// Floating-point Absolute Compare
7324
MIPS_fcabs_seq
,
// Floating-point Absolute Compare
7325
MIPS_fcabs_ngl
,
// Floating-point Absolute Compare
7326
MIPS_fcabs_lt
,
// Floating-point Absolute Compare
7327
MIPS_fcabs_nge
,
// Floating-point Absolute Compare
7328
MIPS_fcabs_le
,
// Floating-point Absolute Compare
7329
MIPS_fcabs_ngt
,
// Floating-point Absolute Compare
7330
MIPS_fcvt_pw_ps
,
// Floating-point Convert Paired Single to Paired Word
7331
MIPS_fcvt_ps_pw
,
// Floating-point Convert Paired Word to Paired Single
7332
MIPS_fmulr
,
// Floating-point Reduction Multiply
7333
MIPS_frecip1
,
// Floating-point Reduced Precision Reciprocal (Step 1)
7334
MIPS_frecip2
,
// Floating-point Reduced Precision Reciprocal (Step 2)
7335
MIPS_frsqrt1
,
// Floating-point Reduced Precision Reciprocal Square Root (Step 1)
7336
MIPS_frsqrt2
,
// Floating-point Reduced Precision Reciprocal Square Root (Step 2)
7337
// smartMIPS
7338
MIPS_lwxs
,
// Load Word Indexed, Scaled
7339
MIPS_maddp
,
// Multiply and Add Polynomial Basis Word to Hi,Lo
7340
MIPS_mflhxu
,
// Move from Extended Carry, Hi and Lo (Unsigned)
7341
MIPS_mtlhx
,
// Move to Lo, Hi, and Extended Carry
7342
MIPS_multp
,
// Multiply Binary Polynomial Basis Word
7343
MIPS_pperm
,
// Partial Permutation of Word Data into ACX-Hi-Lo Accumulator
7344
// microMIPS
7345
MIPS_jals
,
// Jump and Link, Short Delay Slot
7346
MIPS_lwp
,
// Load Word Pair
7347
MIPS_ldp
,
// Load Doubleword Pair
7348
MIPS_lwm
,
// Load Word Multiple
7349
MIPS_ldm
,
// Load Doubleword Multiple
7350
MIPS_swp
,
// Store Word Pair
7351
MIPS_sdp
,
// Store Doubleword Pair
7352
MIPS_swm
,
// Store Word Multiple
7353
MIPS_sdm
,
// Store Doubleword Multiple
7354
MIPS_bnezc
,
// Branch on Not Equal to Zero, Compact
7355
MIPS_bltzals
,
// Branch on Less Than Zero and Link, Short Delay-Slot
7356
MIPS_beqzc
,
// Branch on Equal to Zero, Compact
7357
MIPS_bgezals
,
// Branch on Greater Than or Equal to Zero and Link, Short Delay-Slot
7358
MIPS_jraddiusp
,
// Jump Register, Adjust Stack Pointer
7359
MIPS_jalrs
,
// Jump and Link Register, Short Delay Slot
7360
MIPS_jalrs_hb
,
// Jump and Link Register with Hazard Barrier, Short Delay-Slot
7361
MIPS_movep
,
// Move a Pair of Registers
7362
// had been missed; 64-bit MIPS pseudoinstruction
7363
MIPS_dli
,
// Doubleword Load Immediate
7364
// DSP ASE instructions
7365
MIPS_insv
,
// Insert Bit Field Variable
7366
MIPS_dinsv
,
// Doubleword Insert Variable Bit Field
7367
MIPS_bposge32
,
// Branch on Greater Than or Equal To Value 32 in DSPControl Pos Field
7368
MIPS_bposge64
,
// Branch on Greater Than or Equal To Value 64 in DSPControl Pos Field
7369
MIPS_addu_qb
,
// Unsigned Add Quad Byte Vectors
7370
MIPS_addu_ph
,
// Unsigned Add Integer Halfwords
7371
MIPS_addsc
,
// Add Signed Word and Set Carry Bit
7372
MIPS_subu_qb
,
// Subtract Unsigned Quad Byte Vector
7373
MIPS_subu_ph
,
// Subtract Unsigned Integer Halfwords
7374
MIPS_addwc
,
// Add Word with Carry Bit
7375
MIPS_addq_ph
,
// Add Fractional Halfword Vectors
7376
MIPS_modsub
,
// Modular Subtraction on an Index Value
7377
MIPS_subq_ph
,
// Subtract Fractional Halfword Vector
7378
MIPS_addu_s_qb
,
// Unsigned Add Quad Byte Vectors
7379
MIPS_addu_s_ph
,
// Unsigned Add Integer Halfwords
7380
MIPS_raddu_w_qb
,
// Unsigned Reduction Add Vector Quad Bytes
7381
MIPS_muleq_s_w_phl
,
// Multiply Vector Fractional Left Halfwords to Expanded Width Products
7382
MIPS_subu_s_qb
,
// Subtract Unsigned Quad Byte Vector
7383
MIPS_subu_s_ph
,
// Subtract Unsigned Integer Halfwords
7384
MIPS_muleq_s_w_phr
,
// Multiply Vector Fractional Right Halfwords to Expanded Width Products
7385
MIPS_muleu_s_ph_qbl
,
// Multiply Unsigned Vector Left Bytes by Halfwords to Halfword Products
7386
MIPS_addq_s_ph
,
// Add Fractional Halfword Vectors
7387
MIPS_addq_s_w
,
// Add Fractional Words
7388
MIPS_mulq_s_ph
,
// Multiply Vector Fractional Half-Words to Same Size Products
7389
MIPS_muleu_s_ph_qbr
,
// Multiply Unsigned Vector Right Bytes with halfwords to Half Word Products
7390
MIPS_subq_s_ph
,
// Subtract Fractional Halfword Vector
7391
MIPS_subq_s_w
,
// Subtract Fractional Word
7392
MIPS_mulq_rs_ph
,
// Multiply Vector Fractional Halfwords to Fractional Halfword Products
7393
MIPS_addu_ob
,
// Unsigned Add Octal Byte Vectors
7394
MIPS_subu_ob
,
// Subtract Unsigned Octal Byte Vector
7395
MIPS_addq_qh
,
// Add Fractional Halfword Vectors
7396
MIPS_addq_pw
,
// Add Fractional Word Vectors
7397
MIPS_subq_qh
,
// Subtract Fractional Halfword Vector
7398
MIPS_subq_pw
,
// Subtract Fractional Word Vector
7399
MIPS_addu_s_ob
,
// Unsigned Add Octal Byte Vectors
7400
MIPS_raddu_l_ob
,
// Unsigned Reduction Add Vector Octal Bytes
7401
MIPS_muleq_s_pw_qhl
,
// Multiply Vector Fractional Left Halfwords to Expanded Width Products
7402
MIPS_subu_s_ob
,
// Subtract Unsigned Octal Byte Vector
7403
MIPS_muleq_s_pw_qhr
,
// Multiply Vector Fractional Right Halfwords to Expanded Width Products
7404
MIPS_muleu_s_qh_obl
,
// Multiply Unsigned Vector Left Bytes by Halfwords to Halfword Products
7405
MIPS_addq_s_qh
,
// Add Fractional Halfword Vectors
7406
MIPS_addq_s_pw
,
// Add Fractional Word Vectors
7407
MIPS_muleu_s_qh_obr
,
// Multiply Unsigned Vector Right Bytes by Halfwords to Halfword Products
7408
MIPS_subq_s_qh
,
// Subtract Fractional Halfword Vector
7409
MIPS_subq_s_pw
,
// Subtract Fractional Word Vector
7410
MIPS_mulq_rs_qh
,
// Multiply Vector Fractional Halfwords to Fractional Halfword Products
7411
MIPS_cmpu_eq_qb
,
// Compare Vectors of Unsigned Byte Values
7412
MIPS_cmp_eq_ph
,
// Compare Vectors of Signed Integer Halfword Values
7413
MIPS_cmpgdu_eq_qb
,
// Compare Unsigned Vector of Four Bytes and Write Result to GPR and DSPControl
7414
MIPS_cmpu_lt_qb
,
// Compare Vectors of Unsigned Byte Values
7415
MIPS_cmp_lt_ph
,
// Compare Vectors of Signed Integer Halfword Values
7416
MIPS_cmpgdu_lt_qb
,
// Compare Unsigned Vector of Four Bytes and Write Result to GPR and DSPControl
7417
MIPS_cmpu_le_qb
,
// Compare Vectors of Unsigned Byte Values
7418
MIPS_cmp_le_ph
,
// Compare Vectors of Signed Integer Halfword Values
7419
MIPS_cmpgdu_le_qb
,
// Compare Unsigned Vector of Four Bytes and Write Result to GPR and DSPControl
7420
MIPS_pick_qb
,
// Pick a Vector of Byte Values Based on Condition Code Bits
7421
MIPS_pick_ph
,
// Pick a Vector of Halfword Values Based on Condition Code Bits
7422
MIPS_cmpgu_eq_qb
,
// Compare Vectors of Unsigned Byte Values and Write Results to a GPR
7423
MIPS_precrq_qb_ph
,
// Precision Reduce Four Fractional Halfwords to Four Bytes
7424
MIPS_precrq_ph_w
,
// Precision Reduce Fractional Words to Fractional Halfwords
7425
MIPS_cmpgu_lt_qb
,
// Compare Vectors of Unsigned Byte Values and Write Results to a GPR
7426
MIPS_precr_qb_ph
,
// Precision Reduce Four Integer Halfwords to Four Bytes
7427
MIPS_precrq_rs_ph_w
,
// Precision Reduce Fractional Words to Halfwords With Rounding and Saturation
7428
MIPS_cmpgu_le_qb
,
// Compare Vectors of Unsigned Byte Values and Write Results to a GPR
7429
MIPS_packrl_ph
,
// Pack a Vector of Halfwords from Vector Halfword Sources
7430
MIPS_precr_sra_ph_w
,
// Precision Reduce Two Integer Words to Halfwords after a Right Shift
7431
MIPS_precrqu_s_qb_ph
,
// Precision Reduce Fractional Halfwords to Unsigned Bytes With Saturation
7432
MIPS_precr_sra_r_ph_w
,
// Precision Reduce Two Integer Words to Halfwords after a Right Shift
7433
MIPS_cmpu_eq_ob
,
// Compare Vectors of Unsigned Byte Values
7434
MIPS_cmp_eq_qh
,
// Compare Vectors of Signed Integer Halfword Values
7435
MIPS_cmp_eq_pw
,
// Compare Vectors of Signed Integer Word Values
7436
MIPS_cmpu_lt_ob
,
// Compare Vectors of Unsigned Byte Values
7437
MIPS_cmp_lt_qh
,
// Compare Vectors of Signed Integer Halfword Values
7438
MIPS_cmp_lt_pw
,
// Compare Vectors of Signed Integer Word Values
7439
MIPS_cmpu_le_ob
,
// Compare Vectors of Unsigned Byte Values
7440
MIPS_cmp_le_qh
,
// Compare Vectors of Signed Integer Halfword Values
7441
MIPS_cmp_le_pw
,
// Compare Vectors of Signed Integer Word Values
7442
MIPS_pick_ob
,
// Pick a Vector of Byte Values Based on Condition Code Bits
7443
MIPS_pick_qh
,
// Pick a Vector of Halfword Values Based on Condition Code Bits
7444
MIPS_pick_pw
,
// Pick a Vector of Word Values Based on Condition Code Bits
7445
MIPS_cmpgu_eq_ob
,
// Compare Vectors of Unsigned Byte Values and Write Results to a GPR
7446
MIPS_precrq_ob_qh
,
// Precision Reduce Fractional Halfwords to Fractional Bytes
7447
MIPS_precrq_qh_pw
,
// Precision Reduce Fractional Words to Fractional Halfwords
7448
MIPS_precrq_pw_l
,
// Precision Reduce Fractional Doublewords to Fractional Words
7449
MIPS_cmpgu_lt_ob
,
// Compare Vectors of Unsigned Byte Values and Write Results to a GPR
7450
MIPS_precrq_rs_qh_pw
,
// Precision Reduce Fractional Words to Halfwords With Rounding and Saturation
7451
MIPS_cmpgu_le_ob
,
// Compare Vectors of Unsigned Byte Values and Write Results to a GPR
7452
MIPS_packrl_pw
,
// Pack a Vector of Words from Vector Word Sources
7453
MIPS_precrqu_s_ob_qh
,
// Precision Reduce Fractional Halfwords to Unsigned Bytes With Saturation
7454
MIPS_absq_s_qb
,
// Find Absolute Value of Four Fractional Byte Values
7455
MIPS_absq_s_ph
,
// Find Absolute Value of Two Fractional Halfwords
7456
MIPS_absq_s_w
,
// Find Absolute Value of Fractional Word
7457
MIPS_repl_qb
,
// Replicate Immediate Integer into all Vector Element Positions
7458
MIPS_repl_ph
,
// Replicate Immediate Integer into all Vector Element Positions
7459
MIPS_replv_qb
,
// Replicate Byte into all Vector Element Positions
7460
MIPS_replv_ph
,
// Replicate a Halfword into all Vector Element Positions
7461
MIPS_bitrev
,
// Bit-Reverse Halfword
7462
MIPS_precequ_ph_qbl
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7463
MIPS_preceq_w_phl
,
// Precision Expand Fractional Halfword to Fractional Word Value
7464
MIPS_preceu_ph_qbl
,
// Precision Expand Two Unsigned Bytes to Unsigned Halfword Values
7465
MIPS_precequ_ph_qbr
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7466
MIPS_preceq_w_phr
,
// Precision Expand Fractional Halfword to Fractional Word Value
7467
MIPS_preceu_ph_qbr
,
// Precision Expand two Unsigned Bytes to Unsigned Halfword Values
7468
MIPS_precequ_ph_qbla
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7469
MIPS_preceu_ph_qbla
,
// Precision Expand Two Unsigned Bytes to Unsigned Halfword Values
7470
MIPS_precequ_ph_qbra
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7471
MIPS_preceu_ph_qbra
,
// Precision Expand Two Unsigned Bytes to Unsigned Halfword Values
7472
MIPS_absq_s_qh
,
// Find Absolute Value of Four Fractional Halfwords
7473
MIPS_absq_s_pw
,
// Find Absolute Value of Two Fractional Words
7474
MIPS_repl_ob
,
// Replicate Immediate Integer into all Vector Element Positions
7475
MIPS_repl_qh
,
// Replicate Immediate Integer into all Vector Element Positions
7476
MIPS_repl_pw
,
// Replicate Immediate Integer into all Vector Element Positions
7477
MIPS_replv_ob
,
// Replicate Byte into all Vector Element Positions
7478
MIPS_replv_qh
,
// Replicate a Halfword into all Vector Element Positions
7479
MIPS_replv_pw
,
// Replicate Word into all Vector Element Positions
7480
MIPS_precequ_pw_qhl
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7481
MIPS_preceq_pw_qhl
,
// Precision Expand Two Fractional Halfwords to Fractional Word Values
7482
MIPS_preceq_s_l_pwl
,
// Precision Expand Fractional Word to Fractional Doubleword Value
7483
MIPS_preceu_qh_obl
,
// Precision Expand Four Unsigned Bytes to Unsigned Halfword Values
7484
MIPS_precequ_pw_qhr
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7485
MIPS_preceq_pw_qhr
,
// Precision Expand Two Fractional Halfwords to Fractional Word Values
7486
MIPS_preceq_s_l_pwr
,
// Precision Expand Fractional Word to Fractional Doubleword Value
7487
MIPS_preceu_qh_obr
,
// Precision Expand Four Unsigned Bytes to Unsigned Halfword Values
7488
MIPS_precequ_pw_qhla
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7489
MIPS_preceq_pw_qhla
,
// Precision Expand Two Fractional Halfwords to Fractional Word Values
7490
MIPS_preceu_qh_obla
,
// Precision Expand Four Unsigned Bytes to Unsigned Halfword Values
7491
MIPS_precequ_pw_qhra
,
// Precision Expand two Unsigned Bytes to Fractional Halfword Values
7492
MIPS_preceq_pw_qhra
,
// Precision Expand Two Fractional Halfwords to Fractional Word Values
7493
MIPS_preceu_qh_obra
,
// Precision Expand Four Unsigned Bytes to Unsigned Halfword Values
7494
MIPS_shll_qb
,
// Shift Left Logical Vector Quad Bytes
7495
MIPS_shll_ph
,
// Shift Left Logical Vector Pair Halfwords
7496
MIPS_shrl_qb
,
// Shift Right Logical Vector Quad Bytes
7497
MIPS_shra_ph
,
// Shift Right Arithmetic Vector Pair Halfwords
7498
MIPS_shrl_ph
,
// Shift Right Logical Two Halfwords
7499
MIPS_shllv_qb
,
// Shift Left Logical Variable Vector Quad Bytes
7500
MIPS_shllv_ph
,
// Shift Left Logical Variable Vector Pair Halfwords
7501
MIPS_shrlv_qb
,
// Shift Right Logical Variable Vector Quad Bytes
7502
MIPS_shrav_ph
,
// Shift Right Arithmetic Variable Vector Pair Halfwords
7503
MIPS_shrlv_ph
,
// Shift Variable Right Logical Pair of Halfwords
7504
MIPS_shra_qb
,
// Shift Right Arithmetic Vector of Four Bytes
7505
MIPS_shll_s_ph
,
// Shift Left Logical Vector Pair Halfwords
7506
MIPS_shll_s_w
,
// Shift Left Logical Word with Saturation
7507
MIPS_shra_r_qb
,
// Shift Right Arithmetic Vector of Four Bytes
7508
MIPS_shra_r_ph
,
// Shift Right Arithmetic Vector Pair Halfwords
7509
MIPS_shra_r_w
,
// Shift Right Arithmetic Word with Rounding
7510
MIPS_shrav_qb
,
// Shift Right Arithmetic Variable Vector of Four Bytes
7511
MIPS_shllv_s_ph
,
// Shift Left Logical Variable Vector Pair Halfwords
7512
MIPS_shllv_s_w
,
// Shift Left Logical Variable Vector Word
7513
MIPS_shrav_r_qb
,
// Shift Right Arithmetic Variable Vector of Four Bytes
7514
MIPS_shrav_r_ph
,
// Shift Right Arithmetic Variable Vector Pair Halfwords
7515
MIPS_shrav_r_w
,
// Shift Right Arithmetic Variable Word with Rounding
7516
MIPS_shll_ob
,
// Shift Left Logical Vector Octal Bytes
7517
MIPS_shll_qh
,
// Shift Left Logical Vector Quad Halfwords
7518
MIPS_shll_pw
,
// Shift Left Logical Vector Pair Words
7519
MIPS_shrl_ob
,
// Shift Right Logical Vector Octal Bytes
7520
MIPS_shra_qh
,
// Shift Right Arithmetic Vector Quad Halfwords
7521
MIPS_shra_pw
,
// Shift Right Arithmetic Vector Pair Words
7522
MIPS_shllv_ob
,
// Shift Left Logical Variable Vector Octal Bytes
7523
MIPS_shllv_qh
,
// Shift Left Logical Variable Vector Quad Halfwords
7524
MIPS_shllv_pw
,
// Shift Left Logical Variable Vector Pair Words
7525
MIPS_shrlv_ob
,
// Shift Right Logical Variable Vector Octal Bytes
7526
MIPS_shrav_qh
,
// Shift Right Arithmetic Variable Vector Quad Halfwords
7527
MIPS_shrav_pw
,
// Shift Right Arithmetic Variable Vector Pair Words
7528
MIPS_shll_s_qh
,
// Shift Left Logical Vector Quad Halfwords
7529
MIPS_shll_s_pw
,
// Shift Left Logical Vector Pair Words
7530
MIPS_shra_r_qh
,
// Shift Right Arithmetic Vector Quad Halfwords
7531
MIPS_shra_r_pw
,
// Shift Right Arithmetic Vector Pair Words
7532
MIPS_shllv_s_qh
,
// Shift Left Logical Variable Vector Quad Halfwords
7533
MIPS_shllv_s_pw
,
// Shift Left Logical Variable Vector Pair Words
7534
MIPS_shrav_r_qh
,
// Shift Right Arithmetic Variable Vector Quad Halfwords
7535
MIPS_shrav_r_pw
,
// Shift Right Arithmetic Variable Vector Pair Words
7536
MIPS_lwx
,
// Load Word Indexed
7537
MIPS_ldx
,
// Load Doubleword Indexed
7538
MIPS_lhx
,
// Load Halfword Indexed
7539
MIPS_lbux
,
// Load Unsigned Byte Indexed
7540
MIPS_dpa_w_ph
,
// Dot Product with Accumulate on Vector Integer Halfword Elements
7541
MIPS_dpax_w_ph
,
// Cross Dot Product with Accumulate on Vector Integer Halfword Elements
7542
MIPS_maq_sa_w_phl
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7543
MIPS_dpaqx_s_w_ph
,
// Cross Dot Product with Accumulation on Fractional Halfword Elements
7544
MIPS_dps_w_ph
,
// Dot Product with Subtract on Vector Integer Half-Word Elements
7545
MIPS_dpsx_w_ph
,
// Cross Dot Product with Subtract on Vector Integer Halfword Elements
7546
MIPS_dpsqx_s_w_ph
,
// Cross Dot Product with Subtraction on Fractional Halfword Elements
7547
MIPS_mulsa_w_ph
,
// Multiply and Subtract Vector Integer Halfword Elements and Accumulate
7548
MIPS_maq_sa_w_phr
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7549
MIPS_dpaqx_sa_w_ph
,
// Cross Dot Product with Accumulation on Fractional Halfword Elements
7550
MIPS_dpau_h_qbl
,
// Dot Product with Accumulate on Vector Unsigned Byte Elements
7551
MIPS_dpsu_h_qbl
,
// Dot Product with Subtraction on Vector Unsigned Byte Elements
7552
MIPS_dpsqx_sa_w_ph
,
// Cross Dot Product with Subtraction on Fractional Halfword Elements
7553
MIPS_dpaq_s_w_ph
,
// Dot Product with Accumulation on Fractional Halfword Elements
7554
MIPS_dpaq_sa_l_w
,
// Dot Product with Accumulate on Fractional Word Element
7555
MIPS_maq_s_w_phl
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7556
MIPS_dpsq_s_w_ph
,
// Dot Product with Subtraction on Fractional Halfword Elements
7557
MIPS_dpsq_sa_l_w
,
// Dot Product with Subtraction on Fractional Word Element
7558
MIPS_mulsaq_s_w_ph
,
// Multiply And Subtract Vector Fractional Halfwords And Accumulate
7559
MIPS_maq_s_w_phr
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7560
MIPS_dpau_h_qbr
,
// Dot Product with Accumulate on Vector Unsigned Byte Elements
7561
MIPS_dpsu_h_qbr
,
// Dot Product with Subtraction on Vector Unsigned Byte Elements
7562
MIPS_maq_sa_w_qhll
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7563
MIPS_maq_sa_w_qhlr
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7564
MIPS_dmadd
,
// Multiply Vector Words And Accumulate
7565
MIPS_dmsub
,
// Multiply Vector Words And Subtract From Accumulator
7566
MIPS_maq_sa_w_qhrl
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7567
MIPS_dpau_h_obl
,
// Dot Product with Accumulate on Vector Unsigned Byte Elements
7568
MIPS_dpsu_h_obl
,
// Dot Product with Subtract on Vector Unsigned Byte Elements
7569
MIPS_maq_sa_w_qhrr
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7570
MIPS_dpaq_s_w_qh
,
// Dot Product with Accumulation on Fractional Halfword Elements
7571
MIPS_dpaq_sa_l_pw
,
// Dot Product with Accumulate on Fractional Word Elements
7572
MIPS_maq_s_w_qhll
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7573
MIPS_maq_s_l_pwl
,
// Multiply with Accumulate Single Vector Fractional Word Element
7574
MIPS_dpsq_s_w_qh
,
// Dot Product with Subtraction on Fractional Halfword Elements
7575
MIPS_dpsq_sa_l_pw
,
// Dot Product with Subtraction on Fractional Word Elements
7576
MIPS_maq_s_w_qhlr
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7577
MIPS_dmaddu
,
// Multiply Vector Unsigned Words And Accumulate
7578
MIPS_mulsaq_s_w_qh
,
// Multiply And Subtract Vector Fractional Halfwords And Accumulate
7579
MIPS_mulsaq_s_l_pw
,
// Multiply And Subtract Vector Fractional Words And Accumulate
7580
MIPS_maq_s_w_qhrl
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7581
MIPS_maq_s_l_pwr
,
// Multiply with Accumulate Single Vector Fractional Word Element
7582
MIPS_dpau_h_obr
,
// Dot Product with Accumulate on Vector Unsigned Byte Elements
7583
MIPS_dpsu_h_obr
,
// Dot Product with Subtract on Vector Unsigned Byte Elements
7584
MIPS_maq_s_w_qhrr
,
// Multiply with Accumulate Single Vector Fractional Halfword Element
7585
MIPS_dmsubu
,
// Multiply Vector Unsigned Words And Subtract From Accumulator
7586
MIPS_extr_w
,
// Extract Word Value With Right Shift From Accumulator to GPR
7587
MIPS_extrv_w
,
// Extract Word Value With Variable Right Shift From Accumulator to GPR
7588
MIPS_extp
,
// Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR
7589
MIPS_extpdp
,
// Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos
7590
MIPS_rddsp
,
// Read DSPControl Register Fields to a GPR
7591
MIPS_shilo
,
// Shift an Accumulator Value Leaving the Result in the Same Accumulator
7592
MIPS_extpv
,
// Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR
7593
MIPS_extpdpv
,
// Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos
7594
MIPS_wrdsp
,
// Write Fields to DSPControl Register from a GPR
7595
MIPS_shilov
,
// Variable Shift of Accumulator Value Leaving the Result in the Same Accumulator
7596
MIPS_extr_r_w
,
// Extract Word Value With Right Shift And Rounding From Accumulator to GPR
7597
MIPS_extrv_r_w
,
// Extract Word Value With Variable Right Shift And Rounding From Accumulator to GPR
7598
MIPS_extr_rs_w
,
// Extract Word Value With Right Shift From Accumulator to GPR
7599
MIPS_extr_s_h
,
// Extract Halfword Value From Accumulator to GPR With Right Shift and Saturate
7600
MIPS_extrv_rs_w
,
// Extract Word Value With Variable Right Shift From Accumulator to GPR
7601
MIPS_extrv_s_h
,
// Extract Halfword Value Variable From Accumulator to GPR With Right Shift and Saturate
7602
MIPS_mthlip
,
// Copy LO to HI and a GPR to LO and Increment Pos by 32
7603
MIPS_dextr_w
,
// Extract Word Value With Right Shift From Accumulator to GPR
7604
MIPS_dextr_l
,
// Extract Doubleword Value With Right Shift From Accumulator to GPR
7605
MIPS_dextrv_w
,
// Extract Word Value With Variable Right Shift From Accumulator to GPR
7606
MIPS_dextrv_l
,
// Extract Doubleword Value With Variable Right Shift From Accumulator to GPR
7607
MIPS_dextp
,
// Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR
7608
MIPS_dextpdp
,
// Extract Fixed Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos
7609
MIPS_dshilo
,
// Shift an Accumulator Value Leaving the Result in the Same Accumulator
7610
MIPS_dextpv
,
// Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR
7611
MIPS_dextpdpv
,
// Extract Variable Bitfield From Arbitrary Position in Accumulator to GPR and Decrement Pos
7612
MIPS_dshilov
,
// Variable Shift of Accumulator Value Leaving the Result in the Same Accumulator
7613
MIPS_dextr_r_w
,
// Extract Word Value With Right Shift And Rounding From Accumulator to GPR
7614
MIPS_dextr_r_l
,
// Extract Doubleword Value With Right Shift And Rounding From Accumulator to GPR
7615
MIPS_dextrv_r_w
,
// Extract Word Value With Variable Right Shift And Rounding From Accumulator to GPR
7616
MIPS_dextrv_r_l
,
// Extract Doubleword Value With Variable Right Shift And Rounding From Accumulator to GPR
7617
MIPS_dextr_rs_w
,
// Extract Word Value With Right Shift From Accumulator to GPR
7618
MIPS_dextr_s_h
,
// Extract Halfword Value From Accumulator to GPR With Right Shift and Saturate
7619
MIPS_dextr_rs_l
,
// Extract Doubleword Value With Right Shift From Accumulator to GPR
7620
MIPS_dextrv_rs_w
,
// Extract Word Value With Variable Right Shift From Accumulator to GPR
7621
MIPS_dextrv_s_h
,
// Extract Halfword Value Variable From Accumulator to GPR With Right Shift and Saturate
7622
MIPS_dextrv_rs_l
,
// Extract Doubleword Value With Variable Right Shift From Accumulator to GPR
7623
MIPS_dmthlip
,
// Copy LO to HI and a GPR to LO and Increment Pos by 64
7624
MIPS_adduh_qb
,
// Unsigned Add Vector Quad-Bytes And Right Shift to Halve Results
7625
MIPS_addqh_ph
,
// Add Fractional Halfword Vectors And Shift Right to Halve Results
7626
MIPS_addqh_w
,
// Add Fractional Words And Shift Right to Halve Results
7627
MIPS_subuh_qb
,
// Subtract Unsigned Bytes And Right Shift to Halve Results
7628
MIPS_subqh_ph
,
// Subtract Fractional Halfword Vectors And Shift Right to Halve Results
7629
MIPS_subqh_w
,
// Subtract Fractional Words And Shift Right to Halve Results
7630
MIPS_adduh_r_qb
,
// Unsigned Add Vector Quad-Bytes And Right Shift to Halve Results
7631
MIPS_addqh_r_ph
,
// Add Fractional Halfword Vectors And Shift Right to Halve Results
7632
MIPS_addqh_r_w
,
// Add Fractional Words And Shift Right to Halve Results
7633
MIPS_subuh_r_qb
,
// Subtract Unsigned Bytes And Right Shift to Halve Results
7634
MIPS_subqh_r_ph
,
// Subtract Fractional Halfword Vectors And Shift Right to Halve Results
7635
MIPS_subqh_r_w
,
// Subtract Fractional Words And Shift Right to Halve Results
7636
MIPS_mul_ph
,
// Multiply Vector Integer HalfWords to Same Size Products
7637
MIPS_mul_s_ph
,
// Multiply Vector Integer HalfWords to Same Size Products
7638
MIPS_mulq_s_w
,
// Multiply Fractional Words to Same Size Product with Saturation
7639
MIPS_mulq_rs_w
,
// Multiply Fractional Words to Same Size Product with Saturation and Rounding
7640
MIPS_append
,
// Left Shift and Append Bits to the LSB
7641
MIPS_balign
,
// Byte Align Contents from Two Registers
7642
MIPS_prepend
,
// Right Shift and Prepend Bits to the MSB
7643
// Cavium Octeon II instructions
7644
MIPS_laa
,
// Load Atomic Add Word
7645
MIPS_laad
,
// Load Atomic Add Doubleword
7646
MIPS_lac
,
// Load Atomic Clear Word
7647
MIPS_lacd
,
// Load Atomic Clear Doubleword
7648
MIPS_lad
,
// Load Atomic Decrement Word
7649
MIPS_ladd
,
// Load Atomic Decrement Doubleword
7650
MIPS_lai
,
// Load Atomic Increment Word
7651
MIPS_laid
,
// Load Atomic Increment Doubleword
7652
MIPS_las
,
// Load Atomic Set Word
7653
MIPS_lasd
,
// Load Atomic Set Doubleword
7654
MIPS_law
,
// Load Atomic Swap Word
7655
MIPS_lawd
,
// Load Atomic Swap Doubleword
7656
// we don't know the following mnemonics for sure
7657
MIPS_lbx
,
// Load Byte Indexed
7658
MIPS_lhux
,
// Load Halfword Unsigned Indexed
7659
MIPS_lwux
,
// Load Word Unsigned Indexed
7660
MIPS_qmac_00
,
// Q15 Multiply Accumulate
7661
MIPS_qmac_01
,
// Q15 Multiply Accumulate
7662
MIPS_qmac_02
,
// Q15 Multiply Accumulate
7663
MIPS_qmac_03
,
// Q15 Multiply Accumulate
7664
MIPS_qmacs_00
,
// Q15 Multiply Accumulate
7665
MIPS_qmacs_01
,
// Q15 Multiply Accumulate
7666
MIPS_qmacs_02
,
// Q15 Multiply Accumulate
7667
MIPS_qmacs_03
,
// Q15 Multiply Accumulate
7668
MIPS_zcb
,
// Zero Cache Block
7669
MIPS_zcbt
,
// Zero Cache Block
7670
// MSA ASE
7671
// some of these have the same name as existing mnemonics; to avoid ambiguity
7672
// we use an msa_ prefix on all of them
7673
MIPS_msa_sll_b
,
// Vector Shift Left
7674
MIPS_msa_sll_h
,
// Vector Shift Left
7675
MIPS_msa_sll_w
,
// Vector Shift Left
7676
MIPS_msa_sll_d
,
// Vector Shift Left
7677
MIPS_msa_slli_b
,
// Immediate Shift Left
7678
MIPS_msa_slli_h
,
// Immediate Shift Left
7679
MIPS_msa_slli_w
,
// Immediate Shift Left
7680
MIPS_msa_slli_d
,
// Immediate Shift Left
7681
MIPS_msa_sra_b
,
// Vector Shift Right Arithmetic
7682
MIPS_msa_sra_h
,
// Vector Shift Right Arithmetic
7683
MIPS_msa_sra_w
,
// Vector Shift Right Arithmetic
7684
MIPS_msa_sra_d
,
// Vector Shift Right Arithmetic
7685
MIPS_msa_srai_b
,
// Immediate Shift Right Arithmetic
7686
MIPS_msa_srai_h
,
// Immediate Shift Right Arithmetic
7687
MIPS_msa_srai_w
,
// Immediate Shift Right Arithmetic
7688
MIPS_msa_srai_d
,
// Immediate Shift Right Arithmetic
7689
MIPS_msa_srl_b
,
// Vector Shift Right Logical
7690
MIPS_msa_srl_h
,
// Vector Shift Right Logical
7691
MIPS_msa_srl_w
,
// Vector Shift Right Logical
7692
MIPS_msa_srl_d
,
// Vector Shift Right Logical
7693
MIPS_msa_srli_b
,
// Immediate Shift Right Logical
7694
MIPS_msa_srli_h
,
// Immediate Shift Right Logical
7695
MIPS_msa_srli_w
,
// Immediate Shift Right Logical
7696
MIPS_msa_srli_d
,
// Immediate Shift Right Logical
7697
MIPS_msa_bclr_b
,
// Vector Bit Clear
7698
MIPS_msa_bclr_h
,
// Vector Bit Clear
7699
MIPS_msa_bclr_w
,
// Vector Bit Clear
7700
MIPS_msa_bclr_d
,
// Vector Bit Clear
7701
MIPS_msa_bclri_b
,
// Immediate Bit Clear
7702
MIPS_msa_bclri_h
,
// Immediate Bit Clear
7703
MIPS_msa_bclri_w
,
// Immediate Bit Clear
7704
MIPS_msa_bclri_d
,
// Immediate Bit Clear
7705
MIPS_msa_bset_b
,
// Vector Bit Set
7706
MIPS_msa_bset_h
,
// Vector Bit Set
7707
MIPS_msa_bset_w
,
// Vector Bit Set
7708
MIPS_msa_bset_d
,
// Vector Bit Set
7709
MIPS_msa_bseti_b
,
// Immediate Bit Set
7710
MIPS_msa_bseti_h
,
// Immediate Bit Set
7711
MIPS_msa_bseti_w
,
// Immediate Bit Set
7712
MIPS_msa_bseti_d
,
// Immediate Bit Set
7713
MIPS_msa_bneg_b
,
// Vector Bit Negate
7714
MIPS_msa_bneg_h
,
// Vector Bit Negate
7715
MIPS_msa_bneg_w
,
// Vector Bit Negate
7716
MIPS_msa_bneg_d
,
// Vector Bit Negate
7717
MIPS_msa_bnegi_b
,
// Immediate Bit Negate
7718
MIPS_msa_bnegi_h
,
// Immediate Bit Negate
7719
MIPS_msa_bnegi_w
,
// Immediate Bit Negate
7720
MIPS_msa_bnegi_d
,
// Immediate Bit Negate
7721
MIPS_msa_binsl_b
,
// Vector Bit Insert Left
7722
MIPS_msa_binsl_h
,
// Vector Bit Insert Left
7723
MIPS_msa_binsl_w
,
// Vector Bit Insert Left
7724
MIPS_msa_binsl_d
,
// Vector Bit Insert Left
7725
MIPS_msa_binsli_b
,
// Immediate Bit Insert Left
7726
MIPS_msa_binsli_h
,
// Immediate Bit Insert Left
7727
MIPS_msa_binsli_w
,
// Immediate Bit Insert Left
7728
MIPS_msa_binsli_d
,
// Immediate Bit Insert Left
7729
MIPS_msa_binsr_b
,
// Vector Bit Insert Right
7730
MIPS_msa_binsr_h
,
// Vector Bit Insert Right
7731
MIPS_msa_binsr_w
,
// Vector Bit Insert Right
7732
MIPS_msa_binsr_d
,
// Vector Bit Insert Right
7733
MIPS_msa_binsri_b
,
// Immediate Bit Insert Right
7734
MIPS_msa_binsri_h
,
// Immediate Bit Insert Right
7735
MIPS_msa_binsri_w
,
// Immediate Bit Insert Right
7736
MIPS_msa_binsri_d
,
// Immediate Bit Insert Right
7737
MIPS_msa_addv_b
,
// Vector Add
7738
MIPS_msa_addv_h
,
// Vector Add
7739
MIPS_msa_addv_w
,
// Vector Add
7740
MIPS_msa_addv_d
,
// Vector Add
7741
MIPS_msa_addvi_b
,
// Immediate Add
7742
MIPS_msa_addvi_h
,
// Immediate Add
7743
MIPS_msa_addvi_w
,
// Immediate Add
7744
MIPS_msa_addvi_d
,
// Immediate Add
7745
MIPS_msa_subv_b
,
// Vector Subtract
7746
MIPS_msa_subv_h
,
// Vector Subtract
7747
MIPS_msa_subv_w
,
// Vector Subtract
7748
MIPS_msa_subv_d
,
// Vector Subtract
7749
MIPS_msa_subvi_b
,
// Immediate Subtract
7750
MIPS_msa_subvi_h
,
// Immediate Subtract
7751
MIPS_msa_subvi_w
,
// Immediate Subtract
7752
MIPS_msa_subvi_d
,
// Immediate Subtract
7753
MIPS_msa_max_s_b
,
// Vector Signed Maximum
7754
MIPS_msa_max_s_h
,
// Vector Signed Maximum
7755
MIPS_msa_max_s_w
,
// Vector Signed Maximum
7756
MIPS_msa_max_s_d
,
// Vector Signed Maximum
7757
MIPS_msa_maxi_s_b
,
// Immediate Signed Maximum
7758
MIPS_msa_maxi_s_h
,
// Immediate Signed Maximum
7759
MIPS_msa_maxi_s_w
,
// Immediate Signed Maximum
7760
MIPS_msa_maxi_s_d
,
// Immediate Signed Maximum
7761
MIPS_msa_max_u_b
,
// Vector Unsigned Maximum
7762
MIPS_msa_max_u_h
,
// Vector Unsigned Maximum
7763
MIPS_msa_max_u_w
,
// Vector Unsigned Maximum
7764
MIPS_msa_max_u_d
,
// Vector Unsigned Maximum
7765
MIPS_msa_maxi_u_b
,
// Immediate Unsigned Maximum
7766
MIPS_msa_maxi_u_h
,
// Immediate Unsigned Maximum
7767
MIPS_msa_maxi_u_w
,
// Immediate Unsigned Maximum
7768
MIPS_msa_maxi_u_d
,
// Immediate Unsigned Maximum
7769
MIPS_msa_min_s_b
,
// Vector Signed Minimum
7770
MIPS_msa_min_s_h
,
// Vector Signed Minimum
7771
MIPS_msa_min_s_w
,
// Vector Signed Minimum
7772
MIPS_msa_min_s_d
,
// Vector Signed Minimum
7773
MIPS_msa_mini_s_b
,
// Immediate Signed Minimum
7774
MIPS_msa_mini_s_h
,
// Immediate Signed Minimum
7775
MIPS_msa_mini_s_w
,
// Immediate Signed Minimum
7776
MIPS_msa_mini_s_d
,
// Immediate Signed Minimum
7777
MIPS_msa_min_u_b
,
// Vector Unsigned Minimum
7778
MIPS_msa_min_u_h
,
// Vector Unsigned Minimum
7779
MIPS_msa_min_u_w
,
// Vector Unsigned Minimum
7780
MIPS_msa_min_u_d
,
// Vector Unsigned Minimum
7781
MIPS_msa_mini_u_b
,
// Immediate Unsigned Minimum
7782
MIPS_msa_mini_u_h
,
// Immediate Unsigned Minimum
7783
MIPS_msa_mini_u_w
,
// Immediate Unsigned Minimum
7784
MIPS_msa_mini_u_d
,
// Immediate Unsigned Minimum
7785
MIPS_msa_max_a_b
,
// Vector Maximum Based on Absolute Values
7786
MIPS_msa_max_a_h
,
// Vector Maximum Based on Absolute Values
7787
MIPS_msa_max_a_w
,
// Vector Maximum Based on Absolute Values
7788
MIPS_msa_max_a_d
,
// Vector Maximum Based on Absolute Values
7789
MIPS_msa_min_a_b
,
// Vector Minimum Based on Absolute Value
7790
MIPS_msa_min_a_h
,
// Vector Minimum Based on Absolute Value
7791
MIPS_msa_min_a_w
,
// Vector Minimum Based on Absolute Value
7792
MIPS_msa_min_a_d
,
// Vector Minimum Based on Absolute Value
7793
MIPS_msa_ceq_b
,
// Vector Compare Equal
7794
MIPS_msa_ceq_h
,
// Vector Compare Equal
7795
MIPS_msa_ceq_w
,
// Vector Compare Equal
7796
MIPS_msa_ceq_d
,
// Vector Compare Equal
7797
MIPS_msa_ceqi_b
,
// Immediate Compare Equal
7798
MIPS_msa_ceqi_h
,
// Immediate Compare Equal
7799
MIPS_msa_ceqi_w
,
// Immediate Compare Equal
7800
MIPS_msa_ceqi_d
,
// Immediate Compare Equal
7801
MIPS_msa_clt_s_b
,
// Vector Compare Signed Less Than
7802
MIPS_msa_clt_s_h
,
// Vector Compare Signed Less Than
7803
MIPS_msa_clt_s_w
,
// Vector Compare Signed Less Than
7804
MIPS_msa_clt_s_d
,
// Vector Compare Signed Less Than
7805
MIPS_msa_clti_s_b
,
// Immediate Compare Signed Less Than
7806
MIPS_msa_clti_s_h
,
// Immediate Compare Signed Less Than
7807
MIPS_msa_clti_s_w
,
// Immediate Compare Signed Less Than
7808
MIPS_msa_clti_s_d
,
// Immediate Compare Signed Less Than
7809
MIPS_msa_clt_u_b
,
// Vector Compare Unsigned Less Than
7810
MIPS_msa_clt_u_h
,
// Vector Compare Unsigned Less Than
7811
MIPS_msa_clt_u_w
,
// Vector Compare Unsigned Less Than
7812
MIPS_msa_clt_u_d
,
// Vector Compare Unsigned Less Than
7813
MIPS_msa_clti_u_b
,
// Immediate Compare Unsigned Less Than
7814
MIPS_msa_clti_u_h
,
// Immediate Compare Unsigned Less Than
7815
MIPS_msa_clti_u_w
,
// Immediate Compare Unsigned Less Than
7816
MIPS_msa_clti_u_d
,
// Immediate Compare Unsigned Less Than
7817
MIPS_msa_cle_s_b
,
// Vector Compare Signed Less Than or Equal
7818
MIPS_msa_cle_s_h
,
// Vector Compare Signed Less Than or Equal
7819
MIPS_msa_cle_s_w
,
// Vector Compare Signed Less Than or Equal
7820
MIPS_msa_cle_s_d
,
// Vector Compare Signed Less Than or Equal
7821
MIPS_msa_clei_s_b
,
// Immediate Compare Signed Less Than or Equal
7822
MIPS_msa_clei_s_h
,
// Immediate Compare Signed Less Than or Equal
7823
MIPS_msa_clei_s_w
,
// Immediate Compare Signed Less Than or Equal
7824
MIPS_msa_clei_s_d
,
// Immediate Compare Signed Less Than or Equal
7825
MIPS_msa_cle_u_b
,
// Vector Compare Unsigned Less Than or Equal
7826
MIPS_msa_cle_u_h
,
// Vector Compare Unsigned Less Than or Equal
7827
MIPS_msa_cle_u_w
,
// Vector Compare Unsigned Less Than or Equal
7828
MIPS_msa_cle_u_d
,
// Vector Compare Unsigned Less Than or Equal
7829
MIPS_msa_clei_u_b
,
// Immediate Compare Unsigned Less Than or Equal
7830
MIPS_msa_clei_u_h
,
// Immediate Compare Unsigned Less Than or Equal
7831
MIPS_msa_clei_u_w
,
// Immediate Compare Unsigned Less Than or Equal
7832
MIPS_msa_clei_u_d
,
// Immediate Compare Unsigned Less Than or Equal
7833
MIPS_msa_ld_b
,
// Vector Load
7834
MIPS_msa_ld_h
,
// Vector Load
7835
MIPS_msa_ld_w
,
// Vector Load
7836
MIPS_msa_ld_d
,
// Vector Load
7837
MIPS_msa_st_b
,
// Vector Store
7838
MIPS_msa_st_h
,
// Vector Store
7839
MIPS_msa_st_w
,
// Vector Store
7840
MIPS_msa_st_d
,
// Vector Store
7841
MIPS_msa_sat_s_b
,
// Immediate Signed Saturate
7842
MIPS_msa_sat_s_h
,
// Immediate Signed Saturate
7843
MIPS_msa_sat_s_w
,
// Immediate Signed Saturate
7844
MIPS_msa_sat_s_d
,
// Immediate Signed Saturate
7845
MIPS_msa_sat_u_b
,
// Immediate Unsigned Saturate
7846
MIPS_msa_sat_u_h
,
// Immediate Unsigned Saturate
7847
MIPS_msa_sat_u_w
,
// Immediate Unsigned Saturate
7848
MIPS_msa_sat_u_d
,
// Immediate Unsigned Saturate
7849
MIPS_msa_add_a_b
,
// Vector Add Absolute Values
7850
MIPS_msa_add_a_h
,
// Vector Add Absolute Values
7851
MIPS_msa_add_a_w
,
// Vector Add Absolute Values
7852
MIPS_msa_add_a_d
,
// Vector Add Absolute Values
7853
MIPS_msa_adds_a_b
,
// Vector Saturated Add of Absolute Values
7854
MIPS_msa_adds_a_h
,
// Vector Saturated Add of Absolute Values
7855
MIPS_msa_adds_a_w
,
// Vector Saturated Add of Absolute Values
7856
MIPS_msa_adds_a_d
,
// Vector Saturated Add of Absolute Values
7857
MIPS_msa_adds_s_b
,
// Vector Signed Saturated Add of Signed Values
7858
MIPS_msa_adds_s_h
,
// Vector Signed Saturated Add of Signed Values
7859
MIPS_msa_adds_s_w
,
// Vector Signed Saturated Add of Signed Values
7860
MIPS_msa_adds_s_d
,
// Vector Signed Saturated Add of Signed Values
7861
MIPS_msa_adds_u_b
,
// Vector Unsigned Saturated Add of Unsigned Values
7862
MIPS_msa_adds_u_h
,
// Vector Unsigned Saturated Add of Unsigned Values
7863
MIPS_msa_adds_u_w
,
// Vector Unsigned Saturated Add of Unsigned Values
7864
MIPS_msa_adds_u_d
,
// Vector Unsigned Saturated Add of Unsigned Values
7865
MIPS_msa_ave_s_b
,
// Vector Signed Average
7866
MIPS_msa_ave_s_h
,
// Vector Signed Average
7867
MIPS_msa_ave_s_w
,
// Vector Signed Average
7868
MIPS_msa_ave_s_d
,
// Vector Signed Average
7869
MIPS_msa_ave_u_b
,
// Vector Unsigned Average
7870
MIPS_msa_ave_u_h
,
// Vector Unsigned Average
7871
MIPS_msa_ave_u_w
,
// Vector Unsigned Average
7872
MIPS_msa_ave_u_d
,
// Vector Unsigned Average
7873
MIPS_msa_aver_s_b
,
// Vector Signed Average Rounded
7874
MIPS_msa_aver_s_h
,
// Vector Signed Average Rounded
7875
MIPS_msa_aver_s_w
,
// Vector Signed Average Rounded
7876
MIPS_msa_aver_s_d
,
// Vector Signed Average Rounded
7877
MIPS_msa_aver_u_b
,
// Vector Unsigned Average Rounded
7878
MIPS_msa_aver_u_h
,
// Vector Unsigned Average Rounded
7879
MIPS_msa_aver_u_w
,
// Vector Unsigned Average Rounded
7880
MIPS_msa_aver_u_d
,
// Vector Unsigned Average Rounded
7881
MIPS_msa_subs_s_b
,
// Vector Signed Saturated Subtract of Signed Values
7882
MIPS_msa_subs_s_h
,
// Vector Signed Saturated Subtract of Signed Values
7883
MIPS_msa_subs_s_w
,
// Vector Signed Saturated Subtract of Signed Values
7884
MIPS_msa_subs_s_d
,
// Vector Signed Saturated Subtract of Signed Values
7885
MIPS_msa_subs_u_b
,
// Vector Unsigned Saturated Subtract of Unsigned Values
7886
MIPS_msa_subs_u_h
,
// Vector Unsigned Saturated Subtract of Unsigned Values
7887
MIPS_msa_subs_u_w
,
// Vector Unsigned Saturated Subtract of Unsigned Values
7888
MIPS_msa_subs_u_d
,
// Vector Unsigned Saturated Subtract of Unsigned Values
7889
MIPS_msa_subsus_u_b
,
// Vector Unsigned Saturated Subtract of Signed from Unsigned
7890
MIPS_msa_subsus_u_h
,
// Vector Unsigned Saturated Subtract of Signed from Unsigned
7891
MIPS_msa_subsus_u_w
,
// Vector Unsigned Saturated Subtract of Signed from Unsigned
7892
MIPS_msa_subsus_u_d
,
// Vector Unsigned Saturated Subtract of Signed from Unsigned
7893
MIPS_msa_subsuu_s_b
,
// Vector Signed Saturated Subtract of Unsigned Values
7894
MIPS_msa_subsuu_s_h
,
// Vector Signed Saturated Subtract of Unsigned Values
7895
MIPS_msa_subsuu_s_w
,
// Vector Signed Saturated Subtract of Unsigned Values
7896
MIPS_msa_subsuu_s_d
,
// Vector Signed Saturated Subtract of Unsigned Values
7897
MIPS_msa_asub_s_b
,
// Vector Absolute Values of Signed Subtract
7898
MIPS_msa_asub_s_h
,
// Vector Absolute Values of Signed Subtract
7899
MIPS_msa_asub_s_w
,
// Vector Absolute Values of Signed Subtract
7900
MIPS_msa_asub_s_d
,
// Vector Absolute Values of Signed Subtract
7901
MIPS_msa_asub_u_b
,
// Vector Absolute Values of Unsigned Subtract
7902
MIPS_msa_asub_u_h
,
// Vector Absolute Values of Unsigned Subtract
7903
MIPS_msa_asub_u_w
,
// Vector Absolute Values of Unsigned Subtract
7904
MIPS_msa_asub_u_d
,
// Vector Absolute Values of Unsigned Subtract
7905
MIPS_msa_mulv_b
,
// Vector Multiply
7906
MIPS_msa_mulv_h
,
// Vector Multiply
7907
MIPS_msa_mulv_w
,
// Vector Multiply
7908
MIPS_msa_mulv_d
,
// Vector Multiply
7909
MIPS_msa_maddv_b
,
// Vector Multiply and Add
7910
MIPS_msa_maddv_h
,
// Vector Multiply and Add
7911
MIPS_msa_maddv_w
,
// Vector Multiply and Add
7912
MIPS_msa_maddv_d
,
// Vector Multiply and Add
7913
MIPS_msa_msubv_b
,
// Vector Multiply and Subtract
7914
MIPS_msa_msubv_h
,
// Vector Multiply and Subtract
7915
MIPS_msa_msubv_w
,
// Vector Multiply and Subtract
7916
MIPS_msa_msubv_d
,
// Vector Multiply and Subtract
7917
MIPS_msa_div_s_b
,
// Vector Signed Divide
7918
MIPS_msa_div_s_h
,
// Vector Signed Divide
7919
MIPS_msa_div_s_w
,
// Vector Signed Divide
7920
MIPS_msa_div_s_d
,
// Vector Signed Divide
7921
MIPS_msa_div_u_b
,
// Vector Unsigned Divide
7922
MIPS_msa_div_u_h
,
// Vector Unsigned Divide
7923
MIPS_msa_div_u_w
,
// Vector Unsigned Divide
7924
MIPS_msa_div_u_d
,
// Vector Unsigned Divide
7925
MIPS_msa_mod_s_b
,
// Vector Signed Modulo
7926
MIPS_msa_mod_s_h
,
// Vector Signed Modulo
7927
MIPS_msa_mod_s_w
,
// Vector Signed Modulo
7928
MIPS_msa_mod_s_d
,
// Vector Signed Modulo
7929
MIPS_msa_mod_u_b
,
// Vector Unsigned Modulo
7930
MIPS_msa_mod_u_h
,
// Vector Unsigned Modulo
7931
MIPS_msa_mod_u_w
,
// Vector Unsigned Modulo
7932
MIPS_msa_mod_u_d
,
// Vector Unsigned Modulo
7933
MIPS_msa_dotp_s_h
,
// Vector Signed Dot Product
7934
MIPS_msa_dotp_s_w
,
// Vector Signed Dot Product
7935
MIPS_msa_dotp_s_d
,
// Vector Signed Dot Product
7936
MIPS_msa_dotp_u_h
,
// Vector Unsigned Dot Product
7937
MIPS_msa_dotp_u_w
,
// Vector Unsigned Dot Product
7938
MIPS_msa_dotp_u_d
,
// Vector Unsigned Dot Product
7939
MIPS_msa_dpadd_s_h
,
// Vector Signed Dot Product and Add
7940
MIPS_msa_dpadd_s_w
,
// Vector Signed Dot Product and Add
7941
MIPS_msa_dpadd_s_d
,
// Vector Signed Dot Product and Add
7942
MIPS_msa_dpadd_u_h
,
// Vector Unsigned Dot Product and Add
7943
MIPS_msa_dpadd_u_w
,
// Vector Unsigned Dot Product and Add
7944
MIPS_msa_dpadd_u_d
,
// Vector Unsigned Dot Product and Add
7945
MIPS_msa_dpsub_s_h
,
// Vector Signed Dot Product and Subtract
7946
MIPS_msa_dpsub_s_w
,
// Vector Signed Dot Product and Subtract
7947
MIPS_msa_dpsub_s_d
,
// Vector Signed Dot Product and Subtract
7948
MIPS_msa_dpsub_u_h
,
// Vector Unsigned Dot Product and Subtract
7949
MIPS_msa_dpsub_u_w
,
// Vector Unsigned Dot Product and Subtract
7950
MIPS_msa_dpsub_u_d
,
// Vector Unsigned Dot Product and Subtract
7951
MIPS_msa_sld_b
,
// GPR Columns Slide
7952
MIPS_msa_sld_h
,
// GPR Columns Slide
7953
MIPS_msa_sld_w
,
// GPR Columns Slide
7954
MIPS_msa_sld_d
,
// GPR Columns Slide
7955
MIPS_msa_sldi_b
,
// Immediate Columns Slide
7956
MIPS_msa_sldi_h
,
// Immediate Columns Slide
7957
MIPS_msa_sldi_w
,
// Immediate Columns Slide
7958
MIPS_msa_sldi_d
,
// Immediate Columns Slide
7959
MIPS_msa_splat_b
,
// GPR Element Splat
7960
MIPS_msa_splat_h
,
// GPR Element Splat
7961
MIPS_msa_splat_w
,
// GPR Element Splat
7962
MIPS_msa_splat_d
,
// GPR Element Splat
7963
MIPS_msa_splati_b
,
// Immediate Element Splat
7964
MIPS_msa_splati_h
,
// Immediate Element Splat
7965
MIPS_msa_splati_w
,
// Immediate Element Splat
7966
MIPS_msa_splati_d
,
// Immediate Element Splat
7967
MIPS_msa_pckev_b
,
// Vector Pack Even
7968
MIPS_msa_pckev_h
,
// Vector Pack Even
7969
MIPS_msa_pckev_w
,
// Vector Pack Even
7970
MIPS_msa_pckev_d
,
// Vector Pack Even
7971
MIPS_msa_pckod_b
,
// Vector Pack Odd
7972
MIPS_msa_pckod_h
,
// Vector Pack Odd
7973
MIPS_msa_pckod_w
,
// Vector Pack Odd
7974
MIPS_msa_pckod_d
,
// Vector Pack Odd
7975
MIPS_msa_ilvl_b
,
// Vector Interleave Left
7976
MIPS_msa_ilvl_h
,
// Vector Interleave Left
7977
MIPS_msa_ilvl_w
,
// Vector Interleave Left
7978
MIPS_msa_ilvl_d
,
// Vector Interleave Left
7979
MIPS_msa_ilvr_b
,
// Vector Interleave Right
7980
MIPS_msa_ilvr_h
,
// Vector Interleave Right
7981
MIPS_msa_ilvr_w
,
// Vector Interleave Right
7982
MIPS_msa_ilvr_d
,
// Vector Interleave Right
7983
MIPS_msa_ilvev_b
,
// Vector Interleave Even
7984
MIPS_msa_ilvev_h
,
// Vector Interleave Even
7985
MIPS_msa_ilvev_w
,
// Vector Interleave Even
7986
MIPS_msa_ilvev_d
,
// Vector Interleave Even
7987
MIPS_msa_ilvod_b
,
// Vector Interleave Odd
7988
MIPS_msa_ilvod_h
,
// Vector Interleave Odd
7989
MIPS_msa_ilvod_w
,
// Vector Interleave Odd
7990
MIPS_msa_ilvod_d
,
// Vector Interleave Odd
7991
MIPS_msa_vshf_b
,
// Vector Data Preserving Shuffle
7992
MIPS_msa_vshf_h
,
// Vector Data Preserving Shuffle
7993
MIPS_msa_vshf_w
,
// Vector Data Preserving Shuffle
7994
MIPS_msa_vshf_d
,
// Vector Data Preserving Shuffle
7995
MIPS_msa_srar_b
,
// Vector Shift Right Arithmetic Rounded
7996
MIPS_msa_srar_h
,
// Vector Shift Right Arithmetic Rounded
7997
MIPS_msa_srar_w
,
// Vector Shift Right Arithmetic Rounded
7998
MIPS_msa_srar_d
,
// Vector Shift Right Arithmetic Rounded
7999
MIPS_msa_srari_b
,
// Immediate Shift Right Arithmetic Rounded
8000
MIPS_msa_srari_h
,
// Immediate Shift Right Arithmetic Rounded
8001
MIPS_msa_srari_w
,
// Immediate Shift Right Arithmetic Rounded
8002
MIPS_msa_srari_d
,
// Immediate Shift Right Arithmetic Rounded
8003
MIPS_msa_srlr_b
,
// Vector Shift Right Logical Rounded
8004
MIPS_msa_srlr_h
,
// Vector Shift Right Logical Rounded
8005
MIPS_msa_srlr_w
,
// Vector Shift Right Logical Rounded
8006
MIPS_msa_srlr_d
,
// Vector Shift Right Logical Rounded
8007
MIPS_msa_srlri_b
,
// Immediate Shift Right Logical Rounded
8008
MIPS_msa_srlri_h
,
// Immediate Shift Right Logical Rounded
8009
MIPS_msa_srlri_w
,
// Immediate Shift Right Logical Rounded
8010
MIPS_msa_srlri_d
,
// Immediate Shift Right Logical Rounded
8011
MIPS_msa_hadd_s_h
,
// Vector Signed Horizontal Add
8012
MIPS_msa_hadd_s_w
,
// Vector Signed Horizontal Add
8013
MIPS_msa_hadd_s_d
,
// Vector Signed Horizontal Add
8014
MIPS_msa_hadd_u_h
,
// Vector Unsigned Horizontal Add
8015
MIPS_msa_hadd_u_w
,
// Vector Unsigned Horizontal Add
8016
MIPS_msa_hadd_u_d
,
// Vector Unsigned Horizontal Add
8017
MIPS_msa_hsub_s_h
,
// Vector Signed Horizontal Subtract
8018
MIPS_msa_hsub_s_w
,
// Vector Signed Horizontal Subtract
8019
MIPS_msa_hsub_s_d
,
// Vector Signed Horizontal Subtract
8020
MIPS_msa_hsub_u_h
,
// Vector Unsigned Horizontal Subtract
8021
MIPS_msa_hsub_u_w
,
// Vector Unsigned Horizontal Subtract
8022
MIPS_msa_hsub_u_d
,
// Vector Unsigned Horizontal Subtract
8023
MIPS_msa_and_v
,
// Vector Logical And
8024
MIPS_msa_andi_b
,
// Immediate Logical And
8025
MIPS_msa_or_v
,
// Vector Logical Or
8026
MIPS_msa_ori_b
,
// Immediate Logical Or
8027
MIPS_msa_nor_v
,
// Vector Logical Negated Or
8028
MIPS_msa_nori_b
,
// Immediate Logical Negated Or
8029
MIPS_msa_xor_v
,
// Vector Logical Exclusive Or
8030
MIPS_msa_xori_b
,
// Immediate Logical Exclusive Or
8031
MIPS_msa_bmnz_v
,
// Vector Bit Move If Not Zero
8032
MIPS_msa_bmnzi_b
,
// Immediate Bit Move If Not Zero
8033
MIPS_msa_bmz_v
,
// Vector Bit Move If Zero
8034
MIPS_msa_bmzi_b
,
// Immediate Bit Move If Zero
8035
MIPS_msa_bsel_v
,
// Vector Bit Select
8036
MIPS_msa_bseli_b
,
// Immediate Bit Select
8037
MIPS_msa_shf_b
,
// Immediate Set Shuffle Elements
8038
MIPS_msa_shf_h
,
// Immediate Set Shuffle Elements
8039
MIPS_msa_shf_w
,
// Immediate Set Shuffle Elements
8040
MIPS_msa_bnz_v
,
// Immediate Branch If Not Zero (At Least One Element of Any Format Is Not Zero)
8041
MIPS_msa_bz_v
,
// Immediate Branch If Zero (All Elements of Any Format Are Zero)
8042
MIPS_msa_fill_b
,
// Vector Fill from GPR
8043
MIPS_msa_fill_h
,
// Vector Fill from GPR
8044
MIPS_msa_fill_w
,
// Vector Fill from GPR
8045
MIPS_msa_fill_d
,
// Vector Fill from GPR
8046
MIPS_msa_pcnt_b
,
// Vector Population Count
8047
MIPS_msa_pcnt_h
,
// Vector Population Count
8048
MIPS_msa_pcnt_w
,
// Vector Population Count
8049
MIPS_msa_pcnt_d
,
// Vector Population Count
8050
MIPS_msa_nloc_b
,
// Vector Leading Ones Count
8051
MIPS_msa_nloc_h
,
// Vector Leading Ones Count
8052
MIPS_msa_nloc_w
,
// Vector Leading Ones Count
8053
MIPS_msa_nloc_d
,
// Vector Leading Ones Count
8054
MIPS_msa_nlzc_b
,
// Vector Leading Zeros Count
8055
MIPS_msa_nlzc_h
,
// Vector Leading Zeros Count
8056
MIPS_msa_nlzc_w
,
// Vector Leading Zeros Count
8057
MIPS_msa_nlzc_d
,
// Vector Leading Zeros Count
8058
MIPS_msa_copy_s_b
,
// Element Copy to GPR Signed
8059
MIPS_msa_copy_s_h
,
// Element Copy to GPR Signed
8060
MIPS_msa_copy_s_w
,
// Element Copy to GPR Signed
8061
MIPS_msa_copy_s_d
,
// Element Copy to GPR Signed
8062
MIPS_msa_copy_u_b
,
// Element Copy to GPR Unsigned
8063
MIPS_msa_copy_u_h
,
// Element Copy to GPR Unsigned
8064
MIPS_msa_copy_u_w
,
// Element Copy to GPR Unsigned
8065
MIPS_msa_copy_u_d
,
// Element Copy to GPR Unsigned
8066
MIPS_msa_insert_b
,
// GPR Insert Element
8067
MIPS_msa_insert_h
,
// GPR Insert Element
8068
MIPS_msa_insert_w
,
// GPR Insert Element
8069
MIPS_msa_insert_d
,
// GPR Insert Element
8070
MIPS_msa_insve_b
,
// Element Insert Element
8071
MIPS_msa_insve_h
,
// Element Insert Element
8072
MIPS_msa_insve_w
,
// Element Insert Element
8073
MIPS_msa_insve_d
,
// Element Insert Element
8074
MIPS_msa_bnz_b
,
// Immediate Branch If All Elements Are Not Zero
8075
MIPS_msa_bnz_h
,
// Immediate Branch If All Elements Are Not Zero
8076
MIPS_msa_bnz_w
,
// Immediate Branch If All Elements Are Not Zero
8077
MIPS_msa_bnz_d
,
// Immediate Branch If All Elements Are Not Zero
8078
MIPS_msa_bz_b
,
// Immediate Branch If At Least One Element Is Zero
8079
MIPS_msa_bz_h
,
// Immediate Branch If At Least One Element Is Zero
8080
MIPS_msa_bz_w
,
// Immediate Branch If At Least One Element Is Zero
8081
MIPS_msa_bz_d
,
// Immediate Branch If At Least One Element Is Zero
8082
MIPS_msa_ldi_b
,
// Immediate Load
8083
MIPS_msa_ldi_h
,
// Immediate Load
8084
MIPS_msa_ldi_w
,
// Immediate Load
8085
MIPS_msa_ldi_d
,
// Immediate Load
8086
MIPS_msa_fcaf_w
,
// Vector Floating-Point Quiet Compare Always False
8087
MIPS_msa_fcaf_d
,
// Vector Floating-Point Quiet Compare Always False
8088
MIPS_msa_fcun_w
,
// Vector Floating-Point Quiet Compare Unordered
8089
MIPS_msa_fcun_d
,
// Vector Floating-Point Quiet Compare Unordered
8090
MIPS_msa_fceq_w
,
// Vector Floating-Point Quiet Compare Equal
8091
MIPS_msa_fceq_d
,
// Vector Floating-Point Quiet Compare Equal
8092
MIPS_msa_fcueq_w
,
// Vector Floating-Point Quiet Compare Unordered or Equal
8093
MIPS_msa_fcueq_d
,
// Vector Floating-Point Quiet Compare Unordered or Equal
8094
MIPS_msa_fclt_w
,
// Vector Floating-Point Quiet Compare Less Than
8095
MIPS_msa_fclt_d
,
// Vector Floating-Point Quiet Compare Less Than
8096
MIPS_msa_fcult_w
,
// Vector Floating-Point Quiet Compare Unordered or Less Than
8097
MIPS_msa_fcult_d
,
// Vector Floating-Point Quiet Compare Unordered or Less Than
8098
MIPS_msa_fcle_w
,
// Vector Floating-Point Quiet Compare Less or Equal
8099
MIPS_msa_fcle_d
,
// Vector Floating-Point Quiet Compare Less or Equal
8100
MIPS_msa_fcule_w
,
// Vector Floating-Point Quiet Compare Unordered or Less or Equal
8101
MIPS_msa_fcule_d
,
// Vector Floating-Point Quiet Compare Unordered or Less or Equal
8102
MIPS_msa_fsaf_w
,
// Vector Floating-Point Signaling Compare Always False
8103
MIPS_msa_fsaf_d
,
// Vector Floating-Point Signaling Compare Always False
8104
MIPS_msa_fsun_w
,
// Vector Floating-Point Signaling Compare Unordered
8105
MIPS_msa_fsun_d
,
// Vector Floating-Point Signaling Compare Unordered
8106
MIPS_msa_fseq_w
,
// Vector Floating-Point Signaling Compare Equal
8107
MIPS_msa_fseq_d
,
// Vector Floating-Point Signaling Compare Equal
8108
MIPS_msa_fsueq_w
,
// Vector Floating-Point Signaling Compare Unordered or Equal
8109
MIPS_msa_fsueq_d
,
// Vector Floating-Point Signaling Compare Unordered or Equal
8110
MIPS_msa_fslt_w
,
// Vector Floating-Point Signaling Compare Less Than
8111
MIPS_msa_fslt_d
,
// Vector Floating-Point Signaling Compare Less Than
8112
MIPS_msa_fsult_w
,
// Vector Floating-Point Signaling Compare Unordered or Less Than
8113
MIPS_msa_fsult_d
,
// Vector Floating-Point Signaling Compare Unordered or Less Than
8114
MIPS_msa_fsle_w
,
// Vector Floating-Point Signaling Compare Less or Equal
8115
MIPS_msa_fsle_d
,
// Vector Floating-Point Signaling Compare Less or Equal
8116
MIPS_msa_fsule_w
,
// Vector Floating-Point Signaling Compare Unordered or Less or Equal
8117
MIPS_msa_fsule_d
,
// Vector Floating-Point Signaling Compare Unordered or Less or Equal
8118
MIPS_msa_fadd_w
,
// Vector Floating-Point Addition
8119
MIPS_msa_fadd_d
,
// Vector Floating-Point Addition
8120
MIPS_msa_fsub_w
,
// Vector Floating-Point Subtraction
8121
MIPS_msa_fsub_d
,
// Vector Floating-Point Subtraction
8122
MIPS_msa_fmul_w
,
// Vector Floating-Point Multiplication
8123
MIPS_msa_fmul_d
,
// Vector Floating-Point Multiplication
8124
MIPS_msa_fdiv_w
,
// Vector Floating-Point Division
8125
MIPS_msa_fdiv_d
,
// Vector Floating-Point Division
8126
MIPS_msa_fmadd_w
,
// Vector Floating-Point Multiply-Add
8127
MIPS_msa_fmadd_d
,
// Vector Floating-Point Multiply-Add
8128
MIPS_msa_fmsub_w
,
// Vector Floating-Point Multiply-Sub
8129
MIPS_msa_fmsub_d
,
// Vector Floating-Point Multiply-Sub
8130
MIPS_msa_fexp2_w
,
// Vector Floating-Point Base 2 Exponentiation
8131
MIPS_msa_fexp2_d
,
// Vector Floating-Point Base 2 Exponentiation
8132
MIPS_msa_fexdo_h
,
// Vector Floating-Point Down-Convert Interchange Format
8133
MIPS_msa_fexdo_w
,
// Vector Floating-Point Down-Convert Interchange Format
8134
MIPS_msa_ftq_h
,
// Vector Floating-Point Convert to Fixed-Point
8135
MIPS_msa_ftq_w
,
// Vector Floating-Point Convert to Fixed-Point
8136
MIPS_msa_fmin_w
,
// Vector Floating-Point Minimum
8137
MIPS_msa_fmin_d
,
// Vector Floating-Point Minimum
8138
MIPS_msa_fmin_a_w
,
// Vector Floating-Point Minimum Based on Absolute Values
8139
MIPS_msa_fmin_a_d
,
// Vector Floating-Point Minimum Based on Absolute Values
8140
MIPS_msa_fmax_w
,
// Vector Floating-Point Maximum
8141
MIPS_msa_fmax_d
,
// Vector Floating-Point Maximum
8142
MIPS_msa_fmax_a_w
,
// Vector Floating-Point Maximum Based on Absolute Values
8143
MIPS_msa_fmax_a_d
,
// Vector Floating-Point Maximum Based on Absolute Values
8144
MIPS_msa_fcor_w
,
// Vector Floating-Point Quiet Compare Ordered
8145
MIPS_msa_fcor_d
,
// Vector Floating-Point Quiet Compare Ordered
8146
MIPS_msa_fcune_w
,
// Vector Floating-Point Quiet Compare Unordered or Not Equal
8147
MIPS_msa_fcune_d
,
// Vector Floating-Point Quiet Compare Unordered or Not Equal
8148
MIPS_msa_fcne_w
,
// Vector Floating-Point Quiet Compare Not Equal
8149
MIPS_msa_fcne_d
,
// Vector Floating-Point Quiet Compare Not Equal
8150
MIPS_msa_mul_q_h
,
// Vector Fixed-Point Multiply
8151
MIPS_msa_mul_q_w
,
// Vector Fixed-Point Multiply
8152
MIPS_msa_madd_q_h
,
// Vector Fixed-Point Multiply and Add
8153
MIPS_msa_madd_q_w
,
// Vector Fixed-Point Multiply and Add
8154
MIPS_msa_msub_q_h
,
// Vector Fixed-Point Multiply and Subtract
8155
MIPS_msa_msub_q_w
,
// Vector Fixed-Point Multiply and Subtract
8156
MIPS_msa_fsor_w
,
// Vector Floating-Point Signaling Compare Ordered
8157
MIPS_msa_fsor_d
,
// Vector Floating-Point Signaling Compare Ordered
8158
MIPS_msa_fsune_w
,
// Vector Floating-Point Signaling Compare Unordered or Not Equal
8159
MIPS_msa_fsune_d
,
// Vector Floating-Point Signaling Compare Unordered or Not Equal
8160
MIPS_msa_fsne_w
,
// Vector Floating-Point Signaling Compare Not Equal
8161
MIPS_msa_fsne_d
,
// Vector Floating-Point Signaling Compare Not Equal
8162
MIPS_msa_mulr_q_h
,
// Vector Fixed-Point Multiply Rounded
8163
MIPS_msa_mulr_q_w
,
// Vector Fixed-Point Multiply Rounded
8164
MIPS_msa_maddr_q_h
,
// Vector Fixed-Point Multiply and Add Rounded
8165
MIPS_msa_maddr_q_w
,
// Vector Fixed-Point Multiply and Add Rounded
8166
MIPS_msa_msubr_q_h
,
// Vector Fixed-Point Multiply and Subtract Rounded
8167
MIPS_msa_msubr_q_w
,
// Vector Fixed-Point Multiply and Subtract Rounded
8168
MIPS_msa_fclass_w
,
// Vector Floating-Point Class Mask
8169
MIPS_msa_fclass_d
,
// Vector Floating-Point Class Mask
8170
MIPS_msa_ftrunc_s_w
,
// Vector Floating-Point Truncate and Convert to Signed Integer
8171
MIPS_msa_ftrunc_s_d
,
// Vector Floating-Point Truncate and Convert to Signed Integer
8172
MIPS_msa_ftrunc_u_w
,
// Vector Floating-Point Truncate and Convert to Unsigned Integer
8173
MIPS_msa_ftrunc_u_d
,
// Vector Floating-Point Truncate and Convert to Unsigned Integer
8174
MIPS_msa_fsqrt_w
,
// Vector Floating-Point Square Root
8175
MIPS_msa_fsqrt_d
,
// Vector Floating-Point Square Root
8176
MIPS_msa_frsqrt_w
,
// Vector Approximate Floating-Point Reciprocal of Square Root
8177
MIPS_msa_frsqrt_d
,
// Vector Approximate Floating-Point Reciprocal of Square Root
8178
MIPS_msa_frcp_w
,
// Vector Approximate Floating-Point Reciprocal
8179
MIPS_msa_frcp_d
,
// Vector Approximate Floating-Point Reciprocal
8180
MIPS_msa_frint_w
,
// Vector Floating-Point Round to Integer
8181
MIPS_msa_frint_d
,
// Vector Floating-Point Round to Integer
8182
MIPS_msa_flog2_w
,
// Vector Floating-Point Base 2 Logarithm
8183
MIPS_msa_flog2_d
,
// Vector Floating-Point Base 2 Logarithm
8184
MIPS_msa_fexupl_w
,
// Vector Floating-Point Up-Convert Interchange Format Left
8185
MIPS_msa_fexupl_d
,
// Vector Floating-Point Up-Convert Interchange Format Left
8186
MIPS_msa_fexupr_w
,
// Vector Floating-Point Up-Convert Interchange Format Right
8187
MIPS_msa_fexupr_d
,
// Vector Floating-Point Up-Convert Interchange Format Right
8188
MIPS_msa_ffql_w
,
// Vector Floating-Point Convert from Fixed-Point Left
8189
MIPS_msa_ffql_d
,
// Vector Floating-Point Convert from Fixed-Point Left
8190
MIPS_msa_ffqr_w
,
// Vector Floating-Point Convert from Fixed-Point Right
8191
MIPS_msa_ffqr_d
,
// Vector Floating-Point Convert from Fixed-Point Right
8192
MIPS_msa_ftint_s_w
,
// Vector Floating-Point Convert to Signed Integer
8193
MIPS_msa_ftint_s_d
,
// Vector Floating-Point Convert to Signed Integer
8194
MIPS_msa_ftint_u_w
,
// Vector Floating-Point Round and Convert to Unsigned Integer
8195
MIPS_msa_ftint_u_d
,
// Vector Floating-Point Round and Convert to Unsigned Integer
8196
MIPS_msa_ffint_s_w
,
// Vector Floating-Point Round and Convert from Signed Integer
8197
MIPS_msa_ffint_s_d
,
// Vector Floating-Point Round and Convert from Signed Integer
8198
MIPS_msa_ffint_u_w
,
// Vector Floating-Point Convert from Unsigned Integer
8199
MIPS_msa_ffint_u_d
,
// Vector Floating-Point Convert from Unsigned Integer
8200
MIPS_msa_ctcmsa
,
// GPR Copy to MSA Control Register
8201
MIPS_msa_cfcmsa
,
// GPR Copy from MSA Control Register
8202
MIPS_msa_move_v
,
// Vector Move
8203
// MIPS R6 (LSA is also part of MSA)
8204
MIPS_lsa
,
// Left Shift Add
8205
MIPS_dlsa
,
// Doubleword Left Shift Add
8206
// MIPS R3 EVA
8207
MIPS_lbe
,
// Load Byte EVA
8208
MIPS_lbue
,
// Load Byte Unsigned EVA
8209
MIPS_lhe
,
// Load Halfword EVA
8210
MIPS_lhue
,
// Load Halfword Unsigned EVA
8211
MIPS_lwe
,
// Load Word EVA
8212
MIPS_sbe
,
// Store Byte EVA
8213
MIPS_she
,
// Store Halfword EVA
8214
MIPS_swe
,
// Store Word EVA
8215
MIPS_lle
,
// Load Linked Word EVA
8216
MIPS_sce
,
// Store Conditional Word EVA
8217
MIPS_cachee
,
// Perform Cache Operation EVA
8218
MIPS_prefe
,
// Prefetch EVA
8219
MIPS_lwle
,
// Load Word Left EVA
8220
MIPS_lwre
,
// Load Word Right EVA
8221
MIPS_swle
,
// Store Word Left EVA
8222
MIPS_swre
,
// Store Word Right EVA
8223
// new MIPS16e2 instructions
8224
MIPS_movtz
,
// Move Conditional on T Equal to Zero
8225
MIPS_movtn
,
// Move Zero Conditional on T Not Equal to Zero
8226
// interAptiv core custom instructions
8227
MIPS_copyw
,
// Copy Data to Aligned Memory Location
8228
MIPS_ucopyw
,
// Copy Data to Unaligned Memory Location
8229
// MIPSr6 instructions for NanoMIPS
8230
MIPS_muh
,
// Multiply High
8231
MIPS_mulu
,
// Multiply Unsigned
8232
MIPS_muhu
,
// Multiply High Unsigned
8233
MIPS_mod
,
// Modulo
8234
MIPS_modu
,
// Modulo Unsigned
8235
MIPS_sov
,
// Set on Overflow
8236
MIPS_crc32b
,
// CRC32 Byte
8237
MIPS_crc32h
,
// CRC32 Half
8238
MIPS_crc32w
,
// CRC32 Word
8239
MIPS_crc32cb
,
// CRC32 Castagnoli Byte
8240
MIPS_crc32ch
,
// CRC32 Castagnoli Half
8241
MIPS_crc32cw
,
// CRC32 Castagnoli Word
8242
MIPS_sbx
,
// Store Byte indeXed
8243
MIPS_shx
,
// Store Half indeXed
8244
MIPS_shxs
,
// Store Half indeXed Scaled
8245
MIPS_swx
,
// Store Word indeXed
8246
MIPS_swxs
,
// Store Word indeXed Scaled
8247
MIPS_lhxs
,
// Load Half indeXed Scaled
8248
MIPS_lhuxs
,
// Load Half Unsigned indeXed Scaled
8249
MIPS_mfhc0
,
// Move From High Coprocessor 0
8250
MIPS_mthc0
,
// Move To High Coprocessor 0
8251
MIPS_extw
,
// Extend Word
8252
MIPS_tlbinv
,
// TLB Invalidate
8253
MIPS_tlbinvf
,
// TLB Invalidate Flush
8254
MIPS_ginvt
,
// Globally Invalidate TLBs
8255
MIPS_ginvi
,
// Globally Invalidate Instruction caches
8256
MIPS_eretnc
,
// Exception Return Not Clearing LLBit
8257
MIPS_lwpc
,
// Load Word PC relative
8258
MIPS_swpc
,
// Store Word PC relative
8259
MIPS_rotx
,
// Rotate and eXchange
8260
MIPS_llwp
,
// Load Linked Word Pair
8261
MIPS_llwpe
,
// Load Linked Word Pair using EVA addressing
8262
MIPS_scwp
,
// Load Linked Word Pair
8263
MIPS_scwpe
,
// Load Linked Word Pair using EVA addressing
8264
MIPS_ualwm
,
// Unaligned Load Word Multiple
8265
MIPS_uaswm
,
// Unaligned Store Word Multiple
8266
MIPS_ualh
,
// Unaligned Load Half
8267
MIPS_uash
,
// Unaligned Store Half
8268
MIPS_syncie
,
// SYNChronize Instruction cache using EVA addressing
8269
MIPS_dvp
,
// Disable Virtual Processor
8270
MIPS_evp
,
// Enable Virtual Processor
8271
MIPS_sigrie
,
// Signal Reserved Instruction Exception
8272
MIPS_bc
,
// Branch Always, Compact
8273
MIPS_balc
,
// Branch Always and Link, Compact
8274
MIPS_restore_jrc
,
// Restore callee saved registers and Jump to Return address, Compact
8275
MIPS_move_balc
,
// Move and Branch and Link, Compact
8276
MIPS_addiupc
,
// Add Immediate (Untrapped) to PC
8277
MIPS_jalrc_hb
,
// Jump And Link Register, Compact, with Hazard Barrier
8278
MIPS_aluipc
,
// Add aLigned Upper Immediate to PC
8279
MIPS_beqic
,
// Branch if Equal to Immediate, Compact
8280
MIPS_bbeqzc
,
// Branch if Bit Equals Zero, Compact
8281
MIPS_bgeic
,
// Branch if Greater than or Equal to Immediate, Compact
8282
MIPS_bgeiuc
,
// Branch if Greater than or Equal to Immediate Unsigned, Compact
8283
MIPS_bneic
,
// Branch if Not Equal to Immediate, Compact
8284
MIPS_bbnezc
,
// Branch if Bit Not Equal to Zero, Compact
8285
MIPS_bltic
,
// Branch if Less Than Immediate, Compact
8286
MIPS_bltiuc
,
// Branch if Less Than Immediate Unsigned Compact
8287
MIPS_bnec
,
// Branch Not Equal, Compact
8288
MIPS_bltc
,
// Branch if Less Than, Compact
8289
MIPS_bltuc
,
// Branch if Less Than Unsigned, Compact
8290
MIPS_beqc
,
// Branch if Equal, Compact
8291
MIPS_bgec
,
// Branch if Greater than or Equal, Compact
8292
MIPS_bgeuc
,
// Branch if Greater than or Equal to Unsigned, Compact
8293
MIPS_brsc
,
// Branch Register Scaled, Compact
8294
MIPS_balrsc
,
// Branch And Link Register Scaled, Compact
8295
MIPS_bitrevw
,
// Reverse all bits
8296
MIPS_bitrevh
,
// Reverse bits in halfs
8297
MIPS_bitrevb
,
// Reverse bits in bytes
8298
MIPS_byterevw
,
// Reverse all bytes
8299
MIPS_byterevh
,
// Reverse bytes in halfs
8300
MIPS_lwm2
,
// Load Word Multiple (w/o reglist)
8301
MIPS_swm2
,
// Store Word Multiple (w/o reglist)
8302
MIPS_last
,
8303
};
8304
/*
8305
* Interactive disassembler (IDA).
8306
* Copyright (c) 1990-2026 Hex-Rays
8307
* ALL RIGHTS RESERVED.
8308
*
8309
*/
8310
enum
8311
{
8312
H8_null
= 0,
// Unknown Operation
8313
H8_add
,
// Add binary
8314
H8_adds
,
// Add with sign extension
8315
H8_addx
,
// Add with extend carry
8316
H8_and
,
// Logical AND
8317
H8_andc
,
// Logical AND with control register
8318
H8_band
,
// Bit AND
8319
H8_bra
,
// Branch always
8320
H8_brn
,
// Branch never
8321
H8_bhi
,
// Branch if higher
8322
H8_bls
,
// Branch if lower or same
8323
H8_bcc
,
// Branch if carry clear (higher or same)
8324
H8_bcs
,
// Branch if carry set (lower)
8325
H8_bne
,
// Branch if not equal
8326
H8_beq
,
// Branch if equal
8327
H8_bvc
,
// Branch if overflow clear
8328
H8_bvs
,
// Branch if overflow set
8329
H8_bpl
,
// Branch if plus
8330
H8_bmi
,
// Branch if minus
8331
H8_bge
,
// Branch if greates or equal
8332
H8_blt
,
// Branch if less
8333
H8_bgt
,
// Branch if greater
8334
H8_ble
,
// Branch if less or equal
8335
H8_bclr
,
// Bit clear
8336
H8_biand
,
// Bit invert AND
8337
H8_bild
,
// Bit invert load
8338
H8_bior
,
// Bit invert OR
8339
H8_bist
,
// Bit invert store
8340
H8_bixor
,
// Bit invert XOR
8341
H8_bld
,
// Bit load
8342
H8_bnot
,
// Bit NOT
8343
H8_bor
,
// Bit OR
8344
H8_bset
,
// Bit set
8345
H8_bsr
,
// Branch to subroutine
8346
H8_bst
,
// Bit store
8347
H8_btst
,
// Bit test
8348
H8_bxor
,
// Bit XOR
8349
H8_clrmac
,
// Clear MAC register
8350
H8_cmp
,
// Compare
8351
H8_daa
,
// Decimal adjust add
8352
H8_das
,
// Decimal adjust subtract
8353
H8_dec
,
// Decrement
8354
H8_divxs
,
// Divide extended as signed
8355
H8_divxu
,
// Divide extended as unsigned
8356
H8_eepmov
,
// Move data to EEPROM
8357
H8_exts
,
// Extend as signed
8358
H8_extu
,
// Extend as unsigned
8359
H8_inc
,
// Increment
8360
H8_jmp
,
// Jump
8361
H8_jsr
,
// Jump to subroutine
8362
H8_ldc
,
// Load to control register
8363
H8_ldm
,
// Load to multiple registers
8364
H8_ldmac
,
// Load to MAC register
8365
H8_mac
,
// Multiply and accumulate
8366
H8_mov
,
// Move data
8367
H8_movfpe
,
// Move from peripheral with E clock
8368
H8_movtpe
,
// Move to peripheral with E clock
8369
H8_mulxs
,
// Multiply extend as signed
8370
H8_mulxu
,
// Multiply extend as unsigned
8371
H8_neg
,
// Negate
8372
H8_nop
,
// No operation
8373
H8_not
,
// Logical complement
8374
H8_or
,
// Logical OR
8375
H8_orc
,
// Logical OR with control register
8376
H8_pop
,
// Pop data from stack
8377
H8_push
,
// Push data on stack
8378
H8_rotl
,
// Rotate left
8379
H8_rotr
,
// Rotate right
8380
H8_rotxl
,
// Rotate with extend carry left
8381
H8_rotxr
,
// Rotate with extend carry right
8382
H8_rte
,
// Return from exception
8383
H8_rts
,
// Return from subroutine
8384
H8_shal
,
// Shift arithmetic left
8385
H8_shar
,
// Shift arithmetic right
8386
H8_shll
,
// Shift logical left
8387
H8_shlr
,
// Shift logical right
8388
H8_sleep
,
// Power down mode
8389
H8_stc
,
// Store from control register
8390
H8_stm
,
// Store from multiple registers
8391
H8_stmac
,
// Store from MAC register
8392
H8_sub
,
// Subtract binary
8393
H8_subs
,
// Subtract with sign extension
8394
H8_subx
,
// Subtract with extend carry
8395
H8_tas
,
// Test and set
8396
H8_trapa
,
// Trap always
8397
H8_xor
,
// Logical XOR
8398
H8_xorc
,
// Logical XOR with control register
8399
// H8SX
8400
H8_rtel
,
// Returns from an exception, restoring data to multiple general registers
8401
H8_rtsl
,
// Returns from a subroutine, restoring data to multiple general registers
8402
H8_movmd
,
// Transfers a data block
8403
H8_movsd
,
// Transfers a data block with zero detection
8404
H8_bras
,
// Branch always after the next instruction (delay slot)
8405
H8_movab
,
// MOVe effective Address/B
8406
H8_movaw
,
// MOVe effective Address/W
8407
H8_moval
,
// MOVe effective Address/L
8408
H8_bsetne
,
// Bit SET if Not Equal
8409
H8_bseteq
,
// Bit SET if EQual
8410
H8_bclrne
,
// Bit CLeaR if Not Equal
8411
H8_bclreq
,
// Bit CLeaR if Equal
8412
H8_bstz
,
// Bit STore Zero flag
8413
H8_bistz
,
// Bit Invert STore Zero flag
8414
H8_bfld
,
// Bit Field LoaD
8415
H8_bfst
,
// Bit Field STore
8416
H8_muls
,
// MULtiply as Signed
8417
H8_divs
,
// DIVide as Signed
8418
H8_mulu
,
// MULtiply as Unsigned
8419
H8_divu
,
// DIVide as Unsigned
8420
H8_mulsu
,
// MULtiply as Signed
8421
H8_muluu
,
// MULtiply as Unsigned
8422
H8_brabc
,
// BRAnch if Bit Cleared
8423
H8_brabs
,
// BRAnch if Bit Set
8424
H8_bsrbc
,
// Branch to SubRoutine if Bit Cleared
8425
H8_bsrbs
,
// Branch to SubRoutine if Bit Set
8426
H8_last
,
8427
};
8428
/*
8429
* Interactive disassembler (IDA).
8430
* Copyright (c) 1990-2026 Hex-Rays
8431
* ALL RIGHTS RESERVED.
8432
*
8433
*/
8434
enum
8435
{
8436
PIC_null
= 0,
// Unknown Operation
8437
// BYTE-ORIENTED FILE REGISTER OPERATIONS
8438
PIC_addwf
,
// Add W and f
8439
PIC_andwf
,
// AND W with f
8440
PIC_clrf
,
// Clear f
8441
PIC_clrw
,
// Clear W
8442
PIC_comf
,
// Complement f
8443
PIC_decf
,
// Decrement f
8444
PIC_decfsz
,
// Decrement f, Skip if 0
8445
PIC_incf
,
// Increment f
8446
PIC_incfsz
,
// Increment f, Skip if 0
8447
PIC_iorwf
,
// Inclusive OR W with f
8448
PIC_movf
,
// Move f
8449
PIC_movwf
,
// Move W to f
8450
PIC_nop
,
// No Operation
8451
PIC_rlf
,
// Rotate Left f through Carry
8452
PIC_rrf
,
// Rotate Right f through Carry
8453
PIC_subwf
,
// Subtract W from f
8454
PIC_swapf
,
// Swap nibbles in f
8455
PIC_xorwf
,
// Exclusive OR W with f
8456
// BIT-ORIENTED FILE REGISTER OPERATIONS
8457
PIC_bcf
,
// Bit Clear f
8458
PIC_bsf
,
// Bit Set f
8459
PIC_btfsc
,
// Bit Test f, Skip if Clear
8460
PIC_btfss
,
// Bit Test f, Skip if Set
8461
// LITERAL AND CONTROL OPERATIONS
8462
PIC_addlw
,
// Add literal and W
8463
PIC_andlw
,
// AND literal with W
8464
PIC_call
,
// Call subroutine
8465
PIC_clrwdt
,
// Clear Watchdog Timer
8466
PIC_goto
,
// Go to address
8467
PIC_iorlw
,
// Inclusive OR literal with W
8468
PIC_movlw
,
// Move literal to W
8469
PIC_retfie
,
// Return from interrupt
8470
PIC_retlw
,
// Return with literal in W
8471
PIC_return
,
// Return from Subroutine
8472
PIC_sleep
,
// Go into standby mode
8473
PIC_sublw
,
// Subtract W from literal
8474
PIC_xorlw
,
// Exclusive OR literal with W
8475
// ADDITIONAL INSTRUCTIONS TO MAINTAIN COMPITIBILITY WITH 12C5xx,16C5x
8476
PIC_option
,
// Load OPTION register
8477
PIC_tris
,
// Load TRIS Register
8478
// MACROS
8479
PIC_movfw
,
// Move Contents of File Reg to W
8480
PIC_tstf
,
// Test Contents of File Register
8481
PIC_negf
,
// Negate File Register Contents
8482
PIC_b
,
// Branch to Address
8483
PIC_clrc
,
// Clear Carry
8484
PIC_clrdc
,
// Clear Digit Carry
8485
PIC_clrz
,
// Clear Zero
8486
PIC_setc
,
// Set Carry
8487
PIC_setdc
,
// Set Digit Carry
8488
PIC_setz
,
// Set Zero
8489
PIC_skpc
,
// Skip on Carry
8490
PIC_skpdc
,
// Skip on Digit Carry
8491
PIC_skpnc
,
// Skip on No Carry
8492
PIC_skpndc
,
// Skip on No Digit Carry
8493
PIC_skpnz
,
// Skip on No Zero
8494
PIC_skpz
,
// Skip on Zero
8495
PIC_bc
,
// Branch on Carry to Address k
8496
PIC_bdc
,
// Branch on Digit Carry to k
8497
PIC_bnc
,
// Branch on No Carry to k
8498
PIC_bndc
,
// Branch on No Digit Carry to k
8499
PIC_bnz
,
// Branch on No Zero to Address
8500
PIC_bz
,
// Branch on Zero to Address k
8501
PIC_addcf
,
// Add Carry to File Register
8502
PIC_adddcf
,
// Add Digit to File Register
8503
PIC_subcf
,
// Subtract Carry from File Reg
8504
// ADDITIONAL INSTRUCTIONS FOR 18Cxx
8505
// BYTE-ORIENTED FILE REGISTER OPERATIONS
8506
PIC_addwf3
,
// Add W and f
8507
PIC_addwfc3
,
// Add W and Carry to f
8508
PIC_andwf3
,
// AND W with f
8509
PIC_clrf2
,
// Clear f
8510
PIC_comf3
,
// Complement f
8511
PIC_cpfseq2
,
// Compare f with W, Skip if ==
8512
PIC_cpfsgt2
,
// Compare f with W, Skip if >
8513
PIC_cpfslt2
,
// Compare f with W, Skip if <
8514
PIC_decf3
,
// Decrement f
8515
PIC_decfsz3
,
// Decrement f, Skip if 0
8516
PIC_dcfsnz3
,
// Decrement f, Skip if not 0
8517
PIC_incf3
,
// Increment f
8518
PIC_incfsz3
,
// Increment f, Skip if 0
8519
PIC_infsnz3
,
// Increment f, Skip if not 0
8520
PIC_iorwf3
,
// Inclusive OR W with f
8521
PIC_movf3
,
// Move f
8522
PIC_movff2
,
// Move fs to fd
8523
PIC_movwf2
,
// Move W to f
8524
PIC_mulwf2
,
// Multiply W with f
8525
PIC_negf2
,
// Negate f
8526
PIC_rlcf3
,
// Rotate Left f through Carry
8527
PIC_rlncf3
,
// Rotate Left f
8528
PIC_rrcf3
,
// Rotate Right f through Carry
8529
PIC_rrncf3
,
// Rotate Right f
8530
PIC_setf2
,
// Set f
8531
PIC_subfwb3
,
// Substract f from W with borrow
8532
PIC_subwf3
,
// Substract W from f
8533
PIC_subwfb3
,
// Substract W from f with borrow
8534
PIC_swapf3
,
// Swap nibbles in f
8535
PIC_tstfsz2
,
// Test f, Skip if 0
8536
PIC_xorwf3
,
// Exclusive OR W with f
8537
// BIT-ORIENTED FILE REGISTER OPERATIONS
8538
PIC_bcf3
,
// Bit Clear f
8539
PIC_bsf3
,
// Bit Set f
8540
PIC_btfsc3
,
// Bit Test f, Skip if Clear
8541
PIC_btfss3
,
// Bit Test f, Skip if Set
8542
PIC_btg3
,
// Bit Toggle f
8543
// CONTROL OPERATIONS
8544
PIC_bc1
,
// Branch if Carry
8545
PIC_bn1
,
// Branch if Negative
8546
PIC_bnc1
,
// Branch if not Carry
8547
PIC_bnn1
,
// Branch if not Negative
8548
PIC_bnov1
,
// Branch if not Overflow
8549
PIC_bnz1
,
// Branch if not Zero
8550
PIC_bov1
,
// Branch if Overflow
8551
PIC_bra1
,
// Branch unconditionally
8552
PIC_bz1
,
// Branch if Zero
8553
PIC_call2
,
// Call subroutine
8554
// PIC_clrwdt
8555
PIC_daw0
,
// Decimal Adjust W
8556
// PIC_goto
8557
// PIC_nop
8558
// PIC_nop
8559
PIC_pop0
,
// Pop top of return stack
8560
PIC_push0
,
// Push top of return stack
8561
PIC_rcall1
,
// Relative Call subroutine
8562
PIC_reset0
,
// Software device Reset
8563
PIC_retfie1
,
// Return from interrupt enable
8564
// PIC_retlw
8565
PIC_return1
,
// Return from Subroutine
8566
// PIC_sleep
8567
// LITERAL OPERATIONS
8568
// PIC_addlw
8569
// PIC_andlw
8570
// PIC_iorlw
8571
PIC_lfsr2
,
// Move literal to FSR
8572
PIC_movlb1
,
// Move literal to BSR
8573
// PIC_movlw
8574
PIC_mullw1
,
// Multiply literal with W
8575
// PIC_retlw
8576
// PIC_sublw
8577
// PIC_xorlw
8578
// DATA MEMORY <-> PROGRAM MEMORY OPERATIONS
8579
PIC_tblrd0
,
// Table Read
8580
PIC_tblrd0p
,
// Table Read with post-increment
8581
PIC_tblrd0m
,
// Table Read with post-decrement
8582
PIC_tblrdp0
,
// Table Read with pre-increment
8583
PIC_tblwt0
,
// Table Write
8584
PIC_tblwt0p
,
// Table Write with post-increment
8585
PIC_tblwt0m
,
// Table Write with post-decrement
8586
PIC_tblwtp0
,
// Table Write with pre-increment
8587
// ADDITIONAL INSTRUCTIONS FOR 16F1x and 12F1x
8588
PIC_addwfc
,
// Add W and Carry to f
8589
PIC_movlp
,
// Move literal to PCLATH
8590
PIC_movlb
,
// Move literal to BSR
8591
PIC_addfsr
,
// Add Literal to FSRn
8592
PIC_asrf
,
// Arithmetic Right Shift
8593
PIC_lslf
,
// Logical Left Shift
8594
PIC_lsrf
,
// Logical Right Shift
8595
PIC_subwfb
,
// Subtract with Borrow W from f
8596
PIC_bra
,
// Relative Branch
8597
PIC_brw
,
// Relative Branch with W
8598
PIC_callw
,
// Call Subroutine with W
8599
PIC_reset
,
// Software device Reset
8600
PIC_moviw
,
// Move INDFn to W
8601
PIC_movwi
,
// Move W to INDFn
8602
PIC_last
,
8603
};
8604
/*
8605
* Interactive disassembler (IDA).
8606
* Copyright (c) 1990-2026 Hex-Rays
8607
* ALL RIGHTS RESERVED.
8608
*
8609
*/
8610
enum
8611
{
8612
PIC16_null
= 0,
// Unknown Operation
8613
// Move Instructions
8614
PIC16_EXCH
,
// Exchange Wns and Wnd
8615
PIC16_MOV
,
// Move
8616
PIC16_SWAP
,
// Byte or Nibble Swap Wn
8617
PIC16_TBLRDH
,
// Table Read High
8618
PIC16_TBLRDL
,
// Table Read Low
8619
PIC16_TBLWTH
,
// Table Write High
8620
PIC16_TBLWTL
,
// Table Write Low
8621
// Only for PIC24E and dsPIC33E
8622
PIC16_MOVPAG
,
// Move to Page Register
8623
// Math Instructions
8624
PIC16_ADD
,
// Add
8625
PIC16_ADDC
,
// Add with carry
8626
PIC16_DAWB
,
// Decimal Adjust Wn
8627
PIC16_DEC
,
// Decrement
8628
PIC16_DEC2
,
// Decrement by 2
8629
PIC16_DIV
,
// Signed/Unsigned Integer Divide
8630
PIC16_INC
,
// Increment
8631
PIC16_INC2
,
// Increment by 2
8632
PIC16_MUL
,
// Integer Multiply
8633
PIC16_SE
,
// Sign-Extend Ws
8634
PIC16_SUB
,
// Subtract
8635
PIC16_SUBB
,
// Subtract with Borrow
8636
PIC16_SUBBR
,
// Subtract with Borrow
8637
PIC16_SUBR
,
// Subtract
8638
PIC16_ZE
,
// Zero - Extend Ws
8639
// Only for PIC24E and dsPIC33E
8640
PIC16_MULW
,
// Integer Multiply with 16-bit Result
8641
// Only for dsPIC
8642
PIC16_DIVF
,
// Fractional Divide
8643
// Logic Instructions
8644
PIC16_AND
,
// AND
8645
PIC16_CLR
,
// Clear f or WREG | Clear Wd
8646
PIC16_COM
,
// Complement f | Complement Ws
8647
PIC16_IOR
,
// Inclusive OR
8648
PIC16_NEG
,
// Negate f | Negate Ws
8649
PIC16_SETM
,
// Set f or WREG | Set Ws
8650
PIC16_XOR
,
// Exclusive OR
8651
// Rotate/Shift Instructions
8652
PIC16_ASR
,
// Arithmetic Shift Right
8653
PIC16_LSR
,
// Logical Shift Right
8654
PIC16_RLC
,
// Rotate Left through Carry
8655
PIC16_RLNC
,
// Rotate Left without Carry
8656
PIC16_RRC
,
// Rotate Right through Carry
8657
PIC16_RRNC
,
// Rotate Right without Carry
8658
PIC16_SL
,
// Shift Left
8659
// Bit Instructions
8660
PIC16_BCLR
,
// Bit Clear f | Bit Clear in Ws
8661
PIC16_BSET
,
// Bit Set f | Bit Set in Ws
8662
PIC16_BSW
,
// Bit Write in Ws
8663
PIC16_BTG
,
// Bit Toggle f | Bit Toggle in Ws
8664
PIC16_BTST
,
// Bit Test f | Bit Test in Ws
8665
PIC16_BTSTS
,
// Bit Test/Set f | Bit Test/Set in Ws
8666
PIC16_FBCL
,
// Find First Bit Change from Left
8667
PIC16_FF1L
,
// Find First One from Left
8668
PIC16_FF1R
,
// Find First One from Right
8669
// Compare/Skip and Compare/Branch Instructions
8670
PIC16_BTSC
,
// Bit Test, Skip if Clear
8671
PIC16_BTSS
,
// Bit Test, Skip if Set
8672
PIC16_CP
,
// Compare, Set Status Flags
8673
PIC16_CP0
,
// Compare, Set Status Flags
8674
PIC16_CPB
,
// Compare using Borrow, set Status Flags
8675
PIC16_CPSEQ
,
// Compare Wb with Wn, Skip if Equal (Wb = Wn)
8676
PIC16_CPSGT
,
// Signed Compare Wb with Wn, Skip if Greater Than (Wb > Wn)
8677
PIC16_CPSLT
,
// Signed Compare Wb with Wn, Skip if Less Than (Wb < Wn)
8678
PIC16_CPSNE
,
// Signed Compare Wb with Wn, Skip if Not Equal (Wb != Wn)
8679
// Only for PIC24E and dsPIC33E
8680
PIC16_CPBEQ
,
// Compare Wb with Wn, branch if =
8681
PIC16_CPBNE
,
// Compare Wb with Wn, Branch if Not Equal (Wb != Wn)
8682
PIC16_CPBGT
,
// Signed Compare Wb with Wn, Branch if Greater Than (Wb > Wn)
8683
PIC16_CPBLT
,
// Signed Compare Wb with Wn, Branch if Less Than (Wb < Wn)
8684
// Program Flow Instructions
8685
PIC16_BRA
,
// Branch unconditionally/conditionally
8686
PIC16_CALL
,
// Call Subroutine | Call Indirect Subroutine
8687
PIC16_GOTO
,
// Unconditional Jump
8688
PIC16_RCALL
,
// Relative Call | Relative Call
8689
PIC16_REPEAT
,
// Repeat next instruction
8690
PIC16_RETFIE
,
// Return from Interrupt
8691
PIC16_RETLW
,
// Return with Literal in Wn
8692
PIC16_RETURN
,
// Return
8693
// Only for dsPIC
8694
PIC16_DO
,
// Initialize Hardware Loop
8695
// Shadow/Stack Instructions
8696
PIC16_LNK
,
// Allocate Stack Frame
8697
PIC16_POP
,
// Pop TOS | Pop Shadow Registers
8698
PIC16_PUSH
,
// Push to TOS | Push Shadow Registers
8699
PIC16_ULNK
,
// De-allocate Stack Frame
8700
// Control Instructions
8701
PIC16_CLRWDT
,
// Clear Watchdog Timer
8702
PIC16_DISI
,
// Disable Interrupts Temporarily
8703
PIC16_NOP
,
// No operation
8704
PIC16_NOPR
,
// No operation
8705
PIC16_PWRSAV
,
// Enter Power Saving Mode
8706
PIC16_RESET
,
// Reset
8707
// DSP Instructions [Only for dsPIC30F, dsPIC33F and dsPIC33E]
8708
PIC16_LAC
,
// Load Accumulator
8709
PIC16_SAC
,
// Store Accumulator
8710
PIC16_SFTAC
,
// Arithmetic Shift Accumulator
8711
PIC16_CLR1
,
// Clear Accumulator, Prefetch Operands
8712
PIC16_ED
,
// Euclidean Distance (No Accumulate)
8713
PIC16_EDAC
,
// Euclidean Distance
8714
PIC16_MAC
,
// Multiply and Accumulate
8715
PIC16_MOVSAC
,
// Prefetch Operands and Store Accumulator
8716
PIC16_MPY
,
// Multiply to Accumulator
8717
PIC16_MSC
,
// Multiply and Subtract from Accumulator
8718
// ICD instructions
8719
PIC16_BREAK
,
// ICD Break
8720
PIC16_URUN
,
// ICD Run
8721
PIC16_SSTEP
,
// ICD Single Step
8722
PIC16_FEX
,
// ICD Execute
8723
PIC16_last
,
8724
};
8725
/*
8726
* Interactive disassembler (IDA).
8727
* Copyright (c) 1990-2026 Hex-Rays
8728
* ALL RIGHTS RESERVED.
8729
*
8730
*/
8731
enum
8732
{
8733
SPARC_null
= 0,
// Unknown Operation
8734
// SPARC V9 instructions
8735
SPARC_add
,
// Add
8736
SPARC_addcc
,
// Add and modify condition codes
8737
SPARC_addc
,
// Add with carry
8738
SPARC_addccc
,
// Add with carry and modify condition codes
8739
SPARC_and
,
// And
8740
SPARC_andcc
,
// And and modify condition codes
8741
SPARC_andn
,
// And not
8742
SPARC_andncc
,
// And not (and modify condition codes)
8743
SPARC_b
,
// Branch on integer condition codes
8744
SPARC_bp
,
// Branch on integer condition codes with prediction
8745
SPARC_bpr
,
// Branch on contents of integer register with prediction
8746
SPARC_call
,
// Call and link
8747
SPARC_casa
,
// Compare and swap word in alternate space
8748
SPARC_casxa
,
// Compare and swap doubleword in alternate space
8749
SPARC_done
,
// Return from trap
8750
SPARC_fabs
,
// Floating-point absolute value
8751
SPARC_fadd
,
// Floating-point add
8752
SPARC_fbp
,
// Branch on floating-point condition codes with prediction
8753
SPARC_fb
,
// Branch on floating-point condition codes
8754
SPARC_fcmp
,
// Floating-point compare
8755
SPARC_fcmpe
,
// Floating-point compare (exception if unordered)
8756
SPARC_fdiv
,
// Floating-point divide
8757
SPARC_fdmulq
,
// Floating-point multiply double to quad
8758
SPARC_flush
,
// Flush instruction memory
8759
SPARC_flushw
,
// Flush register windows
8760
SPARC_fmov
,
// Floating-point move
8761
SPARC_fmovcc
,
// Conditional floating-point move
8762
SPARC_fmovr
,
// Move floating-point register if integer register contents satisfy condition
8763
SPARC_fmul
,
// Floating-point multiply
8764
SPARC_fneg
,
// Floating-point negate
8765
SPARC_fsmuld
,
// Floating-point multiply single to double
8766
SPARC_fsqrt
,
// Floating-point square root
8767
SPARC_fsub
,
// Floating-point subtract
8768
SPARC_fstox
,
// Convert single floating point to 64-bit integer
8769
SPARC_fdtox
,
// Convert doublee floating point to 64-bit integer
8770
SPARC_fqtox
,
// Convert quad floating point to 64-bit integer
8771
SPARC_fxtos
,
// Convert 64-bit integer to single floating point
8772
SPARC_fxtod
,
// Convert 64-bit integer to double floating point
8773
SPARC_fxtoq
,
// Convert 64-bit integer to quad floating point
8774
SPARC_fitos
,
// Convert 32-bit integer to single floating point
8775
SPARC_fdtos
,
// Convert single floating point to single floating point
8776
SPARC_fqtos
,
// Convert quade floating point to single floating point
8777
SPARC_fitod
,
// Convert 32-bit integer to double floating point
8778
SPARC_fstod
,
// Convert single floating point to double floating point
8779
SPARC_fqtod
,
// Convert quade floating point to double floating point
8780
SPARC_fitoq
,
// Convert 32-bit integer to quad floating point
8781
SPARC_fstoq
,
// Convert single floating point to quad floating point
8782
SPARC_fdtoq
,
// Convert quade floating point to quad floating point
8783
SPARC_fstoi
,
// Convert single floating point to 32-bit integer
8784
SPARC_fdtoi
,
// Convert doublee floating point to 32-bit integer
8785
SPARC_fqtoi
,
// Convert quad floating point to 32-bit integer
8786
SPARC_illtrap
,
// Illegal instruction
8787
SPARC_impdep1
,
// Implementation-dependent instruction
8788
SPARC_impdep2
,
// Implementation-dependent instruction
8789
SPARC_jmpl
,
// Jump and link
8790
SPARC_ldd
,
// Load doubleword
8791
SPARC_ldda
,
// Load doubleword from alternate space
8792
SPARC_lddf
,
// Load double floating-point
8793
SPARC_lddfa
,
// Load double floating-point from alternate space
8794
SPARC_ldf
,
// Load floating-point
8795
SPARC_ldfa
,
// Load floating-point from alternate space
8796
SPARC_ldfsr
,
// Load floating-point state register lower
8797
SPARC_ldqf
,
// Load quad floating-point
8798
SPARC_ldqfa
,
// Load quad floating-point from alternate space
8799
SPARC_ldsb
,
// Load signed byte
8800
SPARC_ldsba
,
// Load signed byte from alternate space
8801
SPARC_ldsh
,
// Load signed halfword
8802
SPARC_ldsha
,
// Load signed halfword from alternate space
8803
SPARC_ldstub
,
// Load-store unsigned byte
8804
SPARC_ldstuba
,
// Load-store unsigned byte in alternate space
8805
SPARC_ldsw
,
// Load signed word
8806
SPARC_ldswa
,
// Load signed word from alternate space
8807
SPARC_ldub
,
// Load unsigned byte
8808
SPARC_lduba
,
// Load unsigned byte from alternate space
8809
SPARC_lduh
,
// Load unsigned halfword
8810
SPARC_lduha
,
// Load unsigned halfword from alternate space
8811
SPARC_lduw
,
// Load unsigned word
8812
SPARC_lduwa
,
// Load unsigned word from alternate space
8813
SPARC_ldx
,
// Load extended
8814
SPARC_ldxa
,
// Load extended from alternate space
8815
SPARC_ldxfsr
,
// Load extended floating-point state register
8816
SPARC_membar
,
// Memory barrier
8817
SPARC_mov
,
// Move integer register if condition is satisfied
8818
SPARC_movr
,
// Move integer register on contents of integer register
8819
SPARC_mulscc
,
// Multiply step and modify condition codes
8820
SPARC_mulx
,
// Multiply 64-bit integers
8821
SPARC_nop
,
// No operation
8822
SPARC_or
,
// Inclusive-or
8823
SPARC_orcc
,
// Inclusive-or (and modify condition codes)
8824
SPARC_orn
,
// Inclusive-or not
8825
SPARC_orncc
,
// Inclusive-or not (and modify condition codes)
8826
SPARC_popc
,
// Population count
8827
SPARC_prefetch
,
// Prefetch data
8828
SPARC_prefetcha
,
// Prefetch data from alternate space
8829
SPARC_rd
,
// Read state register
8830
SPARC_rdpr
,
// Read privileged register
8831
SPARC_restore
,
// Restore caller's window
8832
SPARC_restored
,
// Window has been restored
8833
SPARC_retry
,
// Return from trap and retry
8834
SPARC_return
,
// Return
8835
SPARC_save
,
// Save caller's window
8836
SPARC_saved
,
// Window has been saved
8837
SPARC_sdiv
,
// 32-bit signed integer divide
8838
SPARC_sdivcc
,
// 32-bit signed integer divide and modify condition codes
8839
SPARC_sdivx
,
// 64-bit signed integer divide
8840
SPARC_sethi
,
// Set high 22 bits of low word of integer register
8841
SPARC_sir
,
// Software-initiated reset
8842
SPARC_sll
,
// Shift left logical
8843
SPARC_sllx
,
// Shift left logical, extended
8844
SPARC_smul
,
// Signed integer multiply
8845
SPARC_smulcc
,
// Signed integer multiply (and modify condition codes)
8846
SPARC_sra
,
// Shift right arithmetic
8847
SPARC_srax
,
// Shift right arithmetic, extended
8848
SPARC_srl
,
// Shift right logical
8849
SPARC_srlx
,
// Shift right logical, extended
8850
SPARC_stb
,
// Store byte
8851
SPARC_stba
,
// Store byte into alternate space
8852
SPARC_stbar
,
// Store barrier
8853
SPARC_std
,
// Store doubleword
8854
SPARC_stda
,
// Store doubleword into alternate space
8855
SPARC_stdf
,
// Store double floating-point
8856
SPARC_stdfa
,
// Store double floating-point into alternate space
8857
SPARC_stf
,
// Store floating-point
8858
SPARC_stfa
,
// Store floating-point into alternate space
8859
SPARC_stfsr
,
// Store floating-point state register
8860
SPARC_sth
,
// Store halfword
8861
SPARC_stha
,
// Store halfword into alternate space
8862
SPARC_stqf
,
// Store quad floating-point
8863
SPARC_stqfa
,
// Store quad floating-point into alternate space
8864
SPARC_stw
,
// Store word
8865
SPARC_stwa
,
// Store word into alternate space
8866
SPARC_stx
,
// Store extended
8867
SPARC_stxa
,
// Store extended into alternate space
8868
SPARC_stxfsr
,
// Store extended floating-point state register
8869
SPARC_sub
,
// Subtract
8870
SPARC_subcc
,
// Subtract and modify condition codes
8871
SPARC_subc
,
// Subtract with carry
8872
SPARC_subccc
,
// Subtract with carry and modify condition codes
8873
SPARC_swap
,
// Swap integer register with memory
8874
SPARC_swapa
,
// Swap integer register with memory in alternate space
8875
SPARC_taddcc
,
// Tagged add and modify condition codes
8876
SPARC_taddcctv
,
// Tagged add and modify condition codes (trap on overflow)
8877
SPARC_tsubcc
,
// Tagged subtract and modify condition codes
8878
SPARC_tsubcctv
,
// Tagged subtract and modify condition codes (trap on overflow)
8879
SPARC_t
,
// Trap on integer condition codes
8880
SPARC_udiv
,
// Unsigned integer divide
8881
SPARC_udivcc
,
// Unsigned integer divide and modify condition codes
8882
SPARC_udivx
,
// 64-bit unsigned integer divide
8883
SPARC_umul
,
// Unsigned integer multiply
8884
SPARC_umulcc
,
// Unsigned integer multiply and modify condition codes
8885
SPARC_wr
,
// Write Y register
8886
SPARC_wrpr
,
// Write privileged register
8887
SPARC_xnor
,
// Exclusive-nor
8888
SPARC_xnorcc
,
// Exclusive-nor (and modify condition codes)
8889
SPARC_xor
,
// Exclusive-or
8890
SPARC_xorcc
,
// Exclusive-or (and modify condition codes)
8891
// Synthetic instructions
8892
SPARC_cmp
,
// Compare
8893
SPARC_jmp
,
// Jump
8894
SPARC_iprefetch
,
// Instruction prefetch
8895
SPARC_tst
,
// Test
8896
SPARC_ret
,
// Return from subroutine
8897
SPARC_retl
,
// Return from leaf subroutine
8898
SPARC_setuw
,
// Load unsigned constant
8899
SPARC_setsw
,
// Load signed constant
8900
SPARC_setx
,
// Load 64-bit constant
8901
SPARC_signx
,
// Sign-extend 32-bit value to 64 bits
8902
SPARC_not
,
// One's complement
8903
SPARC_neg
,
// Two's complement
8904
SPARC_cas
,
// Compare and swap
8905
SPARC_casl
,
// Compare and swap, little endian
8906
SPARC_casx
,
// Compare and swap extended
8907
SPARC_casxl
,
// Compare and swap extended, little endian
8908
SPARC_inc
,
// Increment
8909
SPARC_inccc
,
// Increment and modify condition codes
8910
SPARC_dec
,
// Deccrement
8911
SPARC_deccc
,
// Decrement and modify condition codes
8912
SPARC_btst
,
// Bit test
8913
SPARC_bset
,
// Bit set
8914
SPARC_bclr
,
// Bit clear
8915
SPARC_btog
,
// Bit toggle
8916
SPARC_clr
,
// Clear
8917
SPARC_clrb
,
// Clear byte
8918
SPARC_clrh
,
// Clear halfword
8919
SPARC_clrx
,
// Clear extended word
8920
SPARC_clruw
,
// Clear upper word
8921
SPARC_pseudo_mov
,
// Move register
8922
// UtlraSPARC II extensions
8923
SPARC_alignaddress
,
// Calculate address for misaligned data access
8924
SPARC_array
,
// 3-D address to blocked byte address conversion
8925
SPARC_edge
,
// Edge boundary processing {little-endian}
8926
SPARC_faligndata
,
// Perform data alignment for misaligned data
8927
SPARC_fandnot1
,
// Negated src1 AND src2 (single precision)
8928
SPARC_fandnot2
,
// src1 AND negated src2 (single precision)
8929
SPARC_fand
,
// Logical AND (single precision)
8930
SPARC_fcmpeq
,
// Four 16-bit/two 32-bit compare; set integer dest if src1 = src2
8931
SPARC_fcmpgt
,
// Four 16-bit/two 32-bit compare; set integer dest if src1 > src2
8932
SPARC_fcmple
,
// Four 16-bit/two 32-bit compare; set integer dest if src1 <= src2
8933
SPARC_fcmpne
,
// Four 16-bit/two 32-bit compare; set integer dest if src1 != src2
8934
SPARC_fexpand
,
// Four 8-bit to 16-bit expands
8935
SPARC_fmul8sux16
,
// Signed upper 8/16-bit partitioned product of corresponding components
8936
SPARC_fmul8ulx16
,
// Unsigned lower 8/16-bit partitioned product of corresponding components
8937
SPARC_fmul8x16
,
// 8/16-bit partitioned product of corresponding components
8938
SPARC_fmul8x16al
,
// 8/16-bit lower a partitioned product of 4 components
8939
SPARC_fmul8x16au
,
// 8/16-bit upper a partitioned product of 4 components
8940
SPARC_fmuld8sux16
,
// Signed upper 8/16-bit multiply 32-bit partitioned product of components
8941
SPARC_fmuld8ulx16
,
// Unsigned lower 8/16-bit multiply 32-bit partitioned product of components
8942
SPARC_fnand
,
// Logical NAND (single precision)
8943
SPARC_fnor
,
// Logical NOR (single precision)
8944
SPARC_fnot1
,
// Negate (1's complement) src1 (single precision)
8945
SPARC_fnot2
,
// Negate (1's complement) src2 (single precision)
8946
SPARC_fone
,
// One fill (single precision)
8947
SPARC_fornot1
,
// Negated src1 OR src2 (single precision)
8948
SPARC_fornot2
,
// src1 OR negated src2 (single precision)
8949
SPARC_for
,
// Logical OR (single precision)
8950
SPARC_fpackfix
,
// Two 32-bit to 16-bit fixed pack
8951
SPARC_fpack
,
// Four 16-bit/two 32-bit pixel pack
8952
SPARC_fpadd
,
// Four 16-bit/two 32-bit partitioned add (single precision)
8953
SPARC_fpmerge
,
// Two 32-bit pixel to 64-bit pixel merge
8954
SPARC_fpsub
,
// Four 16-bit/two 32-bit partitioned subtract (single precision)
8955
SPARC_fsrc1
,
// Copy src1 (single precision)
8956
SPARC_fsrc2
,
// Copy src2 (single precision)
8957
SPARC_fxnor
,
// Logical XNOR (single precision)
8958
SPARC_fxor
,
// Logical XOR (single precision)
8959
SPARC_fzero
,
// Zero fill (single precision)
8960
SPARC_pdist
,
// Distance between 8 8-bit components
8961
SPARC_shutdown
,
// Power-down support
8962
// SPARC_stdfa, // 8/16-bit store from a double precision FP register
8963
// V8 only instructions
8964
SPARC_rett
,
// Return from trap
8965
// UA 2005 instructions
8966
SPARC_bmask
,
// Byte Mask
8967
SPARC_bshuffle
,
// Byte Shuffle
8968
SPARC_edgen
,
// Edge boundary processing (no CC) {little-endian}
8969
SPARC_rdhpr
,
// Read Hyperprivileged Register
8970
SPARC_wrhpr
,
// Write Hyperprivileged Register
8971
SPARC_siam
,
// Set Interval Arithmetic Mode
8972
SPARC_last
,
8973
};
8974
/*
8975
* Interactive disassembler (IDA).
8976
* Copyright (c) 1990-2026 Hex-Rays
8977
* ALL RIGHTS RESERVED.
8978
*
8979
*/
8980
enum
8981
{
8982
HPPA_null
= 0,
// Unknown Operation
8983
HPPA_add
,
// Add
8984
HPPA_addb
,
// Add and Branch
8985
HPPA_addi
,
// Add to Immediate
8986
HPPA_addib
,
// Add Immediate and Branch
8987
HPPA_addil
,
// Add to Immediate Left
8988
HPPA_and
,
// AND
8989
HPPA_andcm
,
// AND complement
8990
HPPA_b
,
// Branch
8991
HPPA_bb
,
// Branch on Bit
8992
HPPA_be
,
// Branch External
8993
HPPA_blr
,
// Branch and Link Register
8994
HPPA_break
,
// Break
8995
HPPA_bv
,
// Branch Vectored
8996
HPPA_bve
,
// Branch Vectored External
8997
HPPA_cldd
,
// Coprocessor Load Doubleword
8998
HPPA_cldw
,
// Coprocessor Load Word
8999
HPPA_clrbts
,
// Clear Branch Target Stack
9000
HPPA_cmpb
,
// Compare and Branch
9001
HPPA_cmpclr
,
// Compare and Clear
9002
HPPA_cmpib
,
// Compare Immediate and Branch
9003
HPPA_cmpiclr
,
// Compare Immediate and Clear
9004
HPPA_copr
,
// Coprocessor Operation
9005
HPPA_cstd
,
// Coprocessor Store Doubleword
9006
HPPA_cstw
,
// Coprocessor Store Word
9007
HPPA_dcor
,
// Decimal Correct
9008
HPPA_depd
,
// Deposit Doubleword
9009
HPPA_depdi
,
// Deposit Doubleword Immediate
9010
HPPA_depw
,
// Deposit Word
9011
HPPA_depwi
,
// Deposit Word Immediate
9012
HPPA_diag
,
// Diagnose
9013
HPPA_ds
,
// Divide Step
9014
HPPA_extrd
,
// Extract Doubleword
9015
HPPA_extrw
,
// Extract Word
9016
HPPA_fdc
,
// Flush Data Cache
9017
HPPA_fdce
,
// Flush Data Cache Entry
9018
HPPA_fic
,
// Flush Instruction Cache
9019
HPPA_fice
,
// Flush Instruction Cache Entry
9020
HPPA_hadd
,
// Halfword Parallel Add
9021
HPPA_havg
,
// Halfword Parallel Average
9022
HPPA_hshl
,
// Halfword Parallel Shift Left
9023
HPPA_hshladd
,
// Halfword Parallel Shift Left and Add
9024
HPPA_hshr
,
// Halfword Parallel Shift Right
9025
HPPA_hshradd
,
// Halfword Parallel Shift Right and Add
9026
HPPA_hsub
,
// Halfword Parallel Subtract
9027
HPPA_idtlbt
,
// Insert Data TLB Translation
9028
HPPA_iitlbt
,
// Insert Instruction TLB Translation
9029
HPPA_lci
,
// Load Coherence Index
9030
HPPA_ldb
,
// Load Byte
9031
HPPA_ldcd
,
// Load and Clear Doubleword
9032
HPPA_ldcw
,
// Load and Clear Word
9033
HPPA_ldd
,
// Load Doubleword
9034
HPPA_ldda
,
// Load Doubleword Absolute
9035
HPPA_ldh
,
// Load Halfword
9036
HPPA_ldil
,
// Load Immediate Left
9037
HPPA_ldo
,
// Load Offset
9038
HPPA_ldsid
,
// Load Space Identifier
9039
HPPA_ldw
,
// Load Word
9040
HPPA_ldwa
,
// Load Word Absolute
9041
HPPA_lpa
,
// Load Physical Address
9042
HPPA_mfctl
,
// Move From Control Register
9043
HPPA_mfia
,
// Move From Instruction Address
9044
HPPA_mfsp
,
// Move From Space Register
9045
HPPA_mixh
,
// Mix Halfwords
9046
HPPA_mixw
,
// Mix Words
9047
HPPA_movb
,
// Move and Branch
9048
HPPA_movib
,
// Move Immediate and Branch
9049
HPPA_mtctl
,
// Move To Control Register
9050
HPPA_mtsarcm
,
// Move To Shift Amount Register Complement
9051
HPPA_mtsm
,
// Move To System Mask
9052
HPPA_mtsp
,
// Move To Space Register
9053
HPPA_or
,
// Inclusive OR
9054
HPPA_pdc
,
// Purge Data Cache
9055
HPPA_pdtlb
,
// Purge Data TLB
9056
HPPA_pdtlbe
,
// Purge Data TLB Entry
9057
HPPA_permh
,
// Permute Halfwords
9058
HPPA_pitlb
,
// Purge Instruction TLB
9059
HPPA_pitlbe
,
// Purge Instruction TLB Entry
9060
HPPA_popbts
,
// Pop Branch Target Stack
9061
HPPA_probe
,
// Probe Access
9062
HPPA_probei
,
// Probe Access Immediate
9063
HPPA_pushbts
,
// Push Branch Target Stack
9064
HPPA_pushnom
,
// Push Nominated
9065
HPPA_rfi
,
// Return From Interruption
9066
HPPA_rsm
,
// Reset System Mask
9067
HPPA_shladd
,
// Shift Left and Add
9068
HPPA_shrpd
,
// Sihft Right Pair Doubleword
9069
HPPA_shrpw
,
// Sihft Right Pair Word
9070
HPPA_spop0
,
// Special Operation Zero
9071
HPPA_spop1
,
// Special Operation One
9072
HPPA_spop2
,
// Special Operation Two
9073
HPPA_spop3
,
// Special Operation Three
9074
HPPA_ssm
,
// Set System Mask
9075
HPPA_stb
,
// Store Byte
9076
HPPA_stby
,
// Store Bytes
9077
HPPA_std
,
// Store Doubleword
9078
HPPA_stda
,
// Store Doubleword Absolute
9079
HPPA_stdby
,
// Store Doubleword Bytes
9080
HPPA_sth
,
// Store Halfword
9081
HPPA_stw
,
// Store Word
9082
HPPA_stwa
,
// Store Word Absolute
9083
HPPA_sub
,
// Subtract
9084
HPPA_subi
,
// Subtract from Immediate
9085
HPPA_sync
,
// Synchronize Caches
9086
HPPA_syncdma
,
// Synchronize DMA
9087
HPPA_uaddcm
,
// Unit Add Complement
9088
HPPA_uxor
,
// Unit XOR
9089
HPPA_xor
,
// Exclusive OR
9090
// Floating point instructions
9091
HPPA_fabs
,
// Floating-Point Absolute Value
9092
HPPA_fadd
,
// Floating-Point Add
9093
HPPA_fcmp
,
// Floating-Point Compare
9094
HPPA_fcnv
,
// Floating-Point Convert
9095
HPPA_fcpy
,
// Floating-Point Copy
9096
HPPA_fdiv
,
// Floating-Point Divide
9097
HPPA_fid
,
// Floating-Point Identity
9098
HPPA_fldd
,
// Floating-Point Load Doubleword
9099
HPPA_fldw
,
// Floating-Point Load Word
9100
HPPA_fmpy
,
// Floating-Point Multiply
9101
HPPA_fmpyadd
,
// Floating-Point Multiply/Add
9102
HPPA_fmpyfadd
,
// Floating-Point Multiply Fused Add
9103
HPPA_fmpynfadd
,
// Floating-Point Multiply Negate Fused Add
9104
HPPA_fmpysub
,
// Floating-Point Multiply/Subtract
9105
HPPA_fneg
,
// Floating-Point Negate
9106
HPPA_fnegabs
,
// Floating-Point Negate Absolute Value
9107
HPPA_frem
,
// Floating-Point Remainder
9108
HPPA_frnd
,
// Floating-Point Round to Integer
9109
HPPA_fsqrt
,
// Floating-Point Square Root
9110
HPPA_fstd
,
// Floating-Point Store Doubleword
9111
HPPA_fstw
,
// Floating-Point Store Word
9112
HPPA_fsub
,
// Floating-Point Subtract
9113
HPPA_ftest
,
// Floating-Point Test
9114
HPPA_xmpyu
,
// Fixed-Point Multiply Unsigned
9115
// Performance Monitor Coprocessor
9116
HPPA_pmdis
,
// Performance Monitor Disable
9117
HPPA_pmenb
,
// Performance Monitor Enable
9118
// Macros
9119
HPPA_call
,
// Call Subroutine
9120
HPPA_ret
,
// Return From Subroutine
9121
HPPA_shld
,
// Shift Left Doubleword
9122
HPPA_shlw
,
// Shift Left Word
9123
HPPA_shrd
,
// Shift Right Doubleword
9124
HPPA_shrw
,
// Shift Right Word
9125
HPPA_ldi
,
// Load Immediate
9126
HPPA_copy
,
// Copy Register
9127
HPPA_mtsar
,
// Move To %SAR
9128
HPPA_nop
,
// No Operation
9129
HPPA_last
,
9130
};
9131
/*
9132
* Interactive disassembler (IDA).
9133
* Copyright (c) 1990-2026 Hex-Rays
9134
* ALL RIGHTS RESERVED.
9135
*
9136
*/
9137
enum
9138
{
9139
H8500_null
= 0,
// Unknown Operation
9140
// Data transfer
9141
H8500_mov_g
,
// B/W Move data
9142
H8500_mov_e
,
// B Move data
9143
H8500_mov_i
,
// W Move data
9144
H8500_mov_f
,
// B/W Move data
9145
H8500_mov_l
,
// B/W Move data
9146
H8500_mov_s
,
// B/W Move data
9147
H8500_ldm
,
// W Pop data from the stack to one or more registers
9148
H8500_stm
,
// W Push data from one or more registers onto the stack
9149
H8500_xch
,
// W Exchange data between two general registers
9150
H8500_swap
,
// B Exchange the upper and lower bytes in a general register
9151
H8500_movtpe
,
// B Transfer data from a general register to memory
9152
H8500_movfpe
,
// B Transfer data from memory to a general register
9153
// Arithmetic operations
9154
H8500_add_g
,
// B/W Addition
9155
H8500_add_q
,
// B/W Addition
9156
H8500_sub
,
// B/W Subtraction
9157
H8500_adds
,
// B/W Addition
9158
H8500_subs
,
// B/W Subtraction
9159
H8500_addx
,
// B/W Addition with carry
9160
H8500_subx
,
// B/W Subtraction with borrow
9161
H8500_dadd
,
// B Decimal addition
9162
H8500_dsub
,
// B Decimal subtraction
9163
H8500_mulxu
,
// B/W Unsigned multiplication
9164
H8500_divxu
,
// B/W Unsigned division
9165
H8500_cmp_g
,
// B/W Compare data
9166
H8500_cmp_e
,
// B Compare data
9167
H8500_cmp_i
,
// W Compare data
9168
H8500_exts
,
// B Convert byte to word by extending the sign bit
9169
H8500_extu
,
// B Convert byte to word data by padding with zero bits
9170
H8500_tst
,
// B/W Compare with 0
9171
H8500_neg
,
// B/W Negate
9172
H8500_clr
,
// B/W Make zero
9173
H8500_tas
,
// B Test and set
9174
// Logic Operations
9175
H8500_and
,
// B/W Logical AND
9176
H8500_or
,
// B/W Logical OR
9177
H8500_xor
,
// B/W Exclusive OR
9178
H8500_not
,
// B/W Bitwise NOT
9179
// Shift Operations
9180
H8500_shal
,
// B/W Arithmetic shift left
9181
H8500_shar
,
// B/W Arithmetic shift right
9182
H8500_shll
,
// B/W Logical shift left
9183
H8500_shlr
,
// B/W Logical shift right
9184
H8500_rotl
,
// B/W Rotate left
9185
H8500_rotr
,
// B/W Rotate right
9186
H8500_rotxl
,
// B/W Rotate through carry left
9187
H8500_rotxr
,
// B/W Rotate through carry right
9188
// Bit Manipulations
9189
H8500_bset
,
// B/W Test bit and set
9190
H8500_bclr
,
// B/W Test bit and clear
9191
H8500_bnot
,
// B/W Test bit and invert
9192
H8500_btst
,
// B/W Test bit
9193
// Branching Instructions
9194
H8500_bra
,
// Branch Always
9195
H8500_brn
,
// Branch Never
9196
H8500_bhi
,
// Branch if High (C|Z = 0)
9197
H8500_bls
,
// Branch if Low or Same (C|Z = 1)
9198
H8500_bcc
,
// Branch if Carry Clear (C = 0)
9199
H8500_bcs
,
// Branch if Carry Set (C = 1)
9200
H8500_bne
,
// Branch if Not Equal (Z = 0)
9201
H8500_beq
,
// Branch if Equal (Z = 1)
9202
H8500_bvc
,
// Branch if Overflow Clear (V = 0)
9203
H8500_bvs
,
// Branch if Overflow Set (V = 1)
9204
H8500_bpl
,
// Branch if Plus (N = 0)
9205
H8500_bmi
,
// Branch if Minus (N = 1)
9206
H8500_bge
,
// Branch if Greater or Equal (N^V = 0)
9207
H8500_blt
,
// Branch if Less Than (N^V = 1)
9208
H8500_bgt
,
// Branch if Greater Than (Z|(N^V) = 0)
9209
H8500_ble
,
// Branch if Less or Equal (Z|(N^V) = 1)
9210
H8500_jmp
,
// Branch unconditionally (same page)
9211
H8500_pjmp
,
// Branch unconditionally (specified page)
9212
H8500_bsr
,
// Branch to subroutine (same page)
9213
H8500_jsr
,
// Branch to subroutine (same page)
9214
H8500_pjsr
,
// Branch to subroutine (specified page)
9215
H8500_rts
,
// Return from subroutine (same page)
9216
H8500_prts
,
// Return from subroutine (different page)
9217
H8500_rtd
,
// Return from subroutine (same page) and adjust SP
9218
H8500_prtd
,
// Return from subroutine (different page) and adjust SP
9219
H8500_scb
,
// Control loop
9220
// System Control Instructions
9221
H8500_trapa
,
// Generate trap exception
9222
H8500_trap_vs
,
// Generate trap exception if the V bit is set
9223
H8500_rte
,
// Return from exception-handling routine
9224
H8500_link
,
// Create stack frame
9225
H8500_unlk
,
// Deallocate stack frame
9226
H8500_sleep
,
// Go to power-down state
9227
H8500_ldc
,
// B/W Move to control register
9228
H8500_stc
,
// B/W Move from control register
9229
H8500_andc
,
// B/W Logically AND control register
9230
H8500_orc
,
// B/W Logically OR control register
9231
H8500_xorc
,
// B/W Logically exclusive-OR control register
9232
H8500_nop
,
// No operation
9233
H8500_bpt
,
//
9234
H8500_last
,
9235
};
9236
enum
9237
{
9238
DSP56_null
= 0,
// Unknown Operation
9239
DSP56_abs
,
// Absolute Value
9240
DSP56_adc
,
// Add Long with Carry
9241
DSP56_add
,
// Addition
9242
DSP56_addl
,
// Shift Left and Add
9243
DSP56_addr
,
// Shift Right and Add
9244
DSP56_and
,
// Logical AND
9245
DSP56_andi
,
// AND Immediate to Control Register
9246
DSP56_asl
,
// Arithmetic Shift Left
9247
DSP56_asl4
,
// Arithmetic Shift Left 4
9248
DSP56_asr
,
// Arithmetic Shift Right
9249
DSP56_asr4
,
// Arithmetic Shift Right 4
9250
DSP56_asr16
,
// Arithmetic Shift Right 16
9251
DSP56_bfchg
,
// Test Bit Field and Change
9252
DSP56_bfclr
,
// Clear Bit Field
9253
DSP56_bfset
,
// Set Bit Field
9254
DSP56_bftsth
,
// Test Bit Field High
9255
DSP56_bftstl
,
// Test Bit Field Low
9256
DSP56_bcc
,
// Branch Conditionaly
9257
DSP56_bchg
,
// Bit Test and Change
9258
DSP56_bclr
,
// Bit Test and Clear
9259
DSP56_bra
,
// Branch Always
9260
DSP56_brclr
,
// Branch if Bit Clear
9261
DSP56_brkcc
,
// Exit Current DO Loop Conditionally
9262
DSP56_brset
,
// Branch if Bit Set
9263
DSP56_bscc
,
// Branch to Subroutine Conditionaly
9264
DSP56_bsclr
,
// Branch to Subroutine if Bit Clear
9265
DSP56_bset
,
// Bit Test and Set
9266
DSP56_bsr
,
// Branch to Subroutine
9267
DSP56_bsset
,
// Branch to Subroutine if Bit Set
9268
DSP56_btst
,
// Bit Test on Memory and Registers
9269
DSP56_chkaau
,
// Check address ALU result
9270
DSP56_clb
,
// Count Leading Bits
9271
DSP56_clr
,
// Clear an Operand
9272
DSP56_clr24
,
// Clear 24 MS-bits of Accumulator
9273
DSP56_cmp
,
// Compare
9274
DSP56_cmpm
,
// Compare Magnitude
9275
DSP56_cmpu
,
// Compare Unsigned
9276
DSP56_debug
,
// Enter Debug Mode
9277
DSP56_debugcc
,
// Enter Debug Mode Conditionally
9278
DSP56_dec
,
// Decrement by One
9279
DSP56_dec24
,
// Decrement 24 MS-bit of Accumulator
9280
DSP56_div
,
// Divide Iteration
9281
DSP56_dmac
,
// Double-Precision Multiply-Accumulate With Right Shift
9282
DSP56_do
,
// Start Hardware Loop
9283
DSP56_do_f
,
// Start Infinite Loop
9284
DSP56_dor
,
// Start PC-Relative Hardware Loop
9285
DSP56_dor_f
,
// Start PC-Relative Infinite Loop
9286
DSP56_enddo
,
// Exit from Hardware Loop
9287
DSP56_eor
,
// Logical Exclusive OR
9288
DSP56_extract
,
// Extract Bit Field
9289
DSP56_extractu
,
// Extract Unsigned Bit Field
9290
DSP56_ext
,
// Sign Extend Accumulator
9291
DSP56_ill
,
// Illegal Instruction
9292
DSP56_imac
,
// Integer Multiply-Accumulate
9293
DSP56_impy
,
// Integer Multiply
9294
DSP56_inc
,
// Increment by One
9295
DSP56_inc24
,
// Increment 24 MS-bit of Accumulator
9296
DSP56_insert
,
// Insert Bit Field
9297
DSP56_jcc
,
// Jump Conditionally
9298
DSP56_jclr
,
// Jump if Bit Clear
9299
DSP56_jmp
,
// Jump
9300
DSP56_jscc
,
// Jump to Subroutine Conditionally
9301
DSP56_jsclr
,
// Jump to Subroutine if Bit Clear
9302
DSP56_jset
,
// Jump if Bit Set
9303
DSP56_jsr
,
// Jump to Subroutine
9304
DSP56_jsset
,
// Jump to Subroutine if Bit Set
9305
DSP56_lra
,
// Load PC-Reliative Address
9306
DSP56_lsl
,
// Logical Shift Left
9307
DSP56_lsr
,
// Logical Shift Right
9308
DSP56_lua
,
// Load Updated Address
9309
DSP56_lea
,
// Load Updated Address
9310
DSP56_mac
,
// Signed Multiply-Accumulate
9311
DSP56_maci
,
// Signed Multiply-Accumulate With Immediate Operand
9312
DSP56_mac_s_u
,
// Mixed Multiply-Accumulate
9313
DSP56_macr
,
// Signed Multiply-Accumulate and Round
9314
DSP56_macri
,
// Signed Multiply-Accumulate and Round With Immediate Operand
9315
DSP56_max
,
// Transfer by Signed Value
9316
DSP56_maxm
,
// Transfer by Magnitude
9317
DSP56_merge
,
// Merge Two Half Words
9318
DSP56_move
,
// Move Data
9319
DSP56_movec
,
// Move Control Register
9320
DSP56_movei
,
// Move Immediate Short
9321
DSP56_movem
,
// Move Program Memory
9322
DSP56_movep
,
// Move Peripheral Data
9323
DSP56_moves
,
// Move Absolute Short
9324
DSP56_mpy
,
// Signed Multiply
9325
DSP56_mpyi
,
// Signed Multiply With Immediate Operand
9326
DSP56_mpy_s_u
,
// Mixed Multiply
9327
DSP56_mpyr
,
// Signed Multiply and Round
9328
DSP56_mpyri
,
// Signed Multiply and Round With Immediate Operand
9329
DSP56_neg
,
// Negate Accumulator
9330
DSP56_negc
,
// Negate Accumulator
9331
DSP56_nop
,
// No Operation
9332
DSP56_norm
,
// Norm Accumulator Iteration
9333
DSP56_normf
,
// Fast Accumulator Normalization
9334
DSP56_not
,
// Logical Complement
9335
DSP56_or
,
// Logical Inclusive OR
9336
DSP56_ori
,
// OR Immediate to Control Register
9337
DSP56_pflush
,
// Program Cache Flush
9338
DSP56_pflushun
,
// Program Cache Flush Unlocked Sectors
9339
DSP56_pfree
,
// Program Cache Global Unlock
9340
DSP56_plock
,
// Lock Instruction Cache Sector
9341
DSP56_plockr
,
// Lock Instruction Cache Relative Sector
9342
DSP56_punlock
,
// Unlock Instruction Cache Sector
9343
DSP56_punlockr
,
// Unlock Instruction Cache Relative Sector
9344
DSP56_rep
,
// Repeat Next Instruction
9345
DSP56_repcc
,
// Repeat Next Instruction
9346
DSP56_reset
,
// Reset On-Chip Peripheral Devices
9347
DSP56_rnd
,
// Round Accumulator
9348
DSP56_rol
,
// Rotate Left
9349
DSP56_ror
,
// Rotate Right
9350
DSP56_rti
,
// Return from Interrupt
9351
DSP56_rts
,
// Return from Subroutine
9352
DSP56_sbc
,
// Subtract Long with Carry
9353
DSP56_stop
,
// Stop Processing (Low-Power Standby)
9354
DSP56_sub
,
// Subtract
9355
DSP56_subl
,
// Shift Left and Subtract
9356
DSP56_subr
,
// Shift Right and Subtract
9357
DSP56_swap
,
// Swap Accumulator Words
9358
DSP56_tcc
,
// Transfer Conditionally
9359
DSP56_tfr
,
// Transfer Data ALU Register
9360
DSP56_tfr2
,
// Transfer Data ALU Register
9361
DSP56_tfr3
,
// Transfer Data ALU Register
9362
DSP56_trap
,
// Software Interrupt
9363
DSP56_trapcc
,
// Software Interrupt Conditionally
9364
DSP56_tst
,
// Test an Operand
9365
DSP56_tst2
,
// Test an Operand
9366
DSP56_vsl
,
// Viterbi Shift Left
9367
DSP56_wait
,
// Wait for Interrupt or DMA Request (Low-Power Standby)
9368
DSP56_zero
,
// Zero Extend Accumulator
9369
DSP56_swi
,
// Software Interrupt (only for 56000)
9370
DSP56_pmov
,
// Pseudo insn
9371
DSP56_last
,
9372
};
9373
enum
9374
{
9375
DSP96_null
= 0,
// Unknown Operation
9376
DSP96_abs
,
// Absolute Value
9377
DSP96_add
,
// Addition
9378
DSP96_addc
,
// Add with Carry
9379
DSP96_and
,
// Logical AND
9380
DSP96_andc
,
// AND Immediate with Complement
9381
DSP96_andi
,
// AND Immediate to Control Register
9382
DSP96_asl
,
// Arithmetic Shift Left
9383
DSP96_asr
,
// Arithmetic Shift Right
9384
DSP96_bcc
,
// Branch Conditionally (indirect)
9385
DSP96_bccd
,
// Branch Conditionally (direct)
9386
DSP96_bchg
,
// Bit Test and Change
9387
DSP96_bclr
,
// Bit Test and Clear
9388
DSP96_bfind
,
// Find Leading One
9389
DSP96_bra
,
// Branch Always
9390
DSP96_brclr
,
// Branch if Bit Clear
9391
DSP96_brset
,
// Branch if Bit Set
9392
DSP96_bscc
,
// Branch to Subroutine Conditionally (indirect)
9393
DSP96_bsccd
,
// Branch to Subroutine Conditionally (direct)
9394
DSP96_bsclr
,
// Branch to Subroutine if Bit Clear
9395
DSP96_bset
,
// Bit Test and Set
9396
DSP96_bsr
,
// Branch to Subroutine (indirect)
9397
DSP96_bsrd
,
// Branch to Subroutine (direct)
9398
DSP96_bsset
,
// Branch to Subroutine if Bit Set
9399
DSP96_btst
,
// Bit Test on Memory and Registers
9400
DSP96_clr
,
// Clear an Operand
9401
DSP96_cmp
,
// Compare
9402
DSP96_cmpg
,
// Graphics Compare with Trivial Accept.Reject Flags
9403
DSP96_debugcc
,
// Enter Debug Mode Conditionally
9404
DSP96_dec
,
// Decrement by One
9405
DSP96_do
,
// Start Hardware Loop
9406
DSP96_dor
,
// Start PC-Relative Hardware Loop
9407
DSP96_enddo
,
// Exit from Hardware Loop
9408
DSP96_eor
,
// Logical Exclusive OR
9409
DSP96_ext
,
// Sign Extend 16-Bit To 32-Bit
9410
DSP96_extb
,
// Sign Extend 8-Bit to 32-Bit
9411
DSP96_fabs
,
// Absolute Value
9412
DSP96_fadd
,
// Add
9413
DSP96_faddsub
,
// Add and Subtract
9414
DSP96_fbcc
,
// Branch Conditionally (Floating-Point Condition) (indirect)
9415
DSP96_fbccd
,
// Branch Conditionally (Floating-Point Condition) (direct)
9416
DSP96_fbscc
,
// Branch to Subroutine Conditionally (Floating-Point Condition) (indirect)
9417
DSP96_fbsccd
,
// Branch to Subroutine Conditionally (Floating-Point Condition) (direct)
9418
DSP96_fclr
,
// Clear a Floating-Point Operand
9419
DSP96_fcmp
,
// Compare
9420
DSP96_fcmpg
,
// Graphics Compare with Trivial Accept.Reject Flags
9421
DSP96_fcmpm
,
// Compare Magnitude
9422
DSP96_fcopys
,
// Copy Sign
9423
DSP96_fdebugcc
,
// Enter Debug Mode Conditionally
9424
DSP96_fgetman
,
// Get Mantissa
9425
DSP96_fint
,
// Convert to Floating-Point Integer
9426
DSP96_fjcc
,
// Jump Conditionally (indirect)
9427
DSP96_fjccd
,
// Jump Conditionally (direct)
9428
DSP96_fjscc
,
// Jump to Subroutine Conditionally (indirect)
9429
DSP96_fjsccd
,
// Jump to Subroutine Conditionally (direct)
9430
DSP96_float
,
// Integer to Floating-Point Conversion
9431
DSP96_floatu
,
// Unsigned Integer to SP Floating-Point Conversion
9432
DSP96_floor
,
// Convert to Floating-Point Integer round to -Infinity
9433
DSP96_fmove
,
// Move FP Data Register(s)
9434
DSP96_fmpyfadd
,
// Multiply and Add
9435
// DSP96_fmpyfaddx, // Multiply and Add (Single Extended Precision) (Handled with DSP96_fmpyfadd)
9436
DSP96_fmpyfaddsub
,
// Multiply, Add and Subtract
9437
// DSP96_fmpyfaddsubx, // Multiply, Add and Subtract (Single Extended Precision) (Handled with DSP96_fmpyfaddsub)
9438
DSP96_fmpyfsub
,
// Multiply and Subtract
9439
// DSP96_fmpyfsubx, // Multiply and Subtract (Single Extended Precision) (Handled with DSP96_fmpyfsub)
9440
DSP96_fmpy
,
// Multiply
9441
DSP96_fneg
,
// Change sign
9442
DSP96_fscale
,
// Scale a Floating-Point Operand
9443
DSP96_fseedd
,
// Reciprocal Approximation
9444
DSP96_fseedr
,
// Square-Root Reciprocal Approximation
9445
DSP96_fsub
,
// Subtract
9446
DSP96_ftfr
,
// Transfer Floating-Point Register
9447
DSP96_ftrapcc
,
// Conditional Software Interrupt
9448
DSP96_ftst
,
// Test a floating-Point Operand
9449
DSP96_getexp
,
// Get Exponent
9450
DSP96_illegal
,
// Illegal Instruction
9451
DSP96_inc
,
// Increment by One
9452
DSP96_int
,
// Floating-Point to Integer Conversion
9453
DSP96_intrz
,
// Floating-Point to Integer Conversion Round to Zero
9454
DSP96_intu
,
// Floating-Point to Unsigned Integer Conversion
9455
DSP96_inturz
,
// Floating-Point to Unsigned Integer Conversion Round to Zero
9456
DSP96_jcc
,
// Jump Conditionally (indirect)
9457
DSP96_jccd
,
// Jump Conditionally (direct)
9458
DSP96_jclr
,
// Jump if Bit Clear
9459
// DSP96_jmp, // Jump (The same as jcc with condition code = 11111)
9460
DSP96_join
,
// Join two 16-Bit Integers
9461
DSP96_joinb
,
// Join two 8-Bit Integers
9462
DSP96_jscc
,
// Jump to Subroutine Conditionally
9463
DSP96_jsccd
,
// Jump to Subroutine Conditionally
9464
DSP96_jsclr
,
// Jump to Subroutine if Bit Clear
9465
DSP96_jset
,
// Jump if Bit Set
9466
// DSP96_jsr, // Jump to Subroutine ( The same as jscc with condition code = 11111)
9467
DSP96_jsset
,
// Jump to Subroutine if Bit Set
9468
DSP96_lea
,
// Load Effective Address
9469
DSP96_lra
,
// Load PC Relative Address
9470
DSP96_lsl
,
// Logical Shift Left
9471
DSP96_lsr
,
// Logical Shift Right
9472
DSP96_move
,
// Move Data Register(s)
9473
DSP96_movec
,
// Move Control Register
9474
DSP96_movei
,
// Move Immediate
9475
DSP96_movem
,
// Move Program Memory
9476
DSP96_movep
,
// Move Peripheral Data
9477
DSP96_moves
,
// Move Absolute Short
9478
DSP96_moveta
,
// Move Data Register(s) and Test Address
9479
DSP96_mpys
,
// Signed Multiply
9480
DSP96_mpyu
,
// Unsigned Multiply
9481
DSP96_neg
,
// Negate Accumulator
9482
DSP96_negc
,
// Negate with Carry
9483
DSP96_nop
,
// No Operation
9484
DSP96_not
,
// Logical Complement
9485
DSP96_or
,
// Logical Inclusive OR
9486
DSP96_orc
,
// OR With Compliment
9487
DSP96_ori
,
// OR Immediate to Control Register
9488
DSP96_rep
,
// Repeat Next Instruction
9489
DSP96_reset
,
// Reset On-Chip Peripheral Devices
9490
DSP96_rol
,
// Rotate Left
9491
DSP96_ror
,
// Rotate Right
9492
DSP96_rti
,
// Return from Interrupt
9493
DSP96_rtr
,
// Return from Subroutine and Restore Status Register
9494
DSP96_rts
,
// Return from Subroutine
9495
DSP96_setw
,
// Set an Operand
9496
DSP96_split
,
// Extract 16-Bit Integer
9497
DSP96_splitb
,
// Extract 8-Bit Integer
9498
DSP96_stop
,
// Stop Processing (Low Power Stand-by)
9499
DSP96_sub
,
// Subtract
9500
DSP96_subc
,
// Subtract with Carry
9501
DSP96_tfr
,
// Transfer Data ALU Register
9502
DSP96_trapcc
,
// Software Interrupt Conditionally
9503
DSP96_tst
,
// Test an Operand
9504
DSP96_wait
,
// Wait for Interrupt or DMA Request (Low Power Stand-by)
9505
DSP96_last
,
9506
};
9507
enum
PMNum
// Parallel Move enumeration
9508
{
9509
PM96_NoMove
,
9510
PM96_R2R
,
// Register to register parallel move
9511
PM96_Update
,
// Move update
9512
PM96_XYMem
,
// X or Y memory move
9513
PM96_XYmemR
,
// X or Y memory and Registry move
9514
PM96_Long
,
// Long Memory move
9515
PM96_XY
,
// XY Memory move
9516
PM96_IFcc
,
// Integer if conditional Instruction without CCR update
9517
// All the following moves are handled by IFcc
9518
// PM96_FFcc, // Floating-Point if conditional Instruction without CCR, ER, IER update
9519
// PM96_FFccU, // Floating-Point if conditional Instruction with CCR, ER, IER update
9520
// PM96_IFccU, // Integer if conditional Instruction with CCR update
9521
};
9522
/*
9523
* Interactive disassembler (IDA).
9524
* Copyright (c) 1990-2026 Hex-Rays
9525
* ALL RIGHTS RESERVED.
9526
*
9527
*/
9528
enum
9529
{
9530
C166_null
= 0,
// Unknown Operation
9531
C166_add
,
// Integer Addition
9532
C166_addb
,
// Integer Addition Byte
9533
C166_addc
,
// Integer Addition with Carry
9534
C166_addcb
,
// Integer Addition with Carry Byte
9535
C166_and
,
// Logical AND
9536
C166_andb
,
// Logical AND Byte
9537
C166_ashr
,
// Arithmetic Shift Right
9538
C166_atomic
,
// Begin ATOMIC Sequence
9539
C166_band
,
// Bit Logical AND
9540
C166_bclr
,
// Bit Clear
9541
C166_bcmp
,
// Bit to Bit Compare
9542
C166_bfldh
,
// Bit Field High Byte
9543
C166_bfldl
,
// Bit Field Low Byte
9544
C166_bmov
,
// Bit to Bit Move
9545
C166_bmovn
,
// Bit to Bit Move and Negate
9546
C166_bor
,
// Bit Logical OR
9547
C166_bset
,
// Bit Set
9548
C166_bxor
,
// Bit Logical XOR
9549
C166_calla
,
// Call Subroutine Absolute
9550
C166_calli
,
// Call Subroutine Indirect
9551
C166_callr
,
// Call Subroutine Relative
9552
C166_calls
,
// Call Inter-Segment Subroutine
9553
C166_cmp
,
// Integer Compare
9554
C166_cmpb
,
// Integer Compare Byte
9555
C166_cmpd1
,
// Integer Compare and Decrement by 1
9556
C166_cmpd2
,
// Integer Compare and Decrement by 2
9557
C166_cmpi1
,
// Integer Compare and Increment by 1
9558
C166_cmpi2
,
// Integer Compare and Increment by 2
9559
C166_cpl
,
// Integer One's Complement
9560
C166_cplb
,
// Integer One's Complement Byte
9561
C166_diswdt
,
// Disable Watchdog Timer
9562
C166_div
,
// 16-by-16 Signed Division
9563
C166_divl
,
// 32-by-16 Signed Division
9564
C166_divlu
,
// 32-by-16 Unsigned Division
9565
C166_divu
,
// 16-by-16 Unsigned Division
9566
C166_einit
,
// End of Intialization
9567
C166_extr
,
// Begin Extended Register Sequence
9568
C166_extp
,
// Begin Extended Page Sequence
9569
C166_extpr
,
// Begin Extended Page and Register Sequence
9570
C166_exts
,
// Begin Extended Segment Sequence
9571
C166_extsr
,
// Begin Extended Segment and Register Sequence
9572
C166_idle
,
// Enter Idle Mode
9573
C166_jb
,
// Relative Jump if Bit Set
9574
C166_jbc
,
// Relative Jump if Bit Set and Clear Bit
9575
C166_jmpa
,
// Absolute Conditional Jump
9576
C166_jmpi
,
// Indirect Conditional Jump
9577
C166_jmpr
,
// Relative Conditional Jump
9578
C166_jmps
,
// Absolute Inter-Segment Jump
9579
C166_jnb
,
// Relative Jump if Bit Clear
9580
C166_jnbs
,
// Relative Jump if Bit Clear and Set Bit
9581
C166_mov
,
// Move Word
9582
C166_movb
,
// Move Byte
9583
C166_movbs
,
// Move Byte Sign Extend
9584
C166_movbz
,
// Move Byte Zero Extend
9585
C166_mul
,
// Signed Multiplication
9586
C166_mulu
,
// Unsigned Multiplication
9587
C166_neg
,
// Integer Two's Complement
9588
C166_negb
,
// Integer Two's Complement Byte
9589
C166_nop
,
// No Operation
9590
C166_or
,
// Logical OR
9591
C166_orb
,
// Logical OR Byte
9592
C166_pcall
,
// Push Word and Call Subroutine Absolute
9593
C166_pop
,
// Pop Word from System Stack
9594
C166_prior
,
// Prioritize Register
9595
C166_push
,
// Push Word on System Stack
9596
C166_pwrdn
,
// Enter Power Down Mode
9597
C166_ret
,
// Return from Subroutine
9598
C166_reti
,
// Return from Interrupt Routine
9599
C166_retp
,
// Return from Subroutine and Pop Word
9600
C166_rets
,
// Return from Inter-Segment Subroutine
9601
C166_rol
,
// Rotate Left
9602
C166_ror
,
// Rotate Right
9603
C166_scxt
,
// Switch Context
9604
C166_shl
,
// Shift Left
9605
C166_shr
,
// Shift Rightt
9606
C166_srst
,
// Software Reset
9607
C166_srvwdt
,
// Service Watchdog Timer
9608
C166_sub
,
// Integer Subtraction
9609
C166_subb
,
// Integer Subtraction Byte
9610
C166_subc
,
// Integer Subtraction with Carry
9611
C166_subcb
,
// Integer Subtraction with Carry Byte
9612
C166_trap
,
// Software Trap
9613
C166_xor
,
// Logical Exclusive OR
9614
C166_xorb
,
// Logical Exclusive OR Byte
9615
// ST10 MAC instructions
9616
ST10_CoABS
,
// Absolute Value
9617
ST10_CoADD
,
// Add
9618
ST10_CoASHR
,
// Accumulator Arithmetic Shift Right with Optional Round
9619
ST10_CoCMP
,
// Compare
9620
ST10_CoLOAD
,
// Load Accumulator
9621
ST10_CoMAC
,
// Multiply-Accumulate & Optional Round
9622
ST10_CoMACM
,
// Multiply-Accumulate Parallel Data Move & Optional Round
9623
ST10_CoMAX
,
// Maximum
9624
ST10_CoMIN
,
// Minimum
9625
ST10_CoMOV
,
// Memory to Memory Move
9626
ST10_CoMUL
,
// Multiply & Optional Round
9627
ST10_CoNEG
,
// Negate Accumulator with Optional Rounding
9628
ST10_CoNOP
,
// No-Operation
9629
ST10_CoRND
,
// Round Accumulator
9630
ST10_CoSHL
,
// Accumulator Logical Shift Left
9631
ST10_CoSHR
,
// Accumulator Logical Shift Right
9632
ST10_CoSTORE
,
// Store a MAC-Unit Register
9633
ST10_CoSUB
,
// Subtract
9634
// missing C166v2/ST10 instructions
9635
C166_enwdt
,
// Enable Watchdog Timer
9636
C166_sbrk
,
// Software Break
9637
C166_last
,
9638
};
9639
/*
9640
* Interactive disassembler (IDA).
9641
* Copyright (c) 1990-2026 Hex-Rays
9642
* ALL RIGHTS RESERVED.
9643
*
9644
*/
9645
enum
9646
{
9647
ST20_null
= 0,
// Unknown Operation
9648
// C1 instructions
9649
ST20_adc
,
// add constant
9650
ST20_add
,
// add
9651
ST20_addc
,
// add with carry
9652
ST20_ajw
,
// adjust work space
9653
ST20_and
,
// and
9654
ST20_arot
,
// anti-rotate stack
9655
ST20_ashr
,
// arithmetic shift right
9656
ST20_biquad
,
// biquad IIR filter step
9657
ST20_bitld
,
// load bit
9658
ST20_bitmask
,
// create bit mask
9659
ST20_bitst
,
// store bit
9660
ST20_breakpoint
,
// breakpoint
9661
ST20_cj
,
// conditional jump
9662
ST20_dequeue
,
// dequeue a process
9663
ST20_divstep
,
// divide step
9664
ST20_dup
,
// duplicate
9665
ST20_ecall
,
// exception call
9666
ST20_enqueue
,
// enqueue a process
9667
ST20_eqc
,
// equals constant
9668
ST20_eret
,
// exception return
9669
ST20_fcall
,
// function call
9670
ST20_gajw
,
// general adjust workspace
9671
ST20_gt
,
// greater than
9672
ST20_gtu
,
// greater than unsigned
9673
ST20_io
,
// input/output
9674
ST20_j
,
// jump
9675
ST20_jab
,
// jump absolute
9676
ST20_lbinc
,
// load byte and increment
9677
ST20_ldc
,
// load constant
9678
ST20_ldl
,
// load local
9679
ST20_ldlp
,
// load local pointer
9680
ST20_ldnl
,
// load non-local
9681
ST20_ldnlp
,
// load non-local pointer
9682
ST20_ldpi
,
// load pointer to instruction
9683
ST20_ldprodid
,
// load product identity
9684
ST20_ldtdesc
,
// load task descriptor
9685
ST20_lsinc
,
// load sixteen and increment
9686
ST20_lsxinc
,
// load sixteen sign extended and increment
9687
ST20_lwinc
,
// load word and increment
9688
ST20_mac
,
// multiply accumulate
9689
ST20_mul
,
// multiply
9690
ST20_nfix
,
// negative prefix
9691
ST20_nop
,
// no operation
9692
ST20_not
,
// bitwise not
9693
ST20_opr
,
// operate
9694
ST20_or
,
// or
9695
ST20_order
,
// order
9696
ST20_orderu
,
// unsigned order
9697
ST20_pfix
,
// prefix
9698
ST20_rev
,
// reverse
9699
ST20_rmw
,
// read modify write
9700
ST20_rot
,
// rotate stack
9701
ST20_run
,
// run process
9702
ST20_saturate
,
// saturate
9703
ST20_sbinc
,
// store byte and increment
9704
ST20_shl
,
// shift left
9705
ST20_shr
,
// shift right
9706
ST20_signal
,
// signal
9707
ST20_smacinit
,
// initialize short multiply accumulate loop
9708
ST20_smacloop
,
// short multiply accumulate loop
9709
ST20_smul
,
// short multiply
9710
ST20_ssinc
,
// store sixteen and increment
9711
ST20_statusclr
,
// clear bits in status register
9712
ST20_statusset
,
// set bits in status register
9713
ST20_statustst
,
// test status register
9714
ST20_stl
,
// store local
9715
ST20_stnl
,
// store non-local
9716
ST20_stop
,
// stop process
9717
ST20_sub
,
// subtract
9718
ST20_subc
,
// subtract with carry
9719
ST20_swap32
,
// byte swap 32
9720
ST20_swinc
,
// store word and increment
9721
ST20_timeslice
,
// timeslice
9722
ST20_umac
,
// unsigned multiply accumulate
9723
ST20_unsign
,
// unsign argument
9724
ST20_wait
,
// wait
9725
ST20_wsub
,
// word subscript
9726
ST20_xbword
,
// sign extend byte to word
9727
ST20_xor
,
// exclusive or
9728
ST20_xsword
,
// sign extend sixteen to word
9729
// C2-C4 instructions
9730
ST20_alt
,
// alt start
9731
ST20_altend
,
// alt end
9732
ST20_altwt
,
// alt wait
9733
ST20_bcnt
,
// byte count
9734
ST20_bitcnt
,
// count bits set in word
9735
ST20_bitrevnbits
,
// reverse bottom n bits in word
9736
ST20_bitrevword
,
// reverse bits in word
9737
ST20_bsub
,
// byte subscript
9738
ST20_call
,
// call
9739
ST20_causeerror
,
// cause error
9740
ST20_cb
,
// check byte
9741
ST20_cbu
,
// check byte unsigned
9742
ST20_ccnt1
,
// check count from 1
9743
ST20_cflerr
,
// check floating point error
9744
ST20_cir
,
// check in range
9745
ST20_ciru
,
// check in range unsigned
9746
ST20_clockdis
,
// clock disable
9747
ST20_clockenb
,
// clock enable
9748
ST20_clrhalterr
,
// clear halt-on error flag
9749
ST20_crcbyte
,
// calculate CRC on byte
9750
ST20_crcword
,
// calculate CRC on word
9751
ST20_cs
,
// check sixteen
9752
ST20_csngl
,
// check single
9753
ST20_csu
,
// check sixteen unsigned
9754
ST20_csub0
,
// check subscript from 0
9755
ST20_cword
,
// check word
9756
ST20_devlb
,
// device load byte
9757
ST20_devls
,
// device load sixteen
9758
ST20_devlw
,
// device load word
9759
ST20_devmove
,
// device move
9760
ST20_devsb
,
// device store byte
9761
ST20_devss
,
// device store sixteen
9762
ST20_devsw
,
// device store word
9763
ST20_diff
,
// difference
9764
ST20_disc
,
// disable channel
9765
ST20_diss
,
// disable skip
9766
ST20_dist
,
// disable timer
9767
ST20_div
,
// divide
9768
ST20_enbc
,
// enable channel
9769
ST20_enbs
,
// enable skip
9770
ST20_enbt
,
// enable timer
9771
ST20_endp
,
// end process
9772
ST20_fmul
,
// fractional multiply
9773
ST20_fptesterr
,
// test for FPU error
9774
ST20_gcall
,
// general call
9775
ST20_gintdis
,
// general interrupt disable
9776
ST20_gintenb
,
// general interrupt enable
9777
ST20_in
,
// input message
9778
ST20_insertqueue
,
// insert at front of scheduler queue
9779
ST20_intdis
,
// (localised) interrupt disable
9780
ST20_intenb
,
// (localised) interrupt enable
9781
ST20_iret
,
// interrupt return
9782
ST20_ladd
,
// long add
9783
ST20_lb
,
// load byte
9784
ST20_lbx
,
// load byte and sign extend
9785
ST20_ldclock
,
// load clock
9786
ST20_lddevid
,
// load device identity
9787
ST20_ldiff
,
// long diff
9788
ST20_ldinf
,
// load infinity
9789
ST20_ldiv
,
// long divide
9790
ST20_ldmemstartval
,
// load value of MemStart address
9791
ST20_ldpri
,
// load current priority
9792
ST20_ldshadow
,
// load shadow registers
9793
ST20_ldtimer
,
// load timer
9794
ST20_ldtraph
,
// load trap handler
9795
ST20_ldtrapped
,
// load trapped process status
9796
ST20_lend
,
// loop end
9797
ST20_lmul
,
// long multiply
9798
ST20_ls
,
// load sixteen
9799
ST20_lshl
,
// long shift left
9800
ST20_lshr
,
// long shift right
9801
ST20_lsub
,
// long subtract
9802
ST20_lsum
,
// long sum
9803
ST20_lsx
,
// load sixteen and sign extend
9804
ST20_mint
,
// minimum integer
9805
ST20_move
,
// move message
9806
ST20_move2dall
,
// 2D block copy
9807
ST20_move2dinit
,
// initialize data for 2D block move
9808
ST20_move2dnonzero
,
// 2D block copy non-zero bytes
9809
ST20_move2dzero
,
// 2D block copy zero bytes
9810
ST20_norm
,
// normalize
9811
ST20_out
,
// output message
9812
ST20_outbyte
,
// output byte
9813
ST20_outword
,
// output word
9814
ST20_pop
,
// pop processor stack
9815
ST20_postnormsn
,
// post-normalize correction of single length fp number
9816
ST20_prod
,
// product
9817
ST20_reboot
,
// reboot
9818
ST20_rem
,
// remainder
9819
ST20_resetch
,
// reset channel
9820
ST20_restart
,
// restart
9821
ST20_ret
,
// return
9822
ST20_roundsn
,
// round single length floating point number
9823
ST20_runp
,
// run process
9824
ST20_satadd
,
// saturating add
9825
ST20_satmul
,
// saturating multiply
9826
ST20_satsub
,
// saturating subtract
9827
ST20_saveh
,
// save high priority queue registers
9828
ST20_savel
,
// save low priority queue registers
9829
ST20_sb
,
// store byte
9830
ST20_seterr
,
// set error flags
9831
ST20_sethalterr
,
// set halt-on error flag
9832
ST20_settimeslice
,
// set timeslicing status
9833
ST20_slmul
,
// signed long multiply
9834
ST20_ss
,
// store sixteen
9835
ST20_ssub
,
// sixteen subscript
9836
ST20_startp
,
// start process
9837
ST20_stclock
,
// store clock register
9838
ST20_sthb
,
// store high priority back pointer
9839
ST20_sthf
,
// store high priority front pointer
9840
ST20_stlb
,
// store low priority back pointer
9841
ST20_stlf
,
// store low priority front pointer
9842
ST20_stoperr
,
// stop on error
9843
ST20_stopp
,
// stop process
9844
ST20_stshadow
,
// store shadow registers
9845
ST20_sttimer
,
// store timer
9846
ST20_sttraph
,
// store trap handler
9847
ST20_sttrapped
,
// store trapped process
9848
ST20_sulmul
,
// signed timer unsigned long multiply
9849
ST20_sum
,
// sum
9850
ST20_swapqueue
,
// swap scheduler queue
9851
ST20_swaptimer
,
// swap timer queue
9852
ST20_talt
,
// timer alt start
9853
ST20_taltwt
,
// timer alt wait
9854
ST20_testerr
,
// test error flag
9855
ST20_testhalterr
,
// test halt-on error flag
9856
ST20_testpranal
,
// test processor analysing
9857
ST20_tin
,
// timer input
9858
ST20_trapdis
,
// trap disable
9859
ST20_trapenb
,
// trap enable
9860
ST20_tret
,
// trap return
9861
ST20_unpacksn
,
// unpack single length fp number
9862
ST20_wcnt
,
// word count
9863
ST20_wsubdb
,
// form double word subscript
9864
ST20_xdble
,
// extend to double
9865
ST20_xword
,
// extend word
9866
ST20_last
,
9867
};
9868
/*
9869
* Interactive disassembler (IDA).
9870
* Copyright (c) 1990-2026 Hex-Rays
9871
* ALL RIGHTS RESERVED.
9872
*
9873
*/
9874
enum
9875
{
9876
ST7_null
= 0,
// Unknown Operation
9877
ST7_adc
,
// Add with Carry
9878
ST7_add
,
// Addition
9879
ST7_and
,
// Logical And
9880
ST7_bcp
,
// Bit compare
9881
ST7_bres
,
// Bit Reset
9882
ST7_bset
,
// Bit Set
9883
ST7_btjf
,
// Jump if bit is false
9884
ST7_btjt
,
// Jump if bit is true
9885
ST7_call
,
// Call subroutine
9886
ST7_callr
,
// Call subroutine relative
9887
ST7_clr
,
// Clear
9888
ST7_cp
,
// Arithmetic Compare
9889
ST7_cpl
,
// One Complement
9890
ST7_dec
,
// Decrement
9891
ST7_halt
,
// Halt
9892
ST7_iret
,
// Interrupt routine return
9893
ST7_inc
,
// Increment
9894
ST7_jp
,
// Absolute Jump
9895
ST7_jra
,
// Jump relative always
9896
ST7_jrt
,
// Jump relative
9897
ST7_jrf
,
// Never jump
9898
ST7_jrih
,
// Jump if Port INT pin = 1
9899
ST7_jril
,
// Jump if Port INT pin = 0
9900
ST7_jrh
,
// Jump if H = 1
9901
ST7_jrnh
,
// Jump if H = 0
9902
ST7_jrm
,
// Jump if I = 1
9903
ST7_jrnm
,
// Jump if I = 0
9904
ST7_jrmi
,
// Jump if N = 1 (minus)
9905
ST7_jrpl
,
// Jump if N = 0 (plus)
9906
ST7_jreq
,
// Jump if Z = 1 (equal)
9907
ST7_jrne
,
// Jump if Z = 0 (not equal)
9908
ST7_jrc
,
// Jump if C = 1
9909
ST7_jrnc
,
// Jump if C = 0
9910
ST7_jrult
,
// Jump if C = 1
9911
ST7_jruge
,
// Jump if C = 0
9912
ST7_jrugt
,
// Jump if (C + Z = 0)
9913
ST7_jrule
,
// Jump if (C + Z = 1)
9914
ST7_ld
,
// Load
9915
ST7_mul
,
// Multiply
9916
ST7_neg
,
// Negate
9917
ST7_nop
,
// No Operation
9918
ST7_or
,
// OR Operation
9919
ST7_pop
,
// Pop from the Stack
9920
ST7_push
,
// Push onto the Stack
9921
ST7_rcf
,
// Reset carry flag
9922
ST7_ret
,
// Subroutine Return
9923
ST7_rim
,
// Enable Interrupts
9924
ST7_rlc
,
// Rotate left true
9925
ST7_rrc
,
// Rotate right true
9926
ST7_rsp
,
// Reset Stack Pointer
9927
ST7_sbc
,
// Subtract with Carry
9928
ST7_scf
,
// Set carry flag
9929
ST7_sim
,
// Disable Interrupts
9930
ST7_sla
,
// Shift left Arithmetic
9931
ST7_sll
,
// Shift left Logic
9932
ST7_srl
,
// Shift right Logic
9933
ST7_sra
,
// Shift right Arithmetic
9934
ST7_sub
,
// Substraction
9935
ST7_swap
,
// SWAP nibbles
9936
ST7_tnz
,
// Test for Neg & Zero
9937
ST7_trap
,
// S/W trap
9938
ST7_wfi
,
// Wait for Interrupt
9939
ST7_xor
,
// Exclusive OR
9940
ST7_last
,
9941
};
9942
/*
9943
* Interactive disassembler (IDA).
9944
* Copyright (c) 1990-2026 Hex-Rays
9945
* ALL RIGHTS RESERVED.
9946
*
9947
*/
9948
enum
9949
{
9950
IA64_null
,
// 0
9951
IA64_0
,
// 1
9952
IA64_1
,
// 2
9953
IA64_a
,
// 3
9954
IA64_acq
,
// 4
9955
IA64_add
,
// 5 Add
9956
IA64_addl
,
// 6
9957
IA64_addp4
,
// 7 Add pointer
9958
IA64_adds
,
// 8
9959
IA64_alloc
,
// 9 Allocate stack frame
9960
IA64_and
,
// 10 Logical AND
9961
IA64_andcm
,
// 11 And complement
9962
IA64_b
,
// 12
9963
IA64_bias
,
// 13
9964
IA64_br
,
// 14 Branch
9965
IA64_break
,
// 15 Break
9966
IA64_brl
,
// 16 Branch long
9967
IA64_brp
,
// 17 Branch predict
9968
IA64_bsw
,
// 18 Bank switch
9969
IA64_c
,
// 19
9970
IA64_call
,
// 20
9971
IA64_cexit
,
// 21
9972
IA64_chk
,
// 22 Speculation check
9973
IA64_cloop
,
// 23
9974
IA64_clr
,
// 24
9975
IA64_clrrrb
,
// 25 Clear RRB
9976
IA64_cmp
,
// 26 Compare
9977
IA64_cmp4
,
// 27 Compare word
9978
IA64_cmpxchg1
,
// 28 Compare and exchange byte
9979
IA64_cmpxchg2
,
// 29 Compare and exchange halfword
9980
IA64_cmpxchg4
,
// 30 Compare and exchange word
9981
IA64_cmpxchg8
,
// 31 Compare and exchange double word
9982
IA64_cond
,
// 32
9983
IA64_cover
,
// 33 Cover stack frame
9984
IA64_ctop
,
// 34
9985
IA64_czx1
,
// 35 Compute zero index
9986
IA64_czx2
,
// 36 Compute zero index
9987
IA64_d
,
// 37
9988
IA64_dep
,
// 38 Deposit
9989
IA64_dpnt
,
// 39
9990
IA64_dptk
,
// 40
9991
IA64_e
,
// 41
9992
IA64_epc
,
// 42 Enter privileged code
9993
IA64_eq
,
// 43
9994
IA64_excl
,
// 44
9995
IA64_exit
,
// 45
9996
IA64_exp
,
// 46
9997
IA64_extr
,
// 47 Extract
9998
IA64_f
,
// 48
9999
IA64_fabs
,
// 49 Floating point absolute value
10000
IA64_fadd
,
// 50 Floating point add
10001
IA64_famax
,
// 51 Floating point absolute maximum
10002
IA64_famin
,
// 52 Floating point absolute minimum
10003
IA64_fand
,
// 53 Floating point logical and
10004
IA64_fandcm
,
// 54 Floating point and complement
10005
IA64_fault
,
// 55
10006
IA64_fc
,
// 56 Flush cache
10007
IA64_fchkf
,
// 57 Floating point check flags
10008
IA64_fclass
,
// 58 Floating point class
10009
IA64_fclrf
,
// 59 Floating point clear flags
10010
IA64_fcmp
,
// 60 Floating point compare
10011
IA64_fcvt
,
// 61 Convert floating point to/from integer
10012
IA64_fetchadd4
,
// 62 Fetch word and add immediate
10013
IA64_fetchadd8
,
// 63 Fetch double word and add immediate
10014
IA64_few
,
// 64
10015
IA64_fill
,
// 65
10016
IA64_flushrs
,
// 66 Flush register stack
10017
IA64_fma
,
// 67 Floating point multiply add
10018
IA64_fmax
,
// 68 Floating point maximum
10019
IA64_fmerge
,
// 69 Floating point merge
10020
IA64_fmin
,
// 70 Floating point minimum
10021
IA64_fmix
,
// 71 Floating point mix
10022
IA64_fmpy
,
// 72 Floating point multiply
10023
IA64_fms
,
// 73 Floating point multiply subtract
10024
IA64_fneg
,
// 74 Floating point negate
10025
IA64_fnegabs
,
// 75 Floating point negate absolute value
10026
IA64_fnma
,
// 76 Floating point negative multiply add
10027
IA64_fnmpy
,
// 77 Floating point negative multiply
10028
IA64_fnorm
,
// 78 Floating point normalize
10029
IA64_for
,
// 79 Floating point logical or
10030
IA64_fpabs
,
// 80 Floating point parallel absolute value
10031
IA64_fpack
,
// 81 Floating point pack
10032
IA64_fpamax
,
// 82 Floating point parallel absolute maximum
10033
IA64_fpamin
,
// 83 Floating point parallel absolute minimum
10034
IA64_fpcmp
,
// 84 Floating point parallel compare
10035
IA64_fpcvt
,
// 85 Floating point parallel conversion
10036
IA64_fpma
,
// 86 Floating point parallel multiply add
10037
IA64_fpmax
,
// 87 Floating point parallel maximum
10038
IA64_fpmerge
,
// 88 Floating point parallel merge
10039
IA64_fpmin
,
// 89 Floating point parallel minimum
10040
IA64_fpmpy
,
// 90 Floating point parallel multiply
10041
IA64_fpms
,
// 91 Floating point parallel multiply subtract
10042
IA64_fpneg
,
// 92 Floating point parallel negate
10043
IA64_fpnegabs
,
// 93 Floating point parallel negate absolute value
10044
IA64_fpnma
,
// 94 Floating point parallel negative multiply add
10045
IA64_fpnmpy
,
// 95 Floating point parallel negative multiply
10046
IA64_fprcpa
,
// 96 Floating point parallel reciprocal approximation
10047
IA64_fprsqrta
,
// 97 Floating point parallel reciprocal square root approximation
10048
IA64_frcpa
,
// 98 Floating point reciprocal approximation
10049
IA64_frsqrta
,
// 99 Floating point reciprocal square root approximation
10050
IA64_fselect
,
// 100 Floating point select
10051
IA64_fsetc
,
// 101 Floating point set controls
10052
IA64_fsub
,
// 102 Floating point subtract
10053
IA64_fswap
,
// 103 Floating point swap
10054
IA64_fsxt
,
// 104 Floating point sign extend
10055
IA64_fwb
,
// 105 Flush write buffers
10056
IA64_fx
,
// 106
10057
IA64_fxor
,
// 107 Floating point exclusive or
10058
IA64_fxu
,
// 108
10059
IA64_g
,
// 109
10060
IA64_ga
,
// 110
10061
IA64_ge
,
// 111
10062
IA64_getf
,
// 112 Get floating point value or exponent or significand
10063
IA64_geu
,
// 113
10064
IA64_gt
,
// 114
10065
IA64_gtu
,
// 115
10066
IA64_h
,
// 116
10067
IA64_hu
,
// 117
10068
IA64_i
,
// 118
10069
IA64_ia
,
// 119
10070
IA64_imp
,
// 120
10071
IA64_invala
,
// 121 Invalidate ALAT
10072
IA64_itc
,
// 122 Insert translation cache
10073
IA64_itr
,
// 123 Insert translation register
10074
IA64_l
,
// 124
10075
IA64_ld1
,
// 125 Load byte
10076
IA64_ld2
,
// 126 Load halfword
10077
IA64_ld4
,
// 127 Load word
10078
IA64_ld8
,
// 128 Load double word
10079
IA64_ldf
,
// 129 Floating point load
10080
IA64_ldf8
,
// 130 Floating point load
10081
IA64_ldfd
,
// 131 Floating point load
10082
IA64_ldfe
,
// 132 Floating point load
10083
IA64_ldfp8
,
// 133 Floating point load pair
10084
IA64_ldfpd
,
// 134 Floating point load pair
10085
IA64_ldfps
,
// 135 Floating point load pair
10086
IA64_ldfs
,
// 136 Floating point load
10087
IA64_le
,
// 137
10088
IA64_leu
,
// 138
10089
IA64_lfetch
,
// 139 Line prefetch
10090
IA64_loadrs
,
// 140 Load register stack
10091
IA64_loop
,
// 141
10092
IA64_lr
,
// 142
10093
IA64_lt
,
// 143
10094
IA64_ltu
,
// 144
10095
IA64_lu
,
// 145
10096
IA64_m
,
// 146
10097
IA64_many
,
// 147
10098
IA64_mf
,
// 148 Memory fence
10099
IA64_mix1
,
// 149 Mix bytes
10100
IA64_mix2
,
// 150 Mix halfwords
10101
IA64_mix4
,
// 151 Mix words
10102
IA64_mov
,
// 152 Move register
10103
IA64_movl
,
// 153 Move long immediate
10104
IA64_mux1
,
// 154 Mux byte
10105
IA64_mux2
,
// 155 Mux halfword
10106
IA64_nc
,
// 156
10107
IA64_ne
,
// 157
10108
IA64_neq
,
// 158
10109
IA64_nge
,
// 159
10110
IA64_ngt
,
// 160
10111
IA64_nl
,
// 161
10112
IA64_nle
,
// 162
10113
IA64_nlt
,
// 163
10114
IA64_nm
,
// 164
10115
IA64_nop
,
// 165 No operation
10116
IA64_nr
,
// 166
10117
IA64_ns
,
// 167
10118
IA64_nt1
,
// 168
10119
IA64_nt2
,
// 169
10120
IA64_nta
,
// 170
10121
IA64_nz
,
// 171
10122
IA64_or
,
// 172 Logical or
10123
IA64_orcm
,
// 173
10124
IA64_ord
,
// 174
10125
IA64_pack2
,
// 175 Pack
10126
IA64_pack4
,
// 176 Pack
10127
IA64_padd1
,
// 177 Parallel add bytes
10128
IA64_padd2
,
// 178 Parallel add halfwords
10129
IA64_padd4
,
// 179 Parallel add words
10130
IA64_pavg1
,
// 180 Parallel average bytes
10131
IA64_pavg2
,
// 181 Parallel average halfwords
10132
IA64_pavgsub1
,
// 182 Parallel average subtract bytes
10133
IA64_pavgsub2
,
// 183 Parallel average subtract halfwords
10134
IA64_pcmp1
,
// 184 Parallel compare bytes
10135
IA64_pcmp2
,
// 185 Parallel compare halfwords
10136
IA64_pcmp4
,
// 186 Parallel compare words
10137
IA64_pmax1
,
// 187 Parallel maxmimum bytes
10138
IA64_pmax2
,
// 188 Parallel maxmimum halfwords
10139
IA64_pmin1
,
// 189 Parallel minimum bytes
10140
IA64_pmin2
,
// 190 Parallel minimum halfwords
10141
IA64_pmpy2
,
// 191 Parallel multiply
10142
IA64_pmpyshr2
,
// 192 Parallel multiply and shift right
10143
IA64_popcnt
,
// 193 Population count
10144
IA64_pr
,
// 194
10145
IA64_probe
,
// 195 Probe address
10146
IA64_psad1
,
// 196 Parallel sum of absolute difference
10147
IA64_pshl2
,
// 197 Parallel shift left halfwords
10148
IA64_pshl4
,
// 198 Parallel shift left words
10149
IA64_pshladd2
,
// 199 Parallel shift left and Add
10150
IA64_pshr2
,
// 200 Parallel shift right halfwords
10151
IA64_pshr4
,
// 201 Parallel shift right words
10152
IA64_pshradd2
,
// 202 Parallel shift right and Add
10153
IA64_psub1
,
// 203 Parallel subtract bytes
10154
IA64_psub2
,
// 204 Parallel subtract halfwords
10155
IA64_psub4
,
// 205 Parallel subtract words
10156
IA64_ptc
,
// 206 Purge translation cache
10157
IA64_ptr
,
// 207 Purge translation register
10158
IA64_r
,
// 208
10159
IA64_raz
,
// 209
10160
IA64_rel
,
// 210
10161
IA64_ret
,
// 211
10162
IA64_rfi
,
// 212 Return from interruption
10163
IA64_rsm
,
// 213 Reset system mask
10164
IA64_rum
,
// 214 Reset user mask
10165
IA64_rw
,
// 215
10166
IA64_s
,
// 216
10167
IA64_s0
,
// 217
10168
IA64_s1
,
// 218
10169
IA64_s2
,
// 219
10170
IA64_s3
,
// 220
10171
IA64_sa
,
// 221
10172
IA64_se
,
// 222
10173
IA64_setf
,
// 223 Set floating point value, exponent, or significand
10174
IA64_shl
,
// 224 Shift left
10175
IA64_shladd
,
// 225 Shift left and Add
10176
IA64_shladdp4
,
// 226 Shift left and Add pointer
10177
IA64_shr
,
// 227 Shift right
10178
IA64_shrp
,
// 228 Shift right pair
10179
IA64_sig
,
// 229
10180
IA64_spill
,
// 230
10181
IA64_spnt
,
// 231
10182
IA64_sptk
,
// 232
10183
IA64_srlz
,
// 233 Serialize
10184
IA64_ssm
,
// 234 Set system mask
10185
IA64_sss
,
// 235
10186
IA64_st1
,
// 236 Store byte
10187
IA64_st2
,
// 237 Store halfword
10188
IA64_st4
,
// 238 Store word
10189
IA64_st8
,
// 239 Store double word
10190
IA64_stf
,
// 240 Store floating point
10191
IA64_stf8
,
// 241 Store floating point
10192
IA64_stfd
,
// 242 Store floating point
10193
IA64_stfe
,
// 243 Store floating point
10194
IA64_stfs
,
// 244 Store floating point
10195
IA64_sub
,
// 245 Subtract
10196
IA64_sum
,
// 246 Set user mask
10197
IA64_sxt1
,
// 247 Sign extend byte
10198
IA64_sxt2
,
// 248 Sign extend halfword
10199
IA64_sxt4
,
// 249 Sign extend word
10200
IA64_sync
,
// 250 Memory synchronization
10201
IA64_tak
,
// 251 Translation access key
10202
IA64_tbit
,
// 252 Test bit
10203
IA64_thash
,
// 253 Translation hashed entry address
10204
IA64_tnat
,
// 254 Test NaT
10205
IA64_tpa
,
// 255 Translate to physical address
10206
IA64_trunc
,
// 256
10207
IA64_ttag
,
// 257 Translation hashed entry tag
10208
IA64_u
,
// 258
10209
IA64_unc
,
// 259
10210
IA64_unord
,
// 260
10211
IA64_unpack1
,
// 261 Unpack byte
10212
IA64_unpack2
,
// 262 Unpack halfword
10213
IA64_unpack4
,
// 263 Unpack word
10214
IA64_uss
,
// 264
10215
IA64_uus
,
// 265
10216
IA64_uuu
,
// 266
10217
IA64_w
,
// 267
10218
IA64_wexit
,
// 268
10219
IA64_wtop
,
// 269
10220
IA64_x
,
// 270
10221
IA64_xchg1
,
// 271 Exchange bytes
10222
IA64_xchg2
,
// 272 Exchange halfwords
10223
IA64_xchg4
,
// 273 Exchange words
10224
IA64_xchg8
,
// 274 Exchange double words
10225
IA64_xf
,
// 275
10226
IA64_xma
,
// 276 Fixed point multiply add
10227
IA64_xmpy
,
// 277 Fixed point multiply
10228
IA64_xor
,
// 278 Exclusive or
10229
IA64_xuf
,
// 279
10230
IA64_z
,
// 280
10231
IA64_zxt1
,
// 281 Zero extend byte
10232
IA64_zxt2
,
// 282 Zero extend halfword
10233
IA64_zxt4
,
// 283 Zero extend word
10234
IA64_last
,
10235
};
10236
/*
10237
* Interactive disassembler (IDA).
10238
* Copyright (c) 1990-2026 Hex-Rays
10239
* ALL RIGHTS RESERVED.
10240
*
10241
*/
10242
enum
10243
{
10244
NET_null
= 0,
// Unknown Operation
10245
NET_add
,
// Add two values, returning a new value
10246
NET_add_ovf
,
// Add signed integer values with overflow check
10247
NET_add_ovf_un
,
// Add unsigned integer values with overflow check
10248
NET_and
,
// Bitwise AND of two integral values, returns an integral value
10249
NET_ann_arg
,
//
10250
NET_ann_call
,
// Start of simple calling sequence
10251
NET_ann_catch
,
// Start an exception filter or handler
10252
NET_ann_data
,
// Multi-byte no operation
10253
NET_ann_data_s
,
// Multi-byte no operation, short form
10254
NET_ann_dead
,
// Stack location is no longer live
10255
NET_ann_def
,
// SSA definition node
10256
NET_ann_hoisted
,
// Start of the simple portion of a hoisted calling sequence
10257
NET_ann_hoisted_call
,
// Start of complex argument evaluation
10258
NET_ann_lab
,
//
10259
NET_ann_live
,
// Mark a stack location as live
10260
NET_ann_phi
,
// SSA definition node
10261
NET_ann_ref
,
// SSA reference node
10262
NET_ann_ref_s
,
// SSA reference node, short form
10263
NET_arglist
,
// Return argument list handle for the current method
10264
NET_beq
,
// Branch to target if equal
10265
NET_beq_s
,
// Branch to target if equal, short form
10266
NET_bge
,
// Branch to target if greater than or equal to
10267
NET_bge_s
,
// Branch to target if greater than or equal to, short form
10268
NET_bge_un
,
// Branch to target if greater than or equal to (unsigned or unordered)
10269
NET_bge_un_s
,
// Branch to target if greater than or equal to (unsigned or unordered), short form
10270
NET_bgt
,
// Branch to target if greater than
10271
NET_bgt_s
,
// Branch to target if greater than, short form
10272
NET_bgt_un
,
// Branch to target if greater than (unsigned or unordered)
10273
NET_bgt_un_s
,
// Branch to target if greater than (unsigned or unordered), short form
10274
NET_ble
,
// Branch to target if less than or equal to
10275
NET_ble_s
,
// Branch to target if less than or equal to, short form
10276
NET_ble_un
,
// Branch to target if less than or equal to (unsigned or unordered)
10277
NET_ble_un_s
,
// Branch to target if less than or equal to (unsigned or unordered), short form
10278
NET_blt
,
// Branch to target if less than
10279
NET_blt_s
,
// Branch to target if less than, short form
10280
NET_blt_un
,
// Branch to target if less than (unsigned or unordered)
10281
NET_blt_un_s
,
// Branch to target if less than (unsigned or unordered), short form
10282
NET_bne_un
,
// Branch to target if unequal or unordered
10283
NET_bne_un_s
,
// Branch to target if unequal or unordered, short form
10284
NET_box
,
// Convert value type to object reference
10285
NET_br
,
// Branch to target
10286
NET_br_s
,
// Branch to target, short form
10287
NET_break
,
// Inform a debugger that a breakpoint has been reached
10288
NET_brfalse
,
// Branch to target if value is zero (false)
10289
NET_brfalse_s
,
// Branch to target if value is zero (false), short form
10290
NET_brtrue
,
// Branch to target if value is non-zero (true)
10291
NET_brtrue_s
,
// Branch to target if value is non-zero (true), short form
10292
NET_call
,
// Call a method
10293
NET_calli
,
// Call an indirect method
10294
NET_callvirt
,
// Call a method associated with obj
10295
NET_castclass
,
// Cast object to class
10296
NET_ceq
,
// Push 1 (of type I4) if value1 equals value2, else 0
10297
NET_cgt
,
// Push 1 (of type I4) if value1 > value2, else 0
10298
NET_cgt_un
,
// Push 1 (of type I4) if value1 > value2, unsigned or unordered, else 0
10299
NET_ckfinite
,
// Throw ArithmeticException if value is not a finite number
10300
NET_clt
,
// Push 1 (of type I4) if value1 < value2, else 0
10301
NET_clt_un
,
// Push 1 (of type I4) if value1 < value2, unsigned or unordered, else 0
10302
NET_conv_i
,
// Convert to I, pushing I on stack
10303
NET_conv_i1
,
// Convert to I1, pushing I4 on stack
10304
NET_conv_i2
,
// Convert to I2, pushing I4 on stack
10305
NET_conv_i4
,
// Convert to I4, pushing I4 on stack
10306
NET_conv_i8
,
// Convert to I8, pushing I8 on stack
10307
NET_conv_ovf_i
,
// Convert to an I (on the stack as I) and throw an exception on overflow
10308
NET_conv_ovf_i1
,
// Convert to an I1 (on the stack as I4) and throw an exception on overflow
10309
NET_conv_ovf_i1_un
,
// Convert unsigned to an I1 (on the stack as I4) and throw an exception on overflow
10310
NET_conv_ovf_i2
,
// Convert to an I2 (on the stack as I4) and throw an exception on overflow
10311
NET_conv_ovf_i2_un
,
// Convert unsigned to an I2 (on the stack as I4) and throw an exception on overflow
10312
NET_conv_ovf_i4
,
// Convert to an I4 (on the stack as I4) and throw an exception on overflow
10313
NET_conv_ovf_i4_un
,
// Convert unsigned to an I4 (on the stack as I4) and throw an exception on overflow
10314
NET_conv_ovf_i8
,
// Convert to an I8 (on the stack as I8) and throw an exception on overflow
10315
NET_conv_ovf_i8_un
,
// Convert unsigned to an I8 (on the stack as I8) and throw an exception on overflow
10316
NET_conv_ovf_i_un
,
// Convert to unsigned an I (on the stack as I) and throw an exception on overflow
10317
NET_conv_ovf_u
,
// Convert to a U (on the stack as I) and throw an exception on overflow
10318
NET_conv_ovf_u1
,
// Convert to a U1 (on the stack as I4) and throw an exception on overflow
10319
NET_conv_ovf_u1_un
,
// Convert to unsigned a U1 (on the stack as I4) and throw an exception on overflow
10320
NET_conv_ovf_u2
,
// Convert to a U2 (on the stack as I4) and throw an exception on overflow
10321
NET_conv_ovf_u2_un
,
// Convert to unsigned a U2 (on the stack as I4) and throw an exception on overflow
10322
NET_conv_ovf_u4
,
// Convert to a U4 (on the stack as I4) and throw an exception on overflow
10323
NET_conv_ovf_u4_un
,
// Convert to unsigned a U3 (on the stack as I4) and throw an exception on overflow
10324
NET_conv_ovf_u8
,
// Convert to a U8 (on the stack as I8) and throw an exception on overflow
10325
NET_conv_ovf_u8_un
,
// Convert to unsigned a U8 (on the stack as I8) and throw an exception on overflow
10326
NET_conv_ovf_u_un
,
// Convert to unsigned a U (on the stack as I) and throw an exception on overflow
10327
NET_conv_r4
,
// Convert to R4, pushing F on stack
10328
NET_conv_r8
,
// Convert to R8, pushing F on stack
10329
NET_conv_r_un
,
// Convert unsigned integer to floating point, pushing F on stack
10330
NET_conv_u
,
// Convert to U, pushing I on stack
10331
NET_conv_u1
,
// Convert to U1, pushing I4 on stack
10332
NET_conv_u2
,
// Convert to U2, pushing I4 on stack
10333
NET_conv_u4
,
// Convert to U4, pushing I4 on stack
10334
NET_conv_u8
,
// Convert to U8, pushing I8 on stack
10335
NET_cpblk
,
// Copy data from memory to memory
10336
NET_cpobj
,
// Copy a value type
10337
NET_div
,
// Divide two values to return a quotient or floating point result
10338
NET_div_un
,
// Divide two values, unsigned, returning a quotient
10339
NET_dup
,
// Duplicate value on the top of the stack
10340
NET_endfilter
,
// End filter clause of SEH exception handling
10341
NET_endfinally
,
// End fault clause of an exception block
10342
NET_initblk
,
// Set a block of memory to a given byte
10343
NET_initobj
,
// Initialize a value type
10344
NET_isinst
,
// Test if an object is an instance of a class or interface, returning NULL or an instance of that class or interface
10345
NET_jmp
,
// Exit current method and jump to specified method
10346
NET_ldarg
,
// Load argument numbered num onto stack
10347
NET_ldarg_0
,
// Load argument 0 onto stack
10348
NET_ldarg_1
,
// Load argument 1 onto stack
10349
NET_ldarg_2
,
// Load argument 2 onto stack
10350
NET_ldarg_3
,
// Load argument 3 onto stack
10351
NET_ldarg_s
,
// Load argument numbered num onto stack, short form
10352
NET_ldarga
,
// Fetch the address of argument
10353
NET_ldarga_s
,
// Fetch the address of argument, short form
10354
NET_ldc_i4
,
// Push num of type I4 onto the stack as I4
10355
NET_ldc_i4_0
,
// Push 0 onto the stack as I4
10356
NET_ldc_i4_1
,
// Push 1 onto the stack as I4
10357
NET_ldc_i4_2
,
// Push 2 onto the stack as I4
10358
NET_ldc_i4_3
,
// Push 3 onto the stack as I4
10359
NET_ldc_i4_4
,
// Push 4 onto the stack as I4
10360
NET_ldc_i4_5
,
// Push 5 onto the stack as I4
10361
NET_ldc_i4_6
,
// Push 6 onto the stack as I4
10362
NET_ldc_i4_7
,
// Push 7 onto the stack as I4
10363
NET_ldc_i4_8
,
// Push 8 onto the stack as I4
10364
NET_ldc_i4_m1
,
// Push -1 onto the stack as I4
10365
NET_ldc_i4_s
,
// Push num onto the stack as I4, short form
10366
NET_ldc_i8
,
// Push num of type I8 onto the stack as I8
10367
NET_ldc_r4
,
// Push num of type R4 onto the stack as F
10368
NET_ldc_r8
,
// Push num of type R8 onto the stack as F
10369
NET_ldelem_i
,
// Load the element at index with type I onto the top of the stack as an I
10370
NET_ldelem_i1
,
// Load the element at index with type I1 onto the top of the stack as an I4
10371
NET_ldelem_i2
,
// Load the element at index with type I2 onto the top of the stack as an I4
10372
NET_ldelem_i4
,
// Load the element at index with type I4 onto the top of the stack as an I4
10373
NET_ldelem_i8
,
// Load the element at index with type I8 onto the top of the stack as an I8
10374
NET_ldelem_r4
,
// Load the element at index with type R4 onto the top of the stack as an F
10375
NET_ldelem_r8
,
// Load the element at index with type R8 onto the top of the stack as an F
10376
NET_ldelem_ref
,
// Load the element at index, an object, onto the top of the stack as an O
10377
NET_ldelem_u1
,
// Load the element at index with type U1 onto the top of the stack as an I4
10378
NET_ldelem_u2
,
// Load the element at index with type U2 onto the top of the stack as an I4
10379
NET_ldelem_u4
,
// Load the element at index with type U4 onto the top of the stack as an I4
10380
NET_ldelema
,
// Load the address of element at index onto the top of the stack
10381
NET_ldfld
,
// Push the value of field of object on the stack
10382
NET_ldflda
,
// Push the address of field of object on the stack
10383
NET_ldftn
,
// Push a pointer to a method referenced by method on the stack
10384
NET_ldind_i
,
// Indirect load value of type I as I stack
10385
NET_ldind_i1
,
// Indirect load value of type I1 as I4 on stack
10386
NET_ldind_i2
,
// Indirect load value of type I2 as I4 on stack
10387
NET_ldind_i4
,
// Indirect load value of type I4 as I4 on stack
10388
NET_ldind_i8
,
// Indirect load value of type I8 as I8 on stack
10389
NET_ldind_r4
,
// Indirect load value of type R4 as F stack
10390
NET_ldind_r8
,
// Indirect load value of type R8 as F stack
10391
NET_ldind_ref
,
// Indirect load value of type object ref as O on stack
10392
NET_ldind_u1
,
// Indirect load value of type U1 as I4 stack
10393
NET_ldind_u2
,
// Indirect load value of type U2 as I4 stack
10394
NET_ldind_u4
,
// Indirect load value of type U4 as I4 stack
10395
NET_ldlen
,
// Push the length (of type U) of array on the stack
10396
NET_ldloc
,
// Load local variable of index indx onto stack
10397
NET_ldloc_0
,
// Load local variable 0 onto stack
10398
NET_ldloc_1
,
// Load local variable 1 onto stack
10399
NET_ldloc_2
,
// Load local variable 2 onto stack
10400
NET_ldloc_3
,
// Load local variable 3 onto stack
10401
NET_ldloc_s
,
// Load local variable of index indx onto stack, short form
10402
NET_ldloca
,
// Load address of local variable
10403
NET_ldloca_s
,
// Load address of local variable, short form
10404
NET_ldnull
,
// Push null GC reference on the stack
10405
NET_ldobj
,
// Copy instance of value type to the stack.
10406
NET_ldsfld
,
// Push the value of field on the stack
10407
NET_ldsflda
,
// Push the address of the static field on the stack
10408
NET_ldstr
,
// Push a string object for the literal string
10409
NET_ldtoken
,
// Convert metadata token to its runtime representation
10410
NET_ldvirtftn
,
// Push address of virtual method on the stack
10411
NET_leave
,
// Exit a protected region of code
10412
NET_leave_s
,
// Exit a protected region of code, short form
10413
NET_localloc
,
// Allocate space from the local memory pool
10414
NET_mkrefany
,
// Push a typed reference to pointer of type class onto the stack
10415
NET_mul
,
// Multiply values
10416
NET_mul_ovf
,
// Multiply signed integer values. Signed result must fit in same size
10417
NET_mul_ovf_un
,
// Multiply unsigned integer values. Unsigned result must fit in same size
10418
NET_neg
,
// Negate value
10419
NET_newarr
,
// Create a zero-based, one-dimensional array
10420
NET_newobj
,
// Create a new object
10421
NET_nop
,
// Do nothing
10422
NET_not
,
// Bitwise complement
10423
NET_or
,
// Bitwise OR of two integer values, returns an integer
10424
NET_pop
,
// Pop a value from the stack
10425
NET_refanytype
,
// Push the type token stored in a typed reference
10426
NET_refanyval
,
// Push the address stored in a typed reference
10427
NET_rem
,
// Remainder of dividing value1 by value2
10428
NET_rem_un
,
// Remainder of unsigned dividing value1 by value2
10429
NET_ret
,
// Return from method, possibly returning a value
10430
NET_rethrow
,
// Rethrow the current exception
10431
NET_shl
,
// Shift an integer to the left (shifting in zeros)
10432
NET_shr
,
// Shift an integer right, (shift in sign), return an integer
10433
NET_shr_un
,
// Shift an integer right, (shift in zero), return an integer
10434
NET_sizeof
,
// Push the size, in bytes, of a value type as a U4
10435
NET_starg
,
// Store a value to argument
10436
NET_starg_s
,
// Store a value to argument, short form
10437
NET_stelem_i
,
// Replace array element at index with the I value on the stack
10438
NET_stelem_i1
,
// Replace array element at index with the I1 value on the stack
10439
NET_stelem_i2
,
// Replace array element at index with the I2 value on the stack
10440
NET_stelem_i4
,
// Replace array element at index with the I4 value on the stack
10441
NET_stelem_i8
,
// Replace array element at index with the I8 value on the stack
10442
NET_stelem_r4
,
// Replace array element at index with the R4 value on the stack
10443
NET_stelem_r8
,
// Replace array element at index with the R8 value on the stack
10444
NET_stelem_ref
,
// Replace array element at index with the ref value on the stack
10445
NET_stfld
,
// Store into a field of an object
10446
NET_stind_i
,
// Store value of type I into memory at address
10447
NET_stind_i1
,
// Store value of type I1 into memory at address
10448
NET_stind_i2
,
// Store value of type I2 into memory at address
10449
NET_stind_i4
,
// Store value of type I4 into memory at address
10450
NET_stind_i8
,
// Store value of type I8 into memory at address
10451
NET_stind_r4
,
// Store value of type R4 into memory at address
10452
NET_stind_r8
,
// Store value of type R8 into memory at address
10453
NET_stind_ref
,
// Store value of type object ref (type O) into memory at address
10454
NET_stloc
,
// Pop value from stack into local variable
10455
NET_stloc_0
,
// Pop value from stack into local variable 0
10456
NET_stloc_1
,
// Pop value from stack into local variable 1
10457
NET_stloc_2
,
// Pop value from stack into local variable 2
10458
NET_stloc_3
,
// Pop value from stack into local variable 3
10459
NET_stloc_s
,
// Pop value from stack into local variable, short form
10460
NET_stobj
,
// Store a value type from the stack into memory
10461
NET_stsfld
,
// Store a static field of a class
10462
NET_sub
,
// Subtract value2 from value1, returning a new value
10463
NET_sub_ovf
,
// Subtract I from an I. Signed result must fit in same size
10464
NET_sub_ovf_un
,
// Subtract U from a U. Unsigned result must fit in same size
10465
NET_switch
,
// Jump to one of N values
10466
NET_tail_
,
// (prefix) subsequent call terminates current method
10467
NET_throw
,
// Throw an exception
10468
NET_unaligned_
,
// (prefix) subsequent pointer instruction may be unaligned
10469
NET_unbox
,
// Convert boxed value type to its raw form
10470
NET_volatile_
,
// (prefix) subsequent pointer reference is volatile
10471
NET_xor
,
// Bitwise XOR of integer values, returns an integer
10472
NET_ldelem
,
// Load the element at index onto the top of the stack
10473
NET_stelem
,
// Replace array element at index with the ref value on the stack
10474
// 2.0 instructions
10475
NET_unbox_any
,
// Extract a value-type from obj, its boxed representation
10476
NET_constrained_
,
// (prefix) invoke a member on a value of a variable type
10477
NET_no_
,
// (prefix) possibly skip a fault check
10478
NET_readonly_
,
// (prefix) following instruction returns a controlled-mutability managed pointer
10479
NET_last
,
10480
};
10481
/*
10482
* Interactive disassembler (IDA).
10483
* Copyright (c) 1990-2026 Hex-Rays
10484
* ALL RIGHTS RESERVED.
10485
*
10486
* HCS12X opcodes added by alexbratovic@bratspeed.com 12/12/2007
10487
* XGATE opcodes added by alexbratovic@bratspeed.com 12/09/2009
10488
*/
10489
enum
10490
{
10491
MC12_null
= 0,
// Unknown Operation
10492
MC12_aba
,
// Add B to A
10493
MC12_abx
,
// Add B to X
10494
MC12_aby
,
// Add B to Y
10495
MC12_adca
,
// Add with carry to A
10496
MC12_adcb
,
// Add with carry to B
10497
MC12_adda
,
// Add memory to A
10498
MC12_addb
,
// Add memory to B
10499
MC12_addd
,
// Add to D
10500
MC12_anda
,
// AND A with memory
10501
MC12_andb
,
// AND B with memory
10502
MC12_andcc
,
// Logical AND CCR with memory
10503
MC12_asl
,
// Arithmetic shift left memory
10504
MC12_asla
,
// Arithmetic shift left A
10505
MC12_aslb
,
// Arithmetic shift left B
10506
MC12_asld
,
// Arithmetic shift left D
10507
MC12_asr
,
// Arithmetic shift right memory
10508
MC12_asra
,
// Arithmetic shift right A
10509
MC12_asrb
,
// Arithmetic shift right B
10510
MC12_bcc
,
// Branch if carry clear
10511
MC12_bclr
,
// Clear bits in memory
10512
MC12_bcs
,
// Branch if carry set
10513
MC12_beq
,
// Branch if equal
10514
MC12_bge
,
// Branch if greater than or equal
10515
MC12_bgnd
,
// Enter background debug mode
10516
MC12_bgt
,
// Branch if greater than
10517
MC12_bhi
,
// Branch if higher
10518
MC12_bhs
,
// Branch if higher or same
10519
MC12_bita
,
// Bit test A
10520
MC12_bitb
,
// Bit test B
10521
MC12_ble
,
// Branch if less than or equal
10522
MC12_blo
,
// Branch if lower
10523
MC12_bls
,
// Branch if lower or same
10524
MC12_blt
,
// Branch if less than
10525
MC12_bmi
,
// Branch if minus
10526
MC12_bne
,
// Branch if not equal
10527
MC12_bpl
,
// Branch if plus
10528
MC12_bra
,
// Branch always
10529
MC12_brclr
,
// Branch if selected bits clear
10530
MC12_brn
,
// Branch never
10531
MC12_brset
,
// Branch if selected bits set
10532
MC12_bset
,
// Set bits in memory
10533
MC12_bsr
,
// Branch to subroutine
10534
MC12_bvc
,
// Branch if overflow clear
10535
MC12_bvs
,
// Branch if overflow set
10536
MC12_call
,
// Call subroutine in expanded memory
10537
MC12_cba
,
// Compare A to B
10538
MC12_clc
,
// Clear C bit
10539
MC12_cli
,
// Clear I bit
10540
MC12_clr
,
// Clear memory
10541
MC12_clra
,
// Clear A
10542
MC12_clrb
,
// Clear B
10543
MC12_clv
,
// Clear V bit
10544
MC12_cmpa
,
// Compare A to memory
10545
MC12_cmpb
,
// Compare B to memory
10546
MC12_com
,
// One's complement memory
10547
MC12_coma
,
// One's complement A
10548
MC12_comb
,
// One's complement B
10549
MC12_cpd
,
// Compare D to memory (16-bit)
10550
MC12_cps
,
// Compare SP to memory (16-bit)
10551
MC12_cpx
,
// Compare X to memory (16-bit)
10552
MC12_cpy
,
// Compare Y to memory (16-bit)
10553
MC12_daa
,
// Decimal adjust A
10554
MC12_dbeq
,
// Decrement counter and branch if = 0
10555
MC12_dbne
,
// Decrement counter and branch if != 0
10556
MC12_dec
,
// Decrement memory
10557
MC12_deca
,
// Decrement A
10558
MC12_decb
,
// Decrement B
10559
MC12_des
,
// Decrement SP
10560
MC12_dex
,
// Decrement X
10561
MC12_dey
,
// Decrement Y
10562
MC12_ediv
,
// 32 by 16 divide (unsigned) Quotient->Y Remainder->D
10563
MC12_edivs
,
// 32 by 16 divide (signed) Quotient->Y Remainder->D
10564
MC12_emacs
,
// Multiply and accumulate (signed)
10565
MC12_emaxd
,
// MAX of two unsigned 16-bit values result to accumulator
10566
MC12_emaxm
,
// MAX of two unsigned 16-bit values result to memory
10567
MC12_emind
,
// MIN of two unsigned 16-bit values result to accumulator
10568
MC12_eminm
,
// MIN of two unsigned 16-bit values result to memory
10569
MC12_emul
,
// 16 by 16 multiply (unsigned)
10570
MC12_emuls
,
// 16 by 16 multiply (signed)
10571
MC12_eora
,
// Exclusive OR A with memory
10572
MC12_eorb
,
// Exclusive OR B with memory
10573
MC12_etbl
,
// 16-bit table lookup and interpolate
10574
MC12_exg
,
// Exchange register to register
10575
MC12_fdiv
,
// 16 by 16 fractional divide Remainder->D
10576
MC12_ibeq
,
// Increment counter and branch if = 0
10577
MC12_ibne
,
// Increment counter and branch if != 0
10578
MC12_idiv
,
// 16 by 16 integer divide (unsigned) Remainder->D
10579
MC12_idivs
,
// 16 by 16 integer divide (signed) Remainder->D
10580
MC12_inc
,
// Increment memory
10581
MC12_inca
,
// Increment A
10582
MC12_incb
,
// Increment B
10583
MC12_ins
,
// Increment SP
10584
MC12_inx
,
// Increment X
10585
MC12_iny
,
// Increment Y
10586
MC12_jmp
,
// Jump Address
10587
MC12_jsr
,
// Jump to subroutine
10588
MC12_lbcc
,
// Long branch if carry clear
10589
MC12_lbcs
,
// Long branch if carry set
10590
MC12_lbeq
,
// Long branch if equal
10591
MC12_lbge
,
// Long branch if greater than or equal
10592
MC12_lbgt
,
// Long branch if greater than
10593
MC12_lbhi
,
// Long branch if higher
10594
MC12_lbhs
,
// Long branch if higher or same
10595
MC12_lble
,
// Long branch if less than or equal
10596
MC12_lblo
,
// Long branch if lower
10597
MC12_lbls
,
// Long branch if lower or same
10598
MC12_lblt
,
// Long branch if less than
10599
MC12_lbmi
,
// Long branch if minus
10600
MC12_lbne
,
// Long branch if not equal
10601
MC12_lbpl
,
// Long branch if plus
10602
MC12_lbra
,
// Long branch always
10603
MC12_lbrn
,
// Long branch never
10604
MC12_lbvc
,
// Long branch if overflow clear
10605
MC12_lbvs
,
// Long branch if overflow set
10606
MC12_ldaa
,
// Load A
10607
MC12_ldab
,
// Load B
10608
MC12_ldd
,
// Load D
10609
MC12_lds
,
// Load SP
10610
MC12_ldx
,
// Load X
10611
MC12_ldy
,
// Load Y
10612
MC12_leas
,
// Load effective address into SP
10613
MC12_leax
,
// Load effective address into X
10614
MC12_leay
,
// Load effective address into Y
10615
MC12_lsl
,
// Logic shift left memory
10616
MC12_lsla
,
// Logic shift left A
10617
MC12_lslb
,
// Logic shift left B
10618
MC12_lsld
,
// Logic shift left D
10619
MC12_lsr
,
// Logic shift right memory
10620
MC12_lsra
,
// Logic shift right A
10621
MC12_lsrb
,
// Logic shift right B
10622
MC12_lsrd
,
// Logic shift right D
10623
MC12_maxa
,
// MAX of two unsigned 8-bit values result to accumulator
10624
MC12_maxm
,
// MAX of two unsigned 8-bit values result to memory
10625
MC12_mem
,
// Membership function
10626
MC12_mina
,
// MIN of two unsigned 8-bit values result to accumulator
10627
MC12_minm
,
// MIN of two unsigned 8-bit values result to memory
10628
MC12_movb
,
// Move byte (8-bit)
10629
MC12_movw
,
// Move word (16-bit)
10630
MC12_mul
,
// 8 by 8 multiply (unsigned)
10631
MC12_neg
,
// Two's complement memory
10632
MC12_nega
,
// Two's complement A
10633
MC12_negb
,
// Two's complement B
10634
MC12_nop
,
// Null operation
10635
MC12_oraa
,
// OR A with memory
10636
MC12_orab
,
// OR B with memory
10637
MC12_orcc
,
// Logical OR CCR with memory
10638
MC12_psha
,
// Push A
10639
MC12_pshb
,
// Push B
10640
MC12_pshc
,
// Push CCR
10641
MC12_pshd
,
// Push D
10642
MC12_pshx
,
// Push X
10643
MC12_pshy
,
// Push Y
10644
MC12_pula
,
// Pull A
10645
MC12_pulb
,
// Pull B
10646
MC12_pulc
,
// Pull CCR
10647
MC12_puld
,
// Pull D
10648
MC12_pulx
,
// Pull X
10649
MC12_puly
,
// Pull Y
10650
MC12_rev
,
// MIN-MAX rule evaluation
10651
MC12_revw
,
// MIN-MAX rule evaluation
10652
MC12_rol
,
// Rotate left memory through carry
10653
MC12_rola
,
// Rotate left A through carry
10654
MC12_rolb
,
// Rotate left B through carry
10655
MC12_ror
,
// Rotate right memory through carry
10656
MC12_rora
,
// Rotate right A through carry
10657
MC12_rorb
,
// Rotate right B through carry
10658
MC12_rtc
,
// Return from call
10659
MC12_rti
,
// Return from interrupt
10660
MC12_rts
,
// Return from subroutine
10661
MC12_sba
,
// Subtract B from A
10662
MC12_sbca
,
// Subtract with borrow from A
10663
MC12_sbcb
,
// Subtract with borrow from B
10664
MC12_sec
,
// Set C bit
10665
MC12_sei
,
// Set I bit
10666
MC12_sev
,
// Set V bit
10667
MC12_sex
,
// Sign extend 8-Bit operand
10668
MC12_staa
,
// Store A
10669
MC12_stab
,
// Store B
10670
MC12_std
,
// Store D
10671
MC12_stop
,
// Stop
10672
MC12_sts
,
// Store SP
10673
MC12_stx
,
// Store X
10674
MC12_sty
,
// Store Y
10675
MC12_suba
,
// Subtract memory from A
10676
MC12_subb
,
// Subtract memory from B
10677
MC12_subd
,
// Subtract memory from D
10678
MC12_swi
,
// Software interrupt
10679
MC12_tab
,
// Transfer A to B
10680
MC12_tap
,
// Transfer A to CCR
10681
MC12_tba
,
// Transfer B to A
10682
MC12_tbeq
,
// Test counter and branch if = 0
10683
MC12_tbl
,
// 8-bit table lookup and interpolate
10684
MC12_tbne
,
// Test counter and branch if != 0
10685
MC12_tfr
,
// Transfer register to register
10686
MC12_tpa
,
// Transfer CCR to A
10687
MC12_trap
,
// Unimplemented opcode interrupt
10688
MC12_tst
,
// Test memory for zero or minus
10689
MC12_tsta
,
// Test A for zero or minus
10690
MC12_tstb
,
// Test B for zero or minus
10691
MC12_tsx
,
// Transfer SP to X
10692
MC12_tsy
,
// Transfer SP to Y
10693
MC12_txs
,
// Transfer X to SP
10694
MC12_tys
,
// Transfer Y to SP
10695
MC12_wai
,
// Wait for interrupt
10696
MC12_wav
,
// Calculates numerator and denominator for weighted average calculation
10697
MC12_wavr
,
// Resumes execution of interrupted WAV instruction
10698
MC12_xgdx
,
// Exchange D with X
10699
MC12_xgdy
,
// Exchange D with Y
10700
// Pseudoinstructions
10701
MC12_skip1
,
// Skip one byte
10702
MC12_skip2
,
// Skip two bytes
10703
// hcs12x only instructions, 16-bit unless indicated
10704
MC12X_addx
,
// Add without Carry to X
10705
MC12X_addy
,
// Add without Carry to Y
10706
MC12X_aded
,
// Add with Carry to D(A:B)
10707
MC12X_adex
,
// Add with Carry to X
10708
MC12X_adey
,
// Add with Carry to Y
10709
MC12X_andx
,
// Logical AND X with Memory
10710
MC12X_andy
,
// Logical AND Y with Memory
10711
MC12X_aslw
,
// Arithmetic Shift Left
10712
MC12X_aslx
,
// Arithmetic Shift Left X
10713
MC12X_asly
,
// Arithmetic Shift Left Y
10714
MC12X_asrw
,
// Arithmetic Shift Right
10715
MC12X_asrx
,
// Arithmetic Shift Right X
10716
MC12X_asry
,
// Arithmetic Shift Right Y
10717
MC12X_bitx
,
// Logical AND X with Memory, does not change X or Memory
10718
MC12X_bity
,
// Logical AND Y with Memory, does not change Y or Memory
10719
MC12X_btas
,
// Bit(s) test and Set in Memory, Set CCR flags
10720
MC12X_clrw
,
// Clear Memory Location
10721
MC12X_clrx
,
// Clear X
10722
MC12X_clry
,
// Clear Y
10723
MC12X_comw
,
// One's Complement Memory
10724
MC12X_comx
,
// One's Complement X
10725
MC12X_comy
,
// One's Complement Y
10726
MC12X_cped
,
// Compare D to Memory with Borrow
10727
MC12X_cpes
,
// Compare SP to Memory with Borrow
10728
MC12X_cpex
,
// Compare X to Memory with Borrow
10729
MC12X_cpey
,
// Compare Y to Memory with Borrow
10730
MC12X_decw
,
// Decrement Memory
10731
MC12X_decx
,
// Decrement X
10732
MC12X_decy
,
// Decrement Y
10733
MC12X_eorx
,
// Exclusive OR X with Memory
10734
MC12X_eory
,
// Exclusive OR Y with Memory
10735
MC12X_gldaa
,
// Load A from Global Memory (8-bit)
10736
MC12X_gldab
,
// Load B from Global Memory (8-bit)
10737
MC12X_gldd
,
// Load D(A:B) from Global Memory
10738
MC12X_glds
,
// Load SP from Global Memory
10739
MC12X_gldx
,
// Load X from Global Memory
10740
MC12X_gldy
,
// Load Y from Global Memory
10741
MC12X_gstaa
,
// Store A to Global Memory (8-bit)
10742
MC12X_gstab
,
// Store B to Global Memory (8-bit)
10743
MC12X_gstd
,
// Store D(A:B) to Global Memory
10744
MC12X_gsts
,
// Store SP to Global Memory
10745
MC12X_gstx
,
// Store X to Global Memory
10746
MC12X_gsty
,
// Store Y to Global Memory
10747
MC12X_incw
,
// Increment Memory
10748
MC12X_incx
,
// Increment X
10749
MC12X_incy
,
// Increment Y
10750
MC12X_lsrw
,
// Logical Shift Memory to Right
10751
MC12X_lsrx
,
// Logical Shift X to Right
10752
MC12X_lsry
,
// Logical Shift Y to Right
10753
MC12X_negw
,
// Two's Complement Memory
10754
MC12X_negx
,
// Two's Complement X
10755
MC12X_negy
,
// Two's Complement Y
10756
MC12X_orx
,
// Logical OR X with memory
10757
MC12X_ory
,
// Logical OR Y with memory
10758
MC12X_pshcw
,
// Push CCR onto Stack (16-bit)
10759
MC12X_pulcw
,
// Pull CCR from Stack (16-bit)
10760
MC12X_rolw
,
// Rotate Memory Left through Carry
10761
MC12X_rolx
,
// Rotate X Left through Carry
10762
MC12X_roly
,
// Rotate Y Left through Carry
10763
MC12X_rorw
,
// Rotate Memory Right through Carry
10764
MC12X_rorx
,
// Rotate X Right through Carry
10765
MC12X_rory
,
// Rotate Y Right through Carry
10766
MC12X_sbed
,
// Subtract with Borrow from D
10767
MC12X_sbex
,
// Subtract with Borrow from X
10768
MC12X_sbey
,
// Subtract with Borrow from Y
10769
MC12X_subx
,
// Subtract Memory from X
10770
MC12X_suby
,
// Subtract Memory from Y
10771
MC12X_tstw
,
// Test Memory for Zero or Minus
10772
MC12X_tstx
,
// Test X for Zero or Minus
10773
MC12X_tsty
,
// Test Y for Zero or Minus
10774
// hcs12x V2 cpu only instructions
10775
MC12X_sys
,
// System call interrupt
10776
// hcs12x XGATE co-processor instructions
10777
MC12XGATE_adc
,
// Add with Carry
10778
MC12XGATE_add
,
// Add without Carry
10779
MC12XGATE_addh
,
// Add Immediate 8 bit Constant (High Byte)
10780
MC12XGATE_addl
,
// Add Immediate 8 bit Constant (Low Byte)
10781
MC12XGATE_and
,
// Logical AND
10782
MC12XGATE_andh
,
// Logical AND Immediate 8 bit Constant (High Byte)
10783
MC12XGATE_andl
,
// Logical AND Immediate 8 bit Constant (Low Byte)
10784
MC12XGATE_asr
,
// Arithmetic Shift Right
10785
MC12XGATE_bcc
,
// Branch if Carry Cleared (Same as BHS)
10786
MC12XGATE_bcs
,
// Branch if Carry Set (Same as BLO)
10787
MC12XGATE_beq
,
// Branch if Equal
10788
MC12XGATE_bfext
,
// Bit Field Extract
10789
MC12XGATE_bffo
,
// Bit Field Find First One
10790
MC12XGATE_bfins
,
// Bit Field Insert
10791
MC12XGATE_bfinsi
,
// Bit Field Insert and Invert
10792
MC12XGATE_bfinsx
,
// Bit Field Insert and XNOR
10793
MC12XGATE_bge
,
// Branch if Greater than or Equal to Zero
10794
MC12XGATE_bgt
,
// Branch if Greater than Zero
10795
MC12XGATE_bhi
,
// Branch if Higher
10796
MC12XGATE_bhs
,
// Branch if Higher or Same (Same as BCC)
10797
MC12XGATE_bith
,
// Bit Test Immediate 8 bit Constant (High Byte)
10798
MC12XGATE_bitl
,
// Bit Test Immediate 8 bit Constant (Low Byte)
10799
MC12XGATE_ble
,
// Branch if Less or Equal to Zero
10800
MC12XGATE_blo
,
// Branch if Carry Set (Same as BCS)
10801
MC12XGATE_bls
,
// Branch if Lower or Same
10802
MC12XGATE_blt
,
// Branch if Lower than Zero
10803
MC12XGATE_bmi
,
// Branch if Minus
10804
MC12XGATE_bne
,
// Branch if Not Equal
10805
MC12XGATE_bpl
,
// Branch if Plus
10806
MC12XGATE_bra
,
// Branch Always
10807
MC12XGATE_brk
,
// Break
10808
MC12XGATE_bvc
,
// Branch if Overflow Cleared
10809
MC12XGATE_bvs
,
// Branch if Overflow Set
10810
MC12XGATE_cmp
,
// Compare
10811
MC12XGATE_cmpl
,
// Compare Immediate 8 bit Constant (Low Byte)
10812
MC12XGATE_com
,
// One's Complement
10813
MC12XGATE_cpc
,
// Compare with Carry
10814
MC12XGATE_cpch
,
// Compare Immediate 8 bit Constant with Carry(High Byte)
10815
MC12XGATE_csem
,
// Clear Semaphore
10816
MC12XGATE_csl
,
// Logical Shift Left with Carry
10817
MC12XGATE_csr
,
// Logical Shift Right with Carry
10818
MC12XGATE_jal
,
// Jump and Link
10819
MC12XGATE_ldb
,
// Load Byte from Memory (Low Byte)
10820
MC12XGATE_ldh
,
// Load Immediate 8 bit Constant (High Byte)
10821
MC12XGATE_ldl
,
// Load Immediate 8 bit Constant (Low Byte)
10822
MC12XGATE_ldw
,
// Load Word from Memory
10823
MC12XGATE_lsl
,
// Logical Shift Left
10824
MC12XGATE_lsr
,
// Logical Shift Right
10825
MC12XGATE_mov
,
// Move Register Content
10826
MC12XGATE_neg
,
// Two's Complement
10827
MC12XGATE_nop
,
// No Operation
10828
MC12XGATE_or
,
// Logical OR
10829
MC12XGATE_orh
,
// Logical OR Immediate 8 bit Constant (High Byte)
10830
MC12XGATE_orl
,
// Logical OR Immediate 8 bit Constant (Low Byte)
10831
MC12XGATE_par
,
// Calculate Parity
10832
MC12XGATE_rol
,
// Rotate Left
10833
MC12XGATE_ror
,
// Rotate Right
10834
MC12XGATE_rts
,
// Return to Scheduler
10835
MC12XGATE_sbc
,
// Subtract with Carry
10836
MC12XGATE_sex
,
// Sign Extend Byte to Word
10837
MC12XGATE_sif
,
// Set Interrupt Flag
10838
MC12XGATE_ssem
,
// Set Semaphore
10839
MC12XGATE_stb
,
// Store Byte to Memory (Low Byte)
10840
MC12XGATE_stw
,
// Store Word to Memory
10841
MC12XGATE_sub
,
// Subtract without Carry
10842
MC12XGATE_subh
,
// Subtract Immediate 8 bit Constant (High Byte)
10843
MC12XGATE_subl
,
// Subtract Immediate 8 bit Constant (Low Byte)
10844
MC12XGATE_tfr
,
// Transfer from and to Special Registers
10845
MC12XGATE_tst
,
// Test Register
10846
MC12XGATE_xnor
,
// Logical Exclusive NOR
10847
MC12XGATE_xnorh
,
// Logical Exclusive NOR Immediate 8 bit Constant (High Byte)
10848
MC12XGATE_xnorl
,
// Logical Exclusive NOR Immediate 8 bit Constant (Low Byte)
10849
// Pseudo instructions that combine two IMM8 into IMM16
10850
MC12XGATE_add16
,
// Add Immediate 16 bit Constant
10851
MC12XGATE_and16
,
// Logical AND Immediate 16 bit Constant
10852
MC12XGATE_cmp16
,
// Compare Immediate 16 bit Constant
10853
MC12XGATE_ldw16
,
// Load Immediate 16 bit Constant
10854
MC12XGATE_or16
,
// Logical OR Immediate 16 bit Constant
10855
MC12XGATE_sub16
,
// Subtract Immediate 16 bit Constant
10856
MC12XGATE_xnor16
,
// Logical Exclusive NOR Immediate 16 bit Constant
10857
MC12_last
,
10858
};
10859
/*
10860
* Interactive disassembler (IDA).
10861
* Copyright (c) 1990-2026 Hex-Rays
10862
* ALL RIGHTS RESERVED.
10863
*
10864
*/
10865
enum
10866
{
10867
MC6816_null
= 0,
// Unknown Operation
10868
// DATA MOVEMENT INSTRUCTIONS
10869
// --------------------------
10870
// LOAD INSTRUCTIONS
10871
MC6816_ldaa
,
// Load A
10872
MC6816_ldab
,
// Load B
10873
MC6816_ldd
,
// Load D
10874
MC6816_lde
,
// Load E
10875
MC6816_lded
,
// Load Concatenated D and E
10876
// MOVE INSTRUCTIONS
10877
MC6816_movb
,
// Move Byte
10878
MC6816_movw
,
// Move Word
10879
// STORE INSTRUCTIONS
10880
MC6816_staa
,
// Store A
10881
MC6816_stab
,
// Store B
10882
MC6816_std
,
// Store D
10883
MC6816_ste
,
// Store E
10884
MC6816_sted
,
// Store Concatenated D and E
10885
// TRANSFER INSTRUCTIONS
10886
MC6816_tab
,
// Transfer A to B
10887
MC6816_tba
,
// Transfer B to A
10888
MC6816_tde
,
// Transfer D to E
10889
MC6816_ted
,
// Transfer E to D
10890
// EXCHANGE INSTRUCTIONS
10891
MC6816_xgab
,
// Exchange A with B
10892
MC6816_xgde
,
// Exchange D with E
10893
// MATHEMATIC INSTRUCTIONS
10894
// -----------------------
10895
// ADDITION AND SUBSTRACTION INSTRUCTIONS
10896
MC6816_aba
,
// Add B to A
10897
MC6816_adca
,
// Add with Carry to A
10898
MC6816_adcb
,
// Add with Carry to B
10899
MC6816_adcd
,
// Add with Carry to D
10900
MC6816_adce
,
// Add with Carry to E
10901
MC6816_adda
,
// Add to A
10902
MC6816_addb
,
// Add to B
10903
MC6816_addd
,
// Add to D
10904
MC6816_adde
,
// Add to E
10905
MC6816_ade
,
// Add D to E
10906
MC6816_sba
,
// Subtract B from A
10907
MC6816_sbca
,
// Subtract with Carry from A
10908
MC6816_sbcb
,
// Subtract with Carry from B
10909
MC6816_sbcd
,
// Subtract with Carry from D
10910
MC6816_sbce
,
// Subtract with Carry from E
10911
MC6816_sde
,
// Subtract D from E
10912
MC6816_suba
,
// Subtract from A
10913
MC6816_subb
,
// Subtract from B
10914
MC6816_subd
,
// Subtract from D
10915
MC6816_sube
,
// Subtract from E
10916
// BINARY CODED DECIMAL INSTRUCTIONS
10917
MC6816_daa
,
// Decimal Adjust A
10918
MC6816_sxt
,
// Sign Extend B into A
10919
// COMPARE AND TEST INSTRUCTIONS
10920
MC6816_cba
,
// Compare A to B
10921
MC6816_cmpa
,
// Compare A to Memory
10922
MC6816_cmpb
,
// Compare B to Memory
10923
MC6816_cpd
,
// Compare D to Memory
10924
MC6816_cpe
,
// Compare E to Memory
10925
MC6816_tst
,
// Test for Zero or Minus
10926
MC6816_tsta
,
// Test A for Zero or Minus
10927
MC6816_tstb
,
// Test B for Zero or Minus
10928
MC6816_tstd
,
// Test D for Zero or Minus
10929
MC6816_tste
,
// Test E for Zero or Minus
10930
MC6816_tstw
,
// Test for Zero or Minus Word
10931
// MULTIPLICATION AND DIVISION INSTRUCTIONS
10932
MC6816_ediv
,
// Extended Unsigned Divide
10933
MC6816_edivs
,
// Extended Signed Divide
10934
MC6816_emul
,
// Extended Unsigned Multiply
10935
MC6816_emuls
,
// Extended Signed Multiply
10936
MC6816_fdiv
,
// Unsigned Fractional Divide
10937
MC6816_fmuls
,
// Signed Fractional Multiply
10938
MC6816_idiv
,
// Integer Divide
10939
MC6816_mul
,
// Multiply
10940
// DECREMENT AND INCREMENT INSTRUCTIONS
10941
MC6816_dec
,
// Decrement Memory
10942
MC6816_deca
,
// Decrement A
10943
MC6816_decb
,
// Decrement B
10944
MC6816_decw
,
// Decrement Memory Word
10945
MC6816_inc
,
// Increment Memory
10946
MC6816_inca
,
// Increment A
10947
MC6816_incb
,
// Increment B
10948
MC6816_incw
,
// Increment Memory Word
10949
// CLEAR, COMPLEMENT, AND NEGATE INSTRUCTIONS
10950
MC6816_clr
,
// Clear Memory
10951
MC6816_clra
,
// Clear A
10952
MC6816_clrb
,
// Clear B
10953
MC6816_clrd
,
// Clear D
10954
MC6816_clre
,
// Clear E
10955
MC6816_clrw
,
// Clear Memory Word
10956
MC6816_com
,
// One's Complement Byte
10957
MC6816_coma
,
// One's Complement A
10958
MC6816_comb
,
// One's Complement B
10959
MC6816_comd
,
// One's Complement D
10960
MC6816_come
,
// One's Complement E
10961
MC6816_comw
,
// One's Complement Word
10962
MC6816_neg
,
// Two's Complement Byte
10963
MC6816_nega
,
// Two's Complement A
10964
MC6816_negb
,
// Two's Complement B
10965
MC6816_negd
,
// Two's Complement D
10966
MC6816_nege
,
// Two's Complement E
10967
MC6816_negw
,
// Two's Complement Word
10968
// BOOLEAN LOGIC INSTRUCTIONS
10969
MC6816_anda
,
// AND A
10970
MC6816_andb
,
// AND B
10971
MC6816_andd
,
// AND D
10972
MC6816_ande
,
// AND E
10973
MC6816_eora
,
// Exclusive OR A
10974
MC6816_eorb
,
// Exclusive OR B
10975
MC6816_eord
,
// Exclusive OR D
10976
MC6816_eore
,
// Exclusive OR E
10977
MC6816_oraa
,
// OR A
10978
MC6816_orab
,
// OR B
10979
MC6816_ord
,
// OR D
10980
MC6816_ore
,
// OR E
10981
// BIT TEST AND MANIPULATION INSTRUCTIONS
10982
// --------------------------------------
10983
MC6816_bita
,
// Bit Test A
10984
MC6816_bitb
,
// Bit Test B
10985
MC6816_bclr
,
// Clear Bit(s)
10986
MC6816_bclrw
,
// Clear Bit(s) Word
10987
MC6816_bset
,
// Set Bit(s)
10988
MC6816_bsetw
,
// Set Bit(s) Word
10989
// SHIFT AND ROTATE INSTRUCTIONS
10990
// -----------------------------
10991
MC6816_lsr
,
// Logic Shift Right
10992
MC6816_lsra
,
// Logic Shift Right A
10993
MC6816_lsrb
,
// Logic Shift Right B
10994
MC6816_lsrd
,
// Logic Shift Right D
10995
MC6816_lsre
,
// Logic Shift Right E
10996
MC6816_lsrw
,
// Logic Shift Right Word
10997
MC6816_asl
,
// Arithmetic Shift Left
10998
MC6816_asla
,
// Arithmetic Shift Left A
10999
MC6816_aslb
,
// Arithmetic Shift Left B
11000
MC6816_asld
,
// Arithmetic Shift Left D
11001
MC6816_asle
,
// Arithmetic Shift Left E
11002
MC6816_aslw
,
// Arithmetic Shift Left Word
11003
MC6816_asr
,
// Arithmetic Shift Right
11004
MC6816_asra
,
// Arithmetic Shift Right A
11005
MC6816_asrb
,
// Arithmetic Shift Right B
11006
MC6816_asrd
,
// Arithmetic Shift Right D
11007
MC6816_asre
,
// Arithmetic Shift Right E
11008
MC6816_asrw
,
// Arithmetic Shift Right Word
11009
MC6816_rol
,
// Rotate Left
11010
MC6816_rola
,
// Rotate Left A
11011
MC6816_rolb
,
// Rotate Left B
11012
MC6816_rold
,
// Rotate Left D
11013
MC6816_role
,
// Rotate Left E
11014
MC6816_rolw
,
// Rotate Left Word
11015
MC6816_ror
,
// Rotate Right
11016
MC6816_rora
,
// Rotate Right A
11017
MC6816_rorb
,
// Rotate Right B
11018
MC6816_rord
,
// Rotate Right D
11019
MC6816_rore
,
// Rotate Right E
11020
MC6816_rorw
,
// Rotate Right Word
11021
// PROGRAM CONTROL INSTRUCTIONS
11022
// ----------------------------
11023
// SHORT BRANCH INSTRUCTIONS
11024
MC6816_bra
,
// Branch Always
11025
MC6816_brn
,
// Branch Never
11026
MC6816_bcc
,
// Branch If Carry Clear
11027
MC6816_bcs
,
// Branch If Carry Set
11028
MC6816_beq
,
// Branch If Equal to Zero
11029
MC6816_bmi
,
// Branch If Minus
11030
MC6816_bne
,
// Branch If Not Equal to Zero
11031
MC6816_bpl
,
// Branch If Plus
11032
MC6816_bvc
,
// Branch If Overflow Clear
11033
MC6816_bvs
,
// Branch If Overflow Set
11034
MC6816_bhi
,
// Branch If Higher
11035
MC6816_bls
,
// Branch If Lower or Same
11036
MC6816_bge
,
// Branch If Greater than or Equal to Zero
11037
MC6816_bgt
,
// Branch If Greater than Zero
11038
MC6816_ble
,
// Branch If Less than or Equal to Zero
11039
MC6816_blt
,
// Branch If Less than Zero
11040
// LONG BRANCH INSTRUCTIONS
11041
MC6816_lbra
,
// Long Branch Always
11042
MC6816_lbrn
,
// Long Branch Never
11043
MC6816_lbcc
,
// Long Branch If Carry Clear
11044
MC6816_lbcs
,
// Long Branch If Carry Set
11045
MC6816_lbeq
,
// Long Branch If Equal to Zero
11046
MC6816_lbev
,
// Long Branch If EV Set
11047
MC6816_lbmi
,
// Long Branch If Minus
11048
MC6816_lbmv
,
// Long Branch If MV Set
11049
MC6816_lbne
,
// Long Branch If Not Equal to Zero
11050
MC6816_lbpl
,
// Long Branch If Plus
11051
MC6816_lbvc
,
// Long Branch If Overflow Clear
11052
MC6816_lbvs
,
// Long Branch If Overflow Set
11053
MC6816_lbhi
,
// Long Branch If Higher
11054
MC6816_lbls
,
// Long Branch If Lower or Same
11055
MC6816_lbge
,
// Long Branch If Greater than or Equal to Zero
11056
MC6816_lbgt
,
// Long Branch If Greater than Zero
11057
MC6816_lble
,
// Long Branch If Less than or Equal to Zero
11058
MC6816_lblt
,
// Long Branch If Less than Zero
11059
// BIT CONDITION BRANCH INSTRUCTIONS
11060
MC6816_brclr
,
// Branch if Bits Clear
11061
MC6816_brset
,
// Branch if Bits Set
11062
// JUMP INSTRUCTION
11063
MC6816_jmp
,
// Jump
11064
// SUBROUTINE INSTRUCTIONS
11065
MC6816_bsr
,
// Branch to Subroutine
11066
MC6816_jsr
,
// Jump to Subroutine
11067
MC6816_lbsr
,
// Long Branch to Subroutine
11068
MC6816_rts
,
// Return From Subroutine
11069
// INTERRUPT INSTRUCTIONS
11070
MC6816_rti
,
// Return from Interrupt
11071
MC6816_swi
,
// Software Interrupt
11072
// INDEXING AND ADDRESS EXTENSION INSTRUCTIONS
11073
// -------------------------------------------
11074
// INDEXING INSTRUCTIONS
11075
MC6816_abx
,
// Add B to IX
11076
MC6816_aby
,
// Add B to IY
11077
MC6816_abz
,
// Add B to IZ
11078
MC6816_adx
,
// Add D to IX
11079
MC6816_ady
,
// Add D to IY
11080
MC6816_adz
,
// Add D to IZ
11081
MC6816_aex
,
// Add E to IX
11082
MC6816_aey
,
// Add E to IY
11083
MC6816_aez
,
// Add E to IZ
11084
MC6816_aix
,
// Add Immediate Value to IX
11085
MC6816_aiy
,
// Add Immediate Value to IY
11086
MC6816_aiz
,
// Add Immediate Value to IZ
11087
MC6816_cpx
,
// Compare IX to Memory
11088
MC6816_cpy
,
// Compare IY to Memory
11089
MC6816_cpz
,
// Compare IZ to Memory
11090
MC6816_ldx
,
// Load IX
11091
MC6816_ldy
,
// Load IY
11092
MC6816_ldz
,
// Load IZ
11093
MC6816_stx
,
// Store IX
11094
MC6816_sty
,
// Store IY
11095
MC6816_stz
,
// Store IZ
11096
MC6816_tsx
,
// Transfer SP to IX
11097
MC6816_tsy
,
// Transfer SP to IY
11098
MC6816_tsz
,
// Transfer SP to IZ
11099
MC6816_txs
,
// Transfer IX to SP
11100
MC6816_txy
,
// Transfer IX to IY
11101
MC6816_txz
,
// Transfer IX to IZ
11102
MC6816_tys
,
// Transfer IY to SP
11103
MC6816_tyx
,
// Transfer IY to IX
11104
MC6816_tyz
,
// Transfer IY to IZ
11105
MC6816_tzs
,
// Transfer IZ to SP
11106
MC6816_tzx
,
// Transfer IZ to IX
11107
MC6816_tzy
,
// Transfer IZ to IY
11108
MC6816_xgdx
,
// Exchange D with IX
11109
MC6816_xgdy
,
// Exchange D with IY
11110
MC6816_xgdz
,
// Exchange D with IZ
11111
MC6816_xgex
,
// Exchange E with IX
11112
MC6816_xgey
,
// Exchange E with IY
11113
MC6816_xgez
,
// Exchange E with IZ
11114
// ADDRESS EXTENSION INSTRUCTIONS
11115
MC6816_tbek
,
// Transfer B to EK
11116
MC6816_tbsk
,
// Transfer B to SK
11117
MC6816_tbxk
,
// Transfer B to XK
11118
MC6816_tbyk
,
// Transfer B to YK
11119
MC6816_tbzk
,
// Transfer B to ZK
11120
MC6816_tekb
,
// Transfer EK to B
11121
MC6816_tskb
,
// Transfer SK to B
11122
MC6816_txkb
,
// Transfer XK to B
11123
MC6816_tykb
,
// Transfer YK to B
11124
MC6816_tzkb
,
// Transfer ZK to B
11125
// STACKING INSTRUCTIONS
11126
// ---------------------
11127
MC6816_ais
,
// Add Immediate Data to SP
11128
MC6816_cps
,
// Compare SP to Memory
11129
MC6816_lds
,
// Load SP
11130
MC6816_sts
,
// Store SP
11131
MC6816_psha
,
// Push A
11132
MC6816_pshb
,
// Push B
11133
MC6816_pshm
,
// Push Multiple Registers
11134
MC6816_pula
,
// Pull A
11135
MC6816_pulb
,
// Pull B
11136
MC6816_pulm
,
// Pull Multiple Registers
11137
// CONDITION CODE INSTRUCTIONS
11138
// ---------------------------
11139
MC6816_andp
,
// AND CCR
11140
MC6816_orp
,
// OR CCR
11141
MC6816_tap
,
// Transfer A to CCR
11142
MC6816_tdp
,
// Transfer D to CCR
11143
MC6816_tpa
,
// Transfer CCR MSB to A
11144
MC6816_tpd
,
// Transfer CCR to D
11145
// DIGITAL SIGNAL PROCESSING INSTRUCTIONS
11146
// --------------------------------------
11147
MC6816_ace
,
// Add E to AM[31:15]
11148
MC6816_aced
,
// Add concatenated E and D to AM
11149
MC6816_aslm
,
// Arithmetic Shift Left AM
11150
MC6816_asrm
,
// Arithmetic Shift Right AM
11151
MC6816_clrm
,
// Clear AM
11152
MC6816_ldhi
,
// Initialize HR and IR
11153
MC6816_mac
,
// Multiply and Accumulate
11154
MC6816_pshmac
,
// Push MAC State
11155
MC6816_pulmac
,
// Pull MAC State
11156
MC6816_rmac
,
// Repeating Multiply and Accumulate
11157
MC6816_tdmsk
,
// Transfer D to XMSK:YMSK
11158
MC6816_tedm
,
// Transfer E and T to AM[31:0]
11159
MC6816_tem
,
// Transfer E to AM[31:16]
11160
MC6816_tmer
,
// Transfer AM to E Rounded
11161
MC6816_tmet
,
// Transfer AM to E Truncated
11162
MC6816_tmxed
,
// Transfer AM t IX:E:D
11163
// STOP AND WAIT INSTRUCTIONS
11164
// --------------------------
11165
MC6816_lpstop
,
// Low Power Stop
11166
MC6816_wai
,
// Wait for Interrupt
11167
// BACKGROUND MODE AND NULL OPERATIONS
11168
// -----------------------------------
11169
MC6816_bgnd
,
// Enter Background Debugging Mode
11170
MC6816_nop
,
// Null operation
11171
MC6816_last
11172
};
11173
/*
11174
* Interactive disassembler (IDA).
11175
* Copyright (c) 1990-2026 Hex-Rays
11176
* ALL RIGHTS RESERVED.
11177
*
11178
*/
11179
enum
11180
{
11181
I960_null
= 0,
// Unknown Operation
11182
I960_addc
,
// Add ordinal with carry
11183
I960_addi
,
// Add integer
11184
I960_addo
,
// Add ordinal
11185
I960_alterbit
,
// Alter bit
11186
I960_and
,
// Src2 AND src1
11187
I960_andnot
,
// Src2 AND (NOT src1)
11188
I960_atadd
,
// Atomic add
11189
I960_atmod
,
// Atomic modify
11190
I960_b
,
// Branch
11191
I960_bal
,
// Branch and Link
11192
I960_balx
,
// Branch and Link Extended
11193
I960_bbc
,
// Check bit and branch if clear
11194
I960_bbs
,
// Check bit and branch if set
11195
I960_bno
,
// Branch if unordered/false
11196
I960_bg
,
// Branch if greater
11197
I960_be
,
// Branch if equal/true
11198
I960_bge
,
// Branch if greater or equal
11199
I960_bl
,
// Branch if less
11200
I960_bne
,
// Branch if not equal
11201
I960_ble
,
// Branch if less or equal
11202
I960_bo
,
// Branch if ordered
11203
I960_bx
,
// Branch Extended
11204
I960_call
,
// Call
11205
I960_calls
,
// Call system
11206
I960_callx
,
// Call extended
11207
I960_chkbit
,
// Check bit
11208
I960_clrbit
,
// Clear bit
11209
I960_cmpdeci
,
// Compare and decrement integer
11210
I960_cmpdeco
,
// Compare and decrement ordinal
11211
I960_cmpi
,
// Compare integer
11212
I960_cmpibno
,
// Compare integer and branch if unordered
11213
I960_cmpibg
,
// Compare integer and branch if greater
11214
I960_cmpibe
,
// Compare integer and branch if equal
11215
I960_cmpibge
,
// Compare integer and branch if greater or equal
11216
I960_cmpibl
,
// Compare integer and branch if less
11217
I960_cmpibne
,
// Compare integer and branch if not equal
11218
I960_cmpible
,
// Compare integer and branch if less or equal
11219
I960_cmpibo
,
// Compare integer and branch if ordered
11220
I960_cmpinci
,
// Compare and increment integer
11221
I960_cmpinco
,
// Compare and increment ordinal
11222
I960_cmpo
,
// Compare ordinal
11223
I960_cmpobg
,
// Compare ordinal and branch if greater
11224
I960_cmpobe
,
// Compare ordinal and branch if equal
11225
I960_cmpobge
,
// Compare ordinal and branch if greater or equal
11226
I960_cmpobl
,
// Compare ordinal and branch if less
11227
I960_cmpobne
,
// Compare ordinal and branch if not equal
11228
I960_cmpoble
,
// Compare ordinal and branch if less or equal
11229
I960_concmpi
,
// Conditional compare integer
11230
I960_concmpo
,
// Conditional compare ordinal
11231
I960_divi
,
// Divide integer
11232
I960_divo
,
// Divide ordinal
11233
I960_ediv
,
// Extended divide
11234
I960_emul
,
// Extended multiply
11235
I960_eshro
,
// Extended shift right ordinal
11236
I960_extract
,
// Extract
11237
I960_faultno
,
// Fault if unordered
11238
I960_faultg
,
// Fault if greater
11239
I960_faulte
,
// Fault if equal
11240
I960_faultge
,
// Fault if greater or equal
11241
I960_faultl
,
// Fault if less
11242
I960_faultne
,
// Fault if not equal
11243
I960_faultle
,
// Fault if less or equal
11244
I960_faulto
,
// Fault if ordered
11245
I960_flushreg
,
// Flush cached local register sets to memory
11246
I960_fmark
,
// Force mark
11247
I960_ld
,
// Load word
11248
I960_lda
,
// Load address
11249
I960_ldib
,
// Load integer byte
11250
I960_ldis
,
// Load integer short
11251
I960_ldl
,
// Load long
11252
I960_ldob
,
// Load ordinal byte
11253
I960_ldos
,
// Load ordinal short
11254
I960_ldq
,
// Load quad
11255
I960_ldt
,
// Load triple
11256
I960_mark
,
// Mark
11257
I960_modac
,
// Modify the AC register
11258
I960_modi
,
// Modulo integer
11259
I960_modify
,
// Modify
11260
I960_modpc
,
// Modify the process controls register
11261
I960_modtc
,
// Modify trace controls
11262
I960_mov
,
// Move word
11263
I960_movl
,
// Move long word
11264
I960_movq
,
// Move quad word
11265
I960_movt
,
// Move triple word
11266
I960_muli
,
// Multiply integer
11267
I960_mulo
,
// Multiply ordinal
11268
I960_nand
,
// NOT (src2 AND src1)
11269
I960_nor
,
// NOT (src2 OR src1)
11270
I960_not
,
// NOT src1
11271
I960_notand
,
// (NOT src2) AND src1
11272
I960_notbit
,
// Not bit
11273
I960_notor
,
// (NOT src2) or src1
11274
I960_or
,
// Src2 OR src1
11275
I960_ornot
,
// Src2 or (NOT src1)
11276
I960_remi
,
// Remainder integer
11277
I960_remo
,
// Remainder ordinal
11278
I960_ret
,
// Return
11279
I960_rotate
,
// Rotate left
11280
I960_scanbit
,
// Scan for bit
11281
I960_scanbyte
,
// Scan byte equal
11282
I960_setbit
,
// Set bit
11283
I960_shli
,
// Shift left integer
11284
I960_shlo
,
// Shift left ordinal
11285
I960_shrdi
,
// Shift right dividing integer
11286
I960_shri
,
// Shift right integer
11287
I960_shro
,
// Shift right ordinal
11288
I960_spanbit
,
// Span over bit
11289
I960_st
,
// Store word
11290
I960_stib
,
// Store integer byte
11291
I960_stis
,
// Store integer short
11292
I960_stl
,
// Store long
11293
I960_stob
,
// Store ordinal byte
11294
I960_stos
,
// Store ordinal short
11295
I960_stq
,
// Store quad
11296
I960_stt
,
// Store triple
11297
I960_subc
,
// Subtract ordinal with carry
11298
I960_subi
,
// Subtract integer
11299
I960_subo
,
// Subtract ordinal
11300
I960_syncf
,
// Synchronize faults
11301
I960_testno
,
// Test for unordered
11302
I960_testg
,
// Test for greater
11303
I960_teste
,
// Test for equal
11304
I960_testge
,
// Test for greater or equal
11305
I960_testl
,
// Test for less
11306
I960_testne
,
// Test for not equal
11307
I960_testle
,
// Test for less or equal
11308
I960_testo
,
// Test for ordered
11309
I960_xnor
,
// Src2 XNOR src1
11310
I960_xor
,
// Src2 XOR src1
11311
// Cx instructions
11312
I960_sdma
,
// Set up a DMA controller channel
11313
I960_sysctl
,
// Perform system control function
11314
I960_udma
,
// Copy current DMA pointers to internal data RAM
11315
// Unknown instructions
11316
I960_dcinva
,
11317
I960_cmpob
,
11318
I960_cmpib
,
11319
I960_cmpos
,
11320
I960_cmpis
,
11321
I960_bswap
,
11322
I960_intdis
,
11323
I960_inten
,
11324
I960_synmov
,
11325
I960_synmovl
,
11326
I960_synmovq
,
11327
I960_cmpstr
,
11328
I960_movqstr
,
11329
I960_movstr
,
11330
I960_inspacc
,
11331
I960_ldphy
,
11332
I960_synld
,
11333
I960_fill
,
11334
I960_daddc
,
11335
I960_dsubc
,
11336
I960_dmovt
,
11337
I960_condrec
,
11338
I960_receive
,
11339
I960_intctl
,
11340
I960_icctl
,
11341
I960_dcctl
,
11342
I960_halt
,
11343
I960_send
,
11344
I960_sendserv
,
11345
I960_resumprcs
,
11346
I960_schedprcs
,
11347
I960_saveprcs
,
11348
I960_condwait
,
11349
I960_wait
,
11350
I960_signal
,
11351
I960_ldtime
,
11352
I960_addono
,
11353
I960_addino
,
11354
I960_subono
,
11355
I960_subino
,
11356
I960_selno
,
11357
I960_addog
,
11358
I960_addig
,
11359
I960_subog
,
11360
I960_subig
,
11361
I960_selg
,
11362
I960_addoe
,
11363
I960_addie
,
11364
I960_suboe
,
11365
I960_subie
,
11366
I960_sele
,
11367
I960_addoge
,
11368
I960_addige
,
11369
I960_suboge
,
11370
I960_subige
,
11371
I960_selge
,
11372
I960_addol
,
11373
I960_addil
,
11374
I960_subol
,
11375
I960_subil
,
11376
I960_sell
,
11377
I960_addone
,
11378
I960_addine
,
11379
I960_subone
,
11380
I960_subine
,
11381
I960_selne
,
11382
I960_addole
,
11383
I960_addile
,
11384
I960_subole
,
11385
I960_subile
,
11386
I960_selle
,
11387
I960_addoo
,
11388
I960_addio
,
11389
I960_suboo
,
11390
I960_subio
,
11391
I960_selo
,
11392
// Floating point instructions
11393
I960_faddr
,
I960_fp_first
=
I960_faddr
,
11394
I960_faddrl
,
11395
I960_fatanr
,
11396
I960_fatanrl
,
11397
I960_fclassr
,
11398
I960_fclassrl
,
11399
I960_fcmpor
,
11400
I960_fcmporl
,
11401
I960_fcmpr
,
11402
I960_fcmprl
,
11403
I960_fcosr
,
11404
I960_fcosrl
,
11405
I960_fcpyrsre
,
11406
I960_fcpysre
,
11407
I960_fcvtilr
,
11408
I960_fcvtir
,
11409
I960_fcvtri
,
11410
I960_fcvtril
,
11411
I960_fcvtzri
,
11412
I960_fcvtzril
,
11413
I960_fdivr
,
11414
I960_fdivrl
,
11415
I960_fexpr
,
11416
I960_fexprl
,
11417
I960_flogbnr
,
11418
I960_flogbnrl
,
11419
I960_flogepr
,
11420
I960_flogeprl
,
11421
I960_flogr
,
11422
I960_flogrl
,
11423
I960_fmovr
,
11424
I960_fmovre
,
11425
I960_fmovrl
,
11426
I960_fmulr
,
11427
I960_fmulrl
,
11428
I960_fremr
,
11429
I960_fremrl
,
11430
I960_froundr
,
11431
I960_froundrl
,
11432
I960_fscaler
,
11433
I960_fscalerl
,
11434
I960_fsinr
,
11435
I960_fsinrl
,
11436
I960_fsqrtr
,
11437
I960_fsqrtrl
,
11438
I960_fsubr
,
11439
I960_fsubrl
,
11440
I960_ftanr
,
11441
I960_ftanrl
,
I960_fp_last
=
I960_ftanrl
,
11442
I960_last
,
11443
};
11444
/*
11445
* Interactive disassembler (IDA).
11446
* Copyright (c) 1990-2026 Hex-Rays
11447
* ALL RIGHTS RESERVED.
11448
*
11449
*/
11450
enum
11451
{
11452
F2MC_null
= 0,
// Unknown Operation
11453
// TRANSFER INSTRUCTIONS
11454
F2MC_mov
,
// Move byte data from source to destination
11455
F2MC_movn
,
// Move immediate nibble data to A
11456
F2MC_movx
,
// Move byte data with sign extension from source to A
11457
F2MC_xch
,
// Exchange byte data of source to destination
11458
F2MC_movw
,
// Move word data from source to destination
11459
F2MC_xchw
,
// Exchange word data of source to destination
11460
F2MC_movl
,
// Move long word data from source to destination
11461
// NUMERIC DATA OPERATIONS INSTRUCTIONS
11462
F2MC_add
,
// Add byte data of destination and source to destination
11463
F2MC_addc1
,
// Add byte data of AL and AH with Carry to AL
11464
F2MC_addc2
,
// Add byte data of A and effective address with Carry to A
11465
F2MC_adddc
,
// Add decimal data of AL and AH with Carry to AL
11466
F2MC_sub
,
// Subtract byte data of source from festination to destination
11467
F2MC_subc1
,
// Subtract byte data of AL from AH with Carry to AL
11468
F2MC_subc2
,
// Subtract byte data of effective address from A with Carry to A
11469
F2MC_subdc
,
// Subtract decimal data of AL from AH with Carry to AL
11470
F2MC_addw1
,
// Add word data of AH and AL to AL
11471
F2MC_addw2
,
// Add word data of destination and source to destination
11472
F2MC_addcw
,
// Add word data of A and effective address from A with Carry to A
11473
F2MC_subw1
,
// Subtract word data of AL from AH to AL
11474
F2MC_subw2
,
// Subtract word data of source from festination to destination
11475
F2MC_subcw
,
// Subtract word data of A and effective address from A with carry to A
11476
F2MC_addl
,
// Add long word data of destination and source to destination
11477
F2MC_subl
,
// Subtract long word data of source from festination to destination
11478
F2MC_inc
,
// Increment byte data
11479
F2MC_dec
,
// Decrement byte data
11480
F2MC_incw
,
// Increment word data
11481
F2MC_decw
,
// Decrement word data
11482
F2MC_incl
,
// Increment long word data
11483
F2MC_decl
,
// Decrement long word data
11484
F2MC_cmp1
,
// Compare byte data of AH and AL
11485
F2MC_cmp2
,
// Compare byte data of destination and source
11486
F2MC_cmpw1
,
// Compare word data of AH and AL
11487
F2MC_cmpw2
,
// Compare word data of destination and source
11488
F2MC_cmpl
,
// Compare long word data of destination and source
11489
F2MC_divu1
,
// Divide unsigned AH by AL
11490
F2MC_divu2
,
// Divide unsigned word data by unsigned byte data
11491
F2MC_divuw
,
// Divide unsigned long word data by unsigned word data
11492
F2MC_mulu1
,
// Multiply unsigned byte AH by AL
11493
F2MC_mulu2
,
// Multiply unsigned byte data
11494
F2MC_muluw1
,
// Multiply unsigned word AH by AL
11495
F2MC_muluw2
,
// Multiply unsigned word data
11496
F2MC_div1
,
// Divide AH by AL
11497
F2MC_div2
,
// Divide word data by byte data
11498
F2MC_divw
,
// Divide long word data by word data
11499
F2MC_mul1
,
// Multiply byte AH by AL
11500
F2MC_mul2
,
// Multiply byte data
11501
F2MC_mulw1
,
// Multiply word AH by AL
11502
F2MC_mulw2
,
// Multiply word data
11503
// LOGICAL DATA OPERATION INSTRUCTIONS
11504
F2MC_and
,
// And byte data of destination and source to destination
11505
F2MC_or
,
// Or byte data of destination and source to destination
11506
F2MC_xor
,
// Exclusive or byte data of destination and source to destination
11507
F2MC_not
,
// Not byte data of destination
11508
F2MC_andw1
,
// And word data of AH and AL to AL
11509
F2MC_andw2
,
// And word data of destination and source to destination
11510
F2MC_orw1
,
// Or word data of AH and AL to AL
11511
F2MC_orw2
,
// Or word data of destination and source to destination
11512
F2MC_xorw1
,
// Exclusive or word data of AH and AL to AL
11513
F2MC_xorw2
,
// Exclusive or word data of destination and source to destination
11514
F2MC_notw
,
// Not word data of destination
11515
F2MC_andl
,
// And long word data of destination and source to destination
11516
F2MC_orl
,
// Or long word data of destination and source to destination
11517
F2MC_xorl
,
// Exclusive or long word data of destination and source to destination
11518
F2MC_neg
,
// Negate byte data of destination
11519
F2MC_negw
,
// Negate word data of destination
11520
F2MC_nrml
,
// Normalize long word
11521
// SHIFT INSTRUCTIONS
11522
F2MC_rorc
,
// Rotate byte data of A with Carry to right
11523
F2MC_rolc
,
// Rotate byte data of A with Carry to left
11524
F2MC_asr
,
// Arithmetic shift byte data of A to right
11525
F2MC_lsr
,
// Logical shift byte data of A to right
11526
F2MC_lsl
,
// Logical shift byte data of A to left
11527
F2MC_asrw1
,
// Arithmetic shift word data of A to right
11528
F2MC_asrw2
,
// Arithmetic shift word data of A to right
11529
F2MC_lsrw1
,
// Logical shift word data of A to right
11530
F2MC_lsrw2
,
// Logical shift word data of A to right
11531
F2MC_lslw1
,
// Logical shift word data of A to left
11532
F2MC_lslw2
,
// Logical shift word data of A to left
11533
F2MC_asrl
,
// Arithmetic shift long word data of A to right
11534
F2MC_lsrl
,
// Logical shift long word data of A to right
11535
F2MC_lsll
,
// Logical shift long word data of A to left
11536
// BRANCH INSTRUCTIONS
11537
F2MC_bz
,
// Branch if Zero
11538
F2MC_bnz
,
// Branch if Not Zero
11539
F2MC_bc
,
// Branch if Carry
11540
F2MC_bnc
,
// Branch if Not Carry
11541
F2MC_bn
,
// Branch if Negative
11542
F2MC_bp
,
// Branch if Not Negative
11543
F2MC_bv
,
// Branch if Overflow
11544
F2MC_bnv
,
// Branch if Not Overflow
11545
F2MC_bt
,
// Branch if Sticky
11546
F2MC_bnt
,
// Branch if Not Sticky
11547
F2MC_blt
,
// Branch if Overflow or Negative
11548
F2MC_bge
,
// Branch if Not (Overflow or Negative)
11549
F2MC_ble
,
// Branch if (Overflow xor Negative) or Zero
11550
F2MC_bgt
,
// Branch if Not ((Overflow xor Negative) or Zero)
11551
F2MC_bls
,
// Branch if Carry or Zero
11552
F2MC_bhi
,
// Branch if Not (Carry or Zero)
11553
F2MC_bra
,
// Branch unconditionally
11554
F2MC_jmp
,
// Jump destination address
11555
F2MC_jmpp
,
// Jump destination physical address
11556
F2MC_call
,
// Call subroutine
11557
F2MC_callv
,
// Call vectored subroutine
11558
F2MC_callp
,
// Call physical address
11559
F2MC_cbne
,
// Compare byte data and branch if not Equal
11560
F2MC_cwbne
,
// Compare word data and branch if not Equal
11561
F2MC_dbnz
,
// Decrement byte data and branch if not Zero
11562
F2MC_dwbnz
,
// Decrement word data and branch if not Zero
11563
F2MC_int
,
// Software interrupt
11564
F2MC_intp
,
// Software interrupt
11565
F2MC_int9
,
// Software interrupt
11566
F2MC_reti
,
// Return from interrupt
11567
F2MC_link
,
// Link and create new stack frame
11568
F2MC_unlink
,
// Unlink and create new stack frame
11569
F2MC_ret
,
// Return from subroutine
11570
F2MC_retp
,
// Return from physical address
11571
// OTHER INSTRUCTIONS
11572
F2MC_pushw
,
// Push to stack memory
11573
F2MC_popw
,
// Pop from stack memory
11574
F2MC_jctx
,
// Jump context
11575
// F2MC_and,
11576
// F2MC_or,
11577
// F2MC_mov,
11578
F2MC_movea
,
// Move effective address to destination
11579
F2MC_addsp
,
// Add word data of SP and immediate data to SP
11580
// F2MC_mov,
11581
F2MC_nop
,
// No operation
11582
F2MC_adb
,
// ADB register
11583
F2MC_dtb
,
// DTB register
11584
F2MC_pcb
,
// PCB register
11585
F2MC_spb
,
// SPB register
11586
F2MC_ncc
,
// Flag change inhibit
11587
F2MC_cmr
,
// Common register bank
11588
F2MC_movb
,
// Move bit data
11589
F2MC_setb
,
// Set bit
11590
F2MC_clrb
,
// Clear bit
11591
F2MC_bbc
,
// Branch if bit condition satisfied
11592
F2MC_bbs
,
// Branch if bit condition satisfied
11593
F2MC_sbbs
,
// Set bit and branch if bit set
11594
F2MC_wbts
,
// Wait until bit condition satisfied
11595
F2MC_wbtc
,
// Wait until bit condition satisfied
11596
F2MC_swap
,
// Swap byte data of A
11597
F2MC_swapw
,
// Swap word data of A
11598
F2MC_ext
,
// Sign extend from byte data to word data
11599
F2MC_extw
,
// Sign extend from word data to long word data
11600
F2MC_zext
,
// Zero extendfrom byte data to word data
11601
F2MC_zextw
,
// Zero extendfrom word data to long word data
11602
F2MC_movsi
,
// Move string byte with addresses incremented
11603
F2MC_movsd
,
// Move string byte with addresses decremented
11604
F2MC_sceqi
,
// Scan string byte until Equal with address incremented
11605
F2MC_sceqd
,
// Scan string byte until Equal with address decremented
11606
F2MC_filsi
,
// Fill string byte
11607
F2MC_movswi
,
// Move string word with address incremented
11608
F2MC_movswd
,
// Move string word with address decremented
11609
F2MC_scweqi
,
// Scan string word until Equal with address incremented
11610
F2MC_scweqd
,
// Scan string word until Equal with address decremented
11611
F2MC_filswi
,
// Fill string word
11612
// MACROS
11613
F2MC_bz16
,
// Branch if Zero
11614
F2MC_bnz16
,
// Branch if Not Zero
11615
F2MC_bc16
,
// Branch if Carry
11616
F2MC_bnc16
,
// Branch if Not Carry
11617
F2MC_bn16
,
// Branch if Negative
11618
F2MC_bp16
,
// Branch if Not Negative
11619
F2MC_bv16
,
// Branch if Overflow
11620
F2MC_bnv16
,
// Branch if Not Overflow
11621
F2MC_bt16
,
// Branch if Sticky
11622
F2MC_bnt16
,
// Branch if Not Sticky
11623
F2MC_blt16
,
// Branch if Overflow or Negative
11624
F2MC_bge16
,
// Branch if Not (Overflow or Negative)
11625
F2MC_ble16
,
// Branch if (Overflow xor Negative) or Zero
11626
F2MC_bgt16
,
// Branch if Not ((Overflow xor Negative) or Zero)
11627
F2MC_bls16
,
// Branch if Carry or Zero
11628
F2MC_bhi16
,
// Branch if Not (Carry or Zero)
11629
F2MC_cbne16
,
// Compare byte data and branch if not Equal
11630
F2MC_cwbne16
,
// Compare word data and branch if not Equal
11631
F2MC_dbnz16
,
// Decrement byte data and branch if not Zero
11632
F2MC_dwbnz16
,
// Decrement word data and branch if not Zero
11633
F2MC_bbc16
,
// Branch if bit condition satisfied
11634
F2MC_bbs16
,
// Branch if bit condition satisfied
11635
F2MC_sbbs16
,
// Set bit and branch if bit set
11636
F2MC_last
,
11637
};
11638
/*
11639
* Interactive disassembler (IDA).
11640
* Copyright (c) 1990-2026 Hex-Rays
11641
* ALL RIGHTS RESERVED.
11642
*
11643
*/
11644
enum
11645
{
11646
TMS320C3X_null
= 0,
// Unknown Operation
11647
TMS320C3X_ABSF
,
// Absolute value of a floating-point number
11648
TMS320C3X_ABSI
,
// Absolute value of an integer
11649
TMS320C3X_ADDC
,
// Add integers with carry
11650
TMS320C3X_ADDF
,
// Add Floating-Point Values
11651
TMS320C3X_ADDI
,
// Add Integer
11652
TMS320C3X_AND
,
// Bitwise-Logical AND
11653
TMS320C3X_ANDN
,
// Bitwise-Logical AND With Complement
11654
TMS320C3X_ASH
,
// Arithmetic Shift
11655
TMS320C3X_CMPF
,
// Compare Floating-Point Value
11656
TMS320C3X_CMPI
,
// Compare Integer
11657
TMS320C3X_FIX
,
// Floating-Point-to-Integer Conversion
11658
TMS320C3X_FLOAT
,
// Integer-to-Floating-Point Conversion
11659
TMS320C3X_IDLE
,
// Idle Until Interrupt
11660
TMS320C3X_IDLE2
,
// Low-Power Idle
11661
TMS320C3X_LDE
,
// Load Floating-Point Exponent
11662
TMS320C3X_LDF
,
// Load Floating-Point Value
11663
TMS320C3X_LDFI
,
// Load Floating-Point Value, Interlocked
11664
TMS320C3X_LDI
,
// Load Integer
11665
TMS320C3X_LDII
,
// Load Integer, Interlocked
11666
TMS320C3X_LDM
,
// Load Floating-Point Mantissa
11667
TMS320C3X_LSH
,
// Logical Shift
11668
TMS320C3X_MPYF
,
// Multiply Floating-Point Value
11669
TMS320C3X_MPYI
,
// Multiply Integer
11670
TMS320C3X_NEGB
,
// Negative Integer With Borrow
11671
TMS320C3X_NEGF
,
// Negate Floating-Point Value
11672
TMS320C3X_NEGI
,
// Negate Integer
11673
TMS320C3X_NOP
,
// No Operation
11674
TMS320C3X_NORM
,
// Normalize
11675
TMS320C3X_NOT
,
// Bitwise-Logical Complement
11676
TMS320C3X_POP
,
// Pop Integer
11677
TMS320C3X_POPF
,
// Pop Floating-Point Value
11678
TMS320C3X_PUSH
,
// PUSH Integer
11679
TMS320C3X_PUSHF
,
// PUSH Floating-Point Value
11680
TMS320C3X_OR
,
// Bitwise-Logical OR
11681
TMS320C3X_LOPOWER
,
// Divide Clock by 16
11682
TMS320C3X_MAXSPEED
,
// Restore Clock to Regular Speed
11683
TMS320C3X_RND
,
// Round Floating-Point Value
11684
TMS320C3X_ROL
,
// Rotate Left
11685
TMS320C3X_ROLC
,
// Rotate Left Through Carry
11686
TMS320C3X_ROR
,
// Rotate Right
11687
TMS320C3X_RORC
,
// Rotate Right Through Carry
11688
TMS320C3X_RPTS
,
// Repeat Single Instruction
11689
TMS320C3X_STF
,
// Store Floating-Point Value
11690
TMS320C3X_STFI
,
// Store Floating-Point Value, Interlocked
11691
TMS320C3X_STI
,
// Store Integer
11692
TMS320C3X_STII
,
// Store Integer, Interlocked
11693
TMS320C3X_SIGI
,
// Signal, Interlocked
11694
TMS320C3X_SUBB
,
// Subtract Integer With Borrow
11695
TMS320C3X_SUBC
,
// Subtract Integer Conditionally
11696
TMS320C3X_SUBF
,
// Subtract Floating-Point Value
11697
TMS320C3X_SUBI
,
// Subtract Integer
11698
TMS320C3X_SUBRB
,
// Subtract Reverse Integer With Borrow
11699
TMS320C3X_SUBRF
,
// Subtract Reverse Floating-Point Value
11700
TMS320C3X_SUBRI
,
// Subtract Reverse Integer
11701
TMS320C3X_TSTB
,
// Test Bit Fields
11702
TMS320C3X_XOR
,
// Bitwise-Exclusive OR
11703
TMS320C3X_IACK
,
// Interrupt acknowledge
11704
TMS320C3X_ADDC3
,
// Add integers with carry (3-operand)
11705
TMS320C3X_ADDF3
,
// Add floating-point values (3-operand)
11706
TMS320C3X_ADDI3
,
// Add integers (3 operand)
11707
TMS320C3X_AND3
,
// Bitwise-logical AND (3-operand)
11708
TMS320C3X_ANDN3
,
// Bitwise-logical ANDN (3-operand)
11709
TMS320C3X_ASH3
,
// Arithmetic shift (3-operand)
11710
TMS320C3X_CMPF3
,
// Compare floating-point values (3-operand)
11711
TMS320C3X_CMPI3
,
// Compare integers (3-operand)
11712
TMS320C3X_LSH3
,
// Logical shift (3-operand)
11713
TMS320C3X_MPYF3
,
// Multiply floating-point value (3-operand)
11714
TMS320C3X_MPYI3
,
// Multiply integers (3-operand)
11715
TMS320C3X_OR3
,
// Bitwise-logical OR (3-operand)
11716
TMS320C3X_SUBB3
,
// Subtract integers with borrow (3-operand)
11717
TMS320C3X_SUBF3
,
// Subtract floating-point values (3-operand)
11718
TMS320C3X_SUBI3
,
// Subtract integers (3-operand)
11719
TMS320C3X_TSTB3
,
// Test Bit Fields, 3-Operand
11720
TMS320C3X_XOR3
,
// Bitwise-Exclusive OR, 3-Operand
11721
TMS320C3X_LDFcond
,
// Load floating-point value conditionally
11722
TMS320C3X_LDIcond
,
// Load integer conditionally
11723
TMS320C3X_BR
,
// Branch unconditionally (standard)
11724
TMS320C3X_BRD
,
// Branch unconditionally (delayed)
11725
TMS320C3X_CALL
,
// Call subroutine
11726
TMS320C3X_RPTB
,
// Repeat block of instructions
11727
TMS320C3X_SWI
,
// Software Interrupt
11728
TMS320C3X_Bcond
,
// Branch conditionally
11729
TMS320C3X_DBcond
,
// Decrement and branch conditionally
11730
TMS320C3X_CALLcond
,
// Call subroutine conditionally
11731
TMS320C3X_TRAPcond
,
// Trap Conditionally
11732
TMS320C3X_RETIcond
,
// Return from interrupt conditionally
11733
TMS320C3X_RETScond
,
// Return from subroutine conditionally
11734
TMS320C3X_RETIU
,
// Return from interrupt unconditionally
11735
TMS320C3X_RETSU
,
// Return from subroutine unconditionally
11736
TMS320C3X_NONE
,
// Pseudo insn (more accurate definition need)
11737
TMS320C3X_MV_IDX
,
// Pseudo insn (move to next index need)
11738
TMS320C3X_last
,
// last ID
11739
};
11740
/*
11741
* Interactive disassembler (IDA).
11742
* Copyright (c) 1990-2026 Hex-Rays
11743
* ALL RIGHTS RESERVED.
11744
*
11745
*/
11746
enum
11747
{
11748
TMS320C54_null
= 0,
// Unknown Operation
11749
// ARITHMETIC OPERATIONS
11750
// ADD INSTRUCTIONS
11751
TMS320C54_add1
,
// Add to Accumulator
11752
TMS320C54_add2
,
// Add to Accumulator
11753
TMS320C54_add3
,
// Add to Accumulator
11754
TMS320C54_addc
,
// Add to Accumulator With Carry
11755
TMS320C54_addm
,
// Add Long-Immediate Value to Memory
11756
TMS320C54_adds
,
// Add to Accumulator With Sign-Extension Suppressed
11757
// SUBTRACT INSTRUCTIONS
11758
TMS320C54_sub1
,
// Sub From Accumulator
11759
TMS320C54_sub2
,
// Sub From Accumulator
11760
TMS320C54_sub3
,
// Sub From Accumulator
11761
TMS320C54_subb
,
// Sub From Accumulator With Borrow
11762
TMS320C54_subc
,
// Subtract Conditionally
11763
TMS320C54_subs
,
// Subtract From Accumulator With Sign Extension Suppressed
11764
// MULTIPLY INSTRUCTIONS
11765
TMS320C54_mpy2
,
// Multiply Without Rounding
11766
TMS320C54_mpy3
,
// Multiply Without Rounding
11767
TMS320C54_mpyr2
,
// Multiply With Rounding
11768
TMS320C54_mpya
,
// Multiply by Accumulator A
11769
TMS320C54_mpyu
,
// Multiply Unsigned
11770
TMS320C54_squr
,
// Square
11771
// MULTIPLY-ACCUMULATE AND MULTIPLY-SUBTRACT INSTRUCTIONS
11772
TMS320C54_mac2
,
// Multiply Accumulate Without Rounding
11773
TMS320C54_mac3
,
// Multiply Accumulate Without Rounding
11774
TMS320C54_macr2
,
// Multiply Accumulate With Rounding
11775
TMS320C54_macr3
,
// Multiply Accumulate With Rounding
11776
TMS320C54_maca1
,
// Multiply by Accumulator A and Accumulate Without Rounding
11777
TMS320C54_maca2
,
// Multiply by Accumulator A and Accumulate Without Rounding
11778
TMS320C54_maca3
,
// Multiply by Accumulator A and Accumulate Without Rounding
11779
TMS320C54_macar1
,
// Multiply by Accumulator A and Accumulate With Rounding
11780
TMS320C54_macar2
,
// Multiply by Accumulator A and Accumulate With Rounding
11781
TMS320C54_macar3
,
// Multiply by Accumulator A and Accumulate With Rounding
11782
TMS320C54_macd
,
// Multiply by Program Memory and Accumulate With Delay
11783
TMS320C54_macp
,
// Multiply by Program Memory and Accumulate
11784
TMS320C54_macsu
,
// Multiply Signed by Unsigned and Accumulate
11785
TMS320C54_mas2
,
// Multiply and Subtract Without Rounding
11786
TMS320C54_mas3
,
// Multiply and Subtract Without Rounding
11787
TMS320C54_masr2
,
// Multiply and Subtract With Rounding
11788
TMS320C54_masr3
,
// Multiply and Subtract With Rounding
11789
// TMS320C54_mas,
11790
TMS320C54_masa1
,
// Multiply by Accumulator A and Subtract Without Rounding
11791
TMS320C54_masa2
,
// Multiply by Accumulator A and Subtract Without Rounding
11792
TMS320C54_masa3
,
// Multiply by Accumulator A and Subtract Without Rounding
11793
TMS320C54_masar1
,
// Multiply by Accumulator A and Subtract With Rounding
11794
TMS320C54_masar2
,
// Multiply by Accumulator A and Subtract With Rounding
11795
TMS320C54_masar3
,
// Multiply by Accumulator A and Subtract With Rounding
11796
TMS320C54_squra
,
// Square and Accumulate
11797
TMS320C54_squrs
,
// Square and Subtract
11798
// DOUBLE INSTRUCTIONS
11799
TMS320C54_dadd2
,
// Double-Precision/Dual 16-Bit Add to Accumulator
11800
TMS320C54_dadd3
,
// Double-Precision/Dual 16-Bit Add to Accumulator
11801
TMS320C54_dadst
,
// Double-Precision Load With T Add/Dual 16-Bit Load With T Add/Subtract
11802
TMS320C54_drsub
,
// Double-Precision/Dual 16-Bit Subtract From Long Word
11803
TMS320C54_dsadt
,
// Long-Word Load With T Add/Dual 16-Bit Load With T Subtract/Add
11804
TMS320C54_dsub
,
// Double-Precision/Dual 16-Bit Subtract From Accumulator
11805
TMS320C54_dsubt
,
// Long-Word Load With T Subtract/Dual 16-Bit Load With T Subtract
11806
// APPLICATION-SPECIFIC INSTRUCTIONS
11807
TMS320C54_abdst
,
// Absolute distance
11808
TMS320C54_abs1
,
// Absolute Value of Accumulator
11809
TMS320C54_abs2
,
// Absolute Value of Accumulator
11810
TMS320C54_cmpl1
,
// Complement Accumulator
11811
TMS320C54_cmpl2
,
// Complement Accumulator
11812
TMS320C54_delay
,
// Memory Delay
11813
TMS320C54_exp
,
// Accumulator Exponent
11814
TMS320C54_firs
,
// Symmetrical Finite Impulse Response Filter
11815
TMS320C54_lms
,
// Least Mean Square
11816
TMS320C54_max
,
// Accumulator Maximum
11817
TMS320C54_min
,
// Accumulator Minimum
11818
TMS320C54_neg1
,
// Negate Accumulator
11819
TMS320C54_neg2
,
// Negate Accumulator
11820
TMS320C54_norm1
,
// Normalization
11821
TMS320C54_norm2
,
// Normalization
11822
TMS320C54_poly
,
// Polynominal Evaluation
11823
TMS320C54_rnd1
,
// Round Accumulator
11824
TMS320C54_rnd2
,
// Round Accumulator
11825
TMS320C54_sat
,
// Saturate Accumulator
11826
TMS320C54_sqdst
,
// Square Distance
11827
// LOGICAL OPERATIONS
11828
// AND INSTRUCTIONS
11829
TMS320C54_and1
,
// AND With Accumulator
11830
TMS320C54_and2
,
// AND With Accumulator
11831
TMS320C54_and3
,
// AND With Accumulator
11832
TMS320C54_andm
,
// AND Memory With Long Immediate
11833
// OR INSTRUCTIONS
11834
TMS320C54_or1
,
// OR With Accumulator
11835
TMS320C54_or2
,
// OR With Accumulator
11836
TMS320C54_or3
,
// OR With Accumulator
11837
TMS320C54_orm
,
// OR Memory With Constant
11838
// XOR INSTRUCTIONS
11839
TMS320C54_xor1
,
// Exclusive OR With Accumulator
11840
TMS320C54_xor2
,
// Exclusive OR With Accumulator
11841
TMS320C54_xor3
,
// Exclusive OR With Accumulator
11842
TMS320C54_xorm
,
// Exclusive OR Memory With Constant
11843
// SHIFT INSTRUCTIONS
11844
TMS320C54_rol
,
// Rotate Accumulator
11845
TMS320C54_roltc
,
// Rotate Accumulator Left Using TC
11846
TMS320C54_ror
,
// Rotate Accumulator Right
11847
TMS320C54_sfta2
,
// Shift Accumulator Arithmetically
11848
TMS320C54_sfta3
,
// Shift Accumulator Arithmetically
11849
TMS320C54_sftc
,
// Shift Accumulator Conditionally
11850
TMS320C54_sftl2
,
// Shift Accumulator Logically
11851
TMS320C54_sftl3
,
// Shift Accumulator Logically
11852
// TEST INSTRUCTIONS
11853
TMS320C54_bit
,
// Test Bit
11854
TMS320C54_bitf
,
// Test Bit Field Specified by Immediate Value
11855
TMS320C54_bitt
,
// Test Bit Specified by T
11856
TMS320C54_cmpm
,
// Compare Memory With Long Immediate
11857
TMS320C54_cmpr
,
// Compare Auxiliary Register with AR0
11858
// PROGRAM CONTROL OPERATIONS
11859
// BRANCH INSTRUCTIONS
11860
TMS320C54_b
,
// Branch Unconditionally
11861
TMS320C54_bd
,
// Branch Unconditionally
11862
TMS320C54_bacc
,
// Branch to Location Specified by Accumulator
11863
TMS320C54_baccd
,
// Branch to Location Specified by Accumulator
11864
TMS320C54_banz
,
// Branch on Auxiliary Register Not Zero
11865
TMS320C54_banzd
,
// Branch on Auxiliary Register Not Zero
11866
TMS320C54_bc2
,
// Branch Conditionally
11867
TMS320C54_bc3
,
// Branch Conditionally
11868
TMS320C54_bcd2
,
// Branch Conditionally
11869
TMS320C54_bcd3
,
// Branch Conditionally
11870
TMS320C54_fb
,
// Far Branch Unconditionally
11871
TMS320C54_fbd
,
// Far Branch Unconditionally
11872
TMS320C54_fbacc
,
// Far Branch to Location Specified by Accumulator
11873
TMS320C54_fbaccd
,
// Far Branch to Location Specified by Accumulator
11874
// CALL INSTRUCTIONS
11875
TMS320C54_cala
,
// Call Subroutine at Location Specified by Accumulator
11876
TMS320C54_calad
,
// Call Subroutine at Location Specified by Accumulator
11877
TMS320C54_call
,
// Call Unconditionally
11878
TMS320C54_calld
,
// Call Unconditionally
11879
TMS320C54_cc2
,
// Call Conditionally
11880
TMS320C54_cc3
,
// Call Conditionally
11881
TMS320C54_ccd2
,
// Call Conditionally
11882
TMS320C54_ccd3
,
// Call Conditionally
11883
TMS320C54_fcala
,
// Far Call Subroutine at Location Specified by Accumulator
11884
TMS320C54_fcalad
,
// Far Call Subroutine at Location Specified by Accumulator
11885
TMS320C54_fcall
,
// Far Call Unconditionally
11886
TMS320C54_fcalld
,
// Far Call Unconditionally
11887
// INTERRUPT INSTRUCTIONS
11888
TMS320C54_intr
,
// Software Interrupt
11889
TMS320C54_trap
,
// Software Interrupt
11890
// RETURN INSTRUCTIONS
11891
TMS320C54_fret
,
// Far Return
11892
TMS320C54_fretd
,
// Far Return
11893
TMS320C54_frete
,
// Enable Interrupts and Far Return From Interrupt
11894
TMS320C54_freted
,
// Enable Interrupts and Far Return From Interrupt
11895
TMS320C54_rc1
,
// Return Conditionally
11896
TMS320C54_rc2
,
// Return Conditionally
11897
TMS320C54_rc3
,
// Return Conditionally
11898
TMS320C54_rcd1
,
// Return Conditionally
11899
TMS320C54_rcd2
,
// Return Conditionally
11900
TMS320C54_rcd3
,
// Return Conditionally
11901
TMS320C54_ret
,
// Return
11902
TMS320C54_retd
,
// Return
11903
TMS320C54_rete
,
// Enable Interrupts and Return From Interrupt
11904
TMS320C54_reted
,
// Enable Interrupts and Return From Interrupt
11905
TMS320C54_retf
,
// Enable Interrupts and Fast Return From Interrupt
11906
TMS320C54_retfd
,
// Enable Interrupts and Fast Return From Interrupt
11907
// REPEAT INSTRUCTIONS
11908
TMS320C54_rpt
,
// Repeat Next Instruction
11909
TMS320C54_rptb
,
// Block Repeat
11910
TMS320C54_rptbd
,
// Block Repeat
11911
TMS320C54_rptz
,
// Repeat Next Instruction And Clear Accumulator
11912
// STACK MANIPULATING INSTRUCTIONS
11913
TMS320C54_frame
,
// Stack Pointer Immediate Offset
11914
TMS320C54_popd
,
// Pop Top of Stack to Data Memory
11915
TMS320C54_popm
,
// Pop Top of Stack to Memory-Mapped Register
11916
TMS320C54_pshd
,
// Push Data-Memory Value Onto Stack
11917
TMS320C54_pshm
,
// Push Memory-Mapped Register Onto Stack
11918
// MISCELLANEOUS PROGRAM-CONTROL INSTRUCTIONS
11919
TMS320C54_idle
,
// Idle Until Interrupt
11920
TMS320C54_mar
,
// Modify Auxiliary Register
11921
TMS320C54_nop
,
// No Operation
11922
TMS320C54_reset
,
// Software Reset
11923
TMS320C54_rsbx1
,
// Reset Status Register Bit
11924
TMS320C54_rsbx2
,
// Reset Status Register Bit
11925
TMS320C54_ssbx1
,
// Set Status Register Bit
11926
TMS320C54_ssbx2
,
// Set Status Register Bit
11927
TMS320C54_xc2
,
// Execute Conditionally
11928
TMS320C54_xc3
,
// Execute Conditionally
11929
// LOAD AND STORE OPERATIONS
11930
// LOAD INSTRUCTIONS
11931
TMS320C54_dld
,
// Double-Precision/Dual 16-Bit Long-Word Load to Accumulator
11932
TMS320C54_ld1
,
// Load Accumulator With Shift
11933
TMS320C54_ld2
,
// Load Accumulator With Shift
11934
TMS320C54_ld3
,
// Load Accumulator With Shift
11935
TMS320C54_ldm
,
// Load Memory-Mapped Register
11936
TMS320C54_ldr
,
// Load Memory Value in Accumulator High With Rounding
11937
TMS320C54_ldu
,
// Load Unsigned Memory Value
11938
TMS320C54_ltd
,
// Load T and insert Delay
11939
// STORE INSTRUCTIONS
11940
TMS320C54_dst
,
// Store Accumulator in Long Word
11941
TMS320C54_st
,
// Store T, TRN, or Immediate Value into Memory
11942
TMS320C54_sth2
,
// Store Accumulator High Into Memory
11943
TMS320C54_sth3
,
// Store Accumulator High Into Memory
11944
TMS320C54_stl2
,
// Store Accumulator Low Into Memory
11945
TMS320C54_stl3
,
// Store Accumulator Low Into Memory
11946
TMS320C54_stlm
,
// Store Accumulator Low Into Memory-Mapped Register
11947
TMS320C54_stm
,
// Store Immediate Value Into Memory-Mapped Register
11948
// CONDITIONAL STORE INSTRUCTIONS
11949
TMS320C54_cmps
,
// Compare, Select and Store Maximum
11950
TMS320C54_saccd
,
// Store Accumulator Conditionally
11951
TMS320C54_srccd
,
// Store Block Repeat Counter Conditionally
11952
TMS320C54_strcd
,
// Store T Conditionally
11953
// PARALLEL LOAD AND STORE INSTRUCTIONS
11954
TMS320C54_st_ld
,
// Store Accumulator With Parallel Load
11955
// PARALLEL LOAD AND MULTIPLY INSTRUCTIONS
11956
TMS320C54_ld_mac
,
// Load Accumulator With Parallel Multiply Accumulate Without Rounding
11957
TMS320C54_ld_macr
,
// Load Accumulator With Parallel Multiply Accumulate With Rounding
11958
TMS320C54_ld_mas
,
// Load Accumulator With Parallel Multiply Subtract Without Rounding
11959
TMS320C54_ld_masr
,
// Load Accumulator With Parallel Multiply Subtract With Rounding
11960
// PARALLEL STORE AND ADD/SUBSTRACT INSTRUCTIONS
11961
TMS320C54_st_add
,
// Store Accumulator With Parallel Add
11962
TMS320C54_st_sub
,
// Store Accumulator With Parallel Subtract
11963
// PARALLEL STORE AND MULTIPLY INSTRUCTIONS
11964
TMS320C54_st_mac
,
// Store Accumulator With Parallel Multiply Accumulate Without Rounding
11965
TMS320C54_st_macr
,
// Store Accumulator With Parallel Multiply Accumulate With Rounding
11966
TMS320C54_st_mas
,
// Store Accumulator With Parallel Multiply Subtract Without Rounding
11967
TMS320C54_st_masr
,
// Store Accumulator With Parallel Multiply Subtract With Rounding
11968
TMS320C54_st_mpy
,
// Store Accumulator With Parallel Multiply
11969
// MISCELLANEOUS LOAD-TYPE AND STORE-TYPE INSTRUCTIONS
11970
TMS320C54_mvdd
,
// Move Data From Data Memory to Data Memory With X,Y Addressing
11971
TMS320C54_mvdk
,
// Move Data From Data Memory to Data Memory With Destination Addressing
11972
TMS320C54_mvdm
,
// Move Data From Data Memory to Memory-Mapped Register
11973
TMS320C54_mvdp
,
// Move Data From Data Memory to Program Memory
11974
TMS320C54_mvkd
,
// Move Data From Data Memory to Data Memory With Source Addressing
11975
TMS320C54_mvmd
,
// Move Data From Memory-Mapped Register to Data Memory
11976
TMS320C54_mvmm
,
// Move Data From Memory-Mapped Register to Memory-Mapped Register
11977
TMS320C54_mvpd
,
// Move Data From Program Memory to Data Memory
11978
TMS320C54_portr
,
// Read Data From Port
11979
TMS320C54_portw
,
// Write Data to Port
11980
TMS320C54_reada
,
// Read Program Memory Addressed by Accumulator A and Store in Data Memory
11981
TMS320C54_writa
,
// Write Data to Program Memory Addressed by Accumulator A
11982
TMS320C54_last
11983
};
11984
/*
11985
* Interactive disassembler (IDA).
11986
* Copyright (c) 1990-2026 Hex-Rays
11987
* ALL RIGHTS RESERVED.
11988
*
11989
*/
11990
enum
11991
{
11992
TMS320C55_null
= 0,
// Unknown Operation
11993
// ARITHMETICAL OPERATIONS
11994
TMS320C55_abdst
,
// Absolute Distance
11995
TMS320C55_abs1
,
// Absolute Value
11996
TMS320C55_abs2
,
// Absolute Value
11997
TMS320C55_add1
,
// Addition
11998
TMS320C55_add2
,
// Addition
11999
TMS320C55_add3
,
// Addition
12000
TMS320C55_add4
,
// Addition
12001
TMS320C55_addv1
,
// Addition
12002
TMS320C55_addv2
,
// Addition
12003
TMS320C55_addrv1
,
// Addition and Round
12004
TMS320C55_addrv2
,
// Addition and Round
12005
TMS320C55_maxdiff
,
// Compare and Select Maximum
12006
TMS320C55_dmaxdiff
,
// Compare and Select 40-bit Maximum
12007
TMS320C55_mindiff
,
// Compare and Select Minimum
12008
TMS320C55_dmindiff
,
// Compare and Select 40-bit Minimum
12009
TMS320C55_addsubcc4
,
// Conditional Add or Subtract
12010
TMS320C55_addsubcc5
,
// Conditional Add or Subtract
12011
TMS320C55_addsub2cc
,
// Conditional Add or Subtract
12012
TMS320C55_sftcc
,
// Conditional Shift
12013
TMS320C55_subc2
,
// Conditional Subtract
12014
TMS320C55_subc3
,
// Conditional Subtract
12015
TMS320C55_addsub
,
// Paralleled Add - Subtract
12016
TMS320C55_subadd
,
// Parallel Subtract - Add
12017
TMS320C55_mpy_mpy
,
// Two Parallel Multiply
12018
TMS320C55_mpy_mpyr
,
// Two Parallel Multiply, and Round
12019
TMS320C55_mpy_mpy40
,
// Two Parallel Multiply, on 40 bits
12020
TMS320C55_mpy_mpyr40
,
// Two Parallel Multiply, and Round on 40 bits
12021
TMS320C55_mac_mpy
,
// Parallel Multiply - Accumulate
12022
TMS320C55_macr_mpyr
,
// Parallel Multiply - Accumulate, and Round
12023
TMS320C55_mac40_mpy40
,
// Parallel Multiply - Accumulate, on 40 bits
12024
TMS320C55_macr40_mpyr40
,
// Parallel Multiply - Accumulate, and Round on 40 bits
12025
TMS320C55_mas_mpy
,
// Parallel Multiply - Subtract
12026
TMS320C55_masr_mpyr
,
// Parallel Multiply - Subtract, and Round
12027
TMS320C55_mas40_mpy40
,
// Parallel Multiply - Subtract, on 40 bits
12028
TMS320C55_masr40_mpyr40
,
// Parallel Multiply - Subtract, and Round on 40 bits
12029
TMS320C55_amar_mpy
,
// Parallel Modify Auxiliary Register - Multiply
12030
TMS320C55_amar_mpyr
,
// Parallel Modify Auxiliary Register - Multiply, and Round
12031
TMS320C55_amar_mpy40
,
// Parallel Modify Auxiliary Register - Multiply, on 40 bits
12032
TMS320C55_amar_mpyr40
,
// Parallel Modify Auxiliary Register - Multiply, and Round on 40 bits
12033
TMS320C55_mac_mac
,
// Two Parallel Multiply and Accumulate
12034
TMS320C55_macr_macr
,
// Two Parallel Multiply and Accumulate, and Round
12035
TMS320C55_mac40_mac40
,
// Two Parallel Multiply and Accumulate, on 40 bits
12036
TMS320C55_macr40_macr40
,
// Two Parallel Multiply and Accumulate, and Round on 40 bits
12037
TMS320C55_mas_mac
,
// Parallel Multiply and Subtract - Multiply and Accumulate
12038
TMS320C55_masr_macr
,
// Parallel Multiply and Subtract - Multiply and Accumulate, and Round
12039
TMS320C55_mas40_mac40
,
// Parallel Multiply and Subtract - Multiply and Accumulate, on 40 bits
12040
TMS320C55_masr40_macr40
,
// Parallel Multiply and Subtract - Multiply and Accumulate, and Round on 40 bits
12041
TMS320C55_amar_mac
,
// Parallel Modify Auxiliary Register - Multiply and Accumulate
12042
TMS320C55_amar_macr
,
// Parallel Modify Auxiliary Register - Multiply and Accumulate, and Round
12043
TMS320C55_amar_mac40
,
// Parallel Modify Auxiliary Register - Multiply and Accumulate, on 40 bits
12044
TMS320C55_amar_macr40
,
// Parallel Modify Auxiliary Register - Multiply and Accumulate, and Round on 40 bits
12045
TMS320C55_mas_mas
,
// Two Parallel Multiply and Subtract
12046
TMS320C55_masr_masr
,
// Two Parallel Multiply and Subtract, and Round
12047
TMS320C55_mas40_mas40
,
// Two Parallel Multiply and Subtract, on 40 bits
12048
TMS320C55_masr40_masr40
,
// Two Parallel Multiply and Subtract, and Round on 40 bits
12049
TMS320C55_amar_mas
,
// Parallel Modify Auxiliary Register - Multiply and Subtract
12050
TMS320C55_amar_masr
,
// Parallel Modify Auxiliary Register - Multiply and Subtract, and Round
12051
TMS320C55_amar_mas40
,
// Parallel Modify Auxiliary Register - Multiply and Subtract, on 40 bits
12052
TMS320C55_amar_masr40
,
// Parallel Modify Auxiliary Register - Multiply and Subtract, and Round on 40 bits
12053
TMS320C55_mpy_mac
,
// Parallel Multiply - Multiply and Accumulate
12054
TMS320C55_mpyr_macr
,
// Parallel Multiply - Multiply and Accumulate, and Round
12055
TMS320C55_mpy40_mac40
,
// Parallel Multiply - Multiply and Accumulate, on 40 bits
12056
TMS320C55_mpyr40_macr40
,
// Parallel Multiply - Multiply and Accumulate, and Round on 40 bits
12057
TMS320C55_amar3
,
// Three Parallel Modify Auxiliary Registers
12058
TMS320C55_firsadd
,
// Parallel Multiply and Accumulate - Add
12059
TMS320C55_firssub
,
// Parallel Multiply and Accumulate - Subtract
12060
TMS320C55_mpym_mov
,
// Parallel Multiply - Store
12061
TMS320C55_mpymr_mov
,
// Parallel Multiply - Store, and Round
12062
TMS320C55_macm_mov
,
// Parallel Multiply and Accumulate - Store
12063
TMS320C55_macmr_mov
,
// Parallel Multiply and Accumulate - Store, and Round
12064
TMS320C55_masm_mov
,
// Parallel Multiply and Subtract - Store
12065
TMS320C55_masmr_mov
,
// Parallel Multiply and Subtract - Store, and Round
12066
TMS320C55_add_mov
,
// Parallel Add - Store
12067
TMS320C55_sub_mov
,
// Parallel Subtract - Store
12068
TMS320C55_mov_mov
,
// Parallel Load - Store
12069
TMS320C55_mov_aadd
,
// Parallel Store - aadd
12070
TMS320C55_mov_add
,
// Parallel Store - Add
12071
TMS320C55_amar_amar
,
// Parallel Modify Auxiliary Register - Modify Auxiliary Register
12072
TMS320C55_add_asub
,
// Parallel Add - asub
12073
TMS320C55_btst_mov
,
// Parallel Bit Test - Store
12074
TMS320C55_mov_asub
,
// Parallel Store - asub
12075
TMS320C55_lms
,
// Least Mean Square
12076
TMS320C55_max1
,
// Maximum Comparison
12077
TMS320C55_max2
,
// Maximum Comparison
12078
TMS320C55_min1
,
// Minimum Comparison
12079
TMS320C55_min2
,
// Minimum Comparison
12080
TMS320C55_cmp
,
// Memory Comparison
12081
TMS320C55_cmpu
,
// Unsigned memory Comparison
12082
TMS320C55_aadd
,
// Add Two Registers
12083
TMS320C55_asub
,
// Subtract Two Registers
12084
TMS320C55_amov
,
// Move From Register to Register
12085
TMS320C55_amar1
,
// Auxiliary Register Modification
12086
TMS320C55_sqr1
,
// Square
12087
TMS320C55_sqr2
,
// Square
12088
TMS320C55_sqrr1
,
// Square and Round
12089
TMS320C55_sqrr2
,
// Square and Round
12090
TMS320C55_mpy1
,
// Multiply
12091
TMS320C55_mpy2
,
// Multiply
12092
TMS320C55_mpy3
,
// Multiply
12093
TMS320C55_mpyr1
,
// Multiply and Round
12094
TMS320C55_mpyr2
,
// Multiply and Round
12095
TMS320C55_mpyr3
,
// Multiply and Round
12096
TMS320C55_mpyk2
,
// Multiply by Constant
12097
TMS320C55_mpyk3
,
// Multiply by Constant
12098
TMS320C55_mpykr2
,
// Multiply by Constant and Round
12099
TMS320C55_mpykr3
,
// Multiply by Constant and Round
12100
TMS320C55_mpym2
,
// Multiply Memory Value
12101
TMS320C55_mpym3
,
// Multiply Memory Values
12102
TMS320C55_mpymr2
,
// Multiply Memory Value and Round
12103
TMS320C55_mpymr3
,
// Multiply Memory Values and Round
12104
TMS320C55_mpym403
,
// Multiply Memory Values on 40 bits
12105
TMS320C55_mpymr403
,
// Multiply Memory Values and Round on 40 bits
12106
TMS320C55_mpymu3
,
// Unsigned multiply Memory Values
12107
TMS320C55_mpymru3
,
// Unsigned multiply Memory Values and Round
12108
TMS320C55_sqrm
,
// Square Memory Value
12109
TMS320C55_sqrmr
,
// Square Memory Value, and Round
12110
TMS320C55_mpymk
,
// Multiply Memory Value by Constant
12111
TMS320C55_mpymkr
,
// Multiply Memory Value by Constant and Round
12112
TMS320C55_sqa1
,
// Square and Accumulate
12113
TMS320C55_sqa2
,
// Square and Accumulate
12114
TMS320C55_sqar1
,
// Square, Accumulate and Round
12115
TMS320C55_sqar2
,
// Square, Accumulate and Round
12116
TMS320C55_mac3
,
// Multiply and Accumulate
12117
TMS320C55_mac4
,
// Multiply and Accumulate
12118
TMS320C55_macr3
,
// Multiply, Accumulate and Round
12119
TMS320C55_macr4
,
// Multiply, Accumulate and Round
12120
TMS320C55_mack3
,
// Multiply by Constant and Accumulate
12121
TMS320C55_mack4
,
// Multiply by Constant and Accumulate
12122
TMS320C55_mackr3
,
// Multiply by Constant, Round and Accumulate
12123
TMS320C55_mackr4
,
// Multiply by Constant, Round and Accumulate
12124
TMS320C55_macm2
,
// Multiply and Accumulate Memory Values
12125
TMS320C55_macm3
,
// Multiply and Accumulate Memory Values
12126
TMS320C55_macm4
,
// Multiply and Accumulate Memory Values
12127
TMS320C55_macmr2
,
// Multiply and Accumulate Memory Values, and Round
12128
TMS320C55_macmr3
,
// Multiply and Accumulate Memory Values, and Round
12129
TMS320C55_macmr4
,
// Multiply and Accumulate Memory Values, and Round
12130
TMS320C55_macm403
,
// Multiply and Accumulate Memory Values, on 40 bits
12131
TMS320C55_macm404
,
// Multiply and Accumulate Memory Values, on 40 bits
12132
TMS320C55_macmr403
,
// Multiply and Accumulate Memory Values, and Round on 40 bits
12133
TMS320C55_macmr404
,
// Multiply and Accumulate Memory Values, and Round on 40 bits
12134
TMS320C55_macmz
,
// Multiply and Accumulate Memory Values
12135
TMS320C55_macmrz
,
// Multiply and Accumulate Memory Values, and Round
12136
TMS320C55_sqam2
,
// Square and Accumulate Memory Value
12137
TMS320C55_sqam3
,
// Square and Accumulate Memory Values
12138
TMS320C55_sqamr2
,
// Square and Accumulate Memory Value, and Round
12139
TMS320C55_sqamr3
,
// Square and Accumulate Memory Values, and Round
12140
TMS320C55_macmk3
,
// Multiply Memory Value by Constant and Accumulate
12141
TMS320C55_macmk4
,
// Multiply Memory Value by Constant and Accumulate
12142
TMS320C55_macmkr3
,
// Multiply Memory Value by Constant - Accumulate, and Round
12143
TMS320C55_macmkr4
,
// Multiply Memory Value by Constant - Accumulate, and Round
12144
TMS320C55_sqs1
,
// Square and Subtract
12145
TMS320C55_sqs2
,
// Square and Subtract
12146
TMS320C55_sqsr1
,
// Square, Subtract and Round
12147
TMS320C55_sqsr2
,
// Square, Subtract and Round
12148
TMS320C55_mas2
,
// Multiply and Subtract
12149
TMS320C55_mas3
,
// Multiply and Subtract
12150
TMS320C55_masr2
,
// Multiply, Subtract and Round
12151
TMS320C55_masr3
,
// Multiply, Subtract and Round
12152
TMS320C55_masm2
,
// Multiply and Subtract Memory Value
12153
TMS320C55_masm3
,
// Multiply and Subtract Memory Values
12154
TMS320C55_masm4
,
// Multiply and Subtract Memory Values
12155
TMS320C55_masmr2
,
// Multiply and Subtract Memory Values, and Round
12156
TMS320C55_masmr3
,
// Multiply and Subtract Memory Values, and Round
12157
TMS320C55_masmr4
,
// Multiply and Subtract Memory Values, and Round
12158
TMS320C55_masm403
,
// Multiply and Subtract Memory Values, on 40 bits
12159
TMS320C55_masm404
,
// Multiply and Subtract Memory Values, on 40 bits
12160
TMS320C55_masmr403
,
// Multiply and Subtract Memory Values, and Round on 40 bits
12161
TMS320C55_masmr404
,
// Multiply and Subtract Memory Values, and Round on 40 bits
12162
TMS320C55_sqsm2
,
// Square and Subtract Memory Values
12163
TMS320C55_sqsm3
,
// Square and Subtract Memory Values
12164
TMS320C55_sqsmr2
,
// Square and Subtract Memory Values, and Round
12165
TMS320C55_sqsmr3
,
// Square and Subtract Memory Values, and Round
12166
TMS320C55_neg1
,
// Negation
12167
TMS320C55_neg2
,
// Negation
12168
TMS320C55_mant_nexp
,
// Exponent and Mantissa
12169
TMS320C55_exp
,
// Exponent
12170
TMS320C55_cmpand
,
// Compare and AND
12171
TMS320C55_cmpandu
,
// Unsigned compare and AND
12172
TMS320C55_cmpor
,
// Compare and OR
12173
TMS320C55_cmporu
,
// Unsigned compare and OR
12174
TMS320C55_round1
,
// Round
12175
TMS320C55_round2
,
// Round
12176
TMS320C55_sat1
,
// Saturate
12177
TMS320C55_sat2
,
// Saturate
12178
TMS320C55_satr1
,
// Saturate and Round
12179
TMS320C55_satr2
,
// Saturate and Round
12180
TMS320C55_sfts2
,
// Signed Shift
12181
TMS320C55_sfts3
,
// Signed Shift
12182
TMS320C55_sftsc2
,
// Signed Shift with Carry
12183
TMS320C55_sftsc3
,
// Signed Shift with Carry
12184
TMS320C55_sqdst
,
// Square distance
12185
TMS320C55_sub1
,
// Subtract
12186
TMS320C55_sub2
,
// Subtract
12187
TMS320C55_sub3
,
// Subtract
12188
TMS320C55_sub4
,
// Subtract
12189
TMS320C55_band
,
// Bit Field Comparison
12190
TMS320C55_bfxpa
,
// Bit Field Expand
12191
TMS320C55_bfxtr
,
// Bit Field Extract
12192
TMS320C55_btst
,
// Bit Test
12193
TMS320C55_bnot
,
// Bit NOT
12194
TMS320C55_bclr2
,
// Bit Clear
12195
TMS320C55_bset2
,
// Bit Set
12196
TMS320C55_btstset
,
// Bit Test and Set
12197
TMS320C55_btstclr
,
// Bit Test and Clear
12198
TMS320C55_btstnot
,
// Bit Test and NOT
12199
TMS320C55_btstp
,
// Bit Pair Test
12200
TMS320C55_bclr1
,
// Bit Clear
12201
TMS320C55_bset1
,
// Bit Set
12202
TMS320C55_amar2
,
// Load Effective Address to Extended Auxiliary Register
12203
TMS320C55_popboth
,
// Pop Extended Auxiliary Register from Stack Pointers
12204
TMS320C55_pshboth
,
// Push Extended Auxiliary Register to Stack Pointers
12205
// LOGICAL OPERATIONS
12206
TMS320C55_bcnt
,
// Count Bit Field
12207
TMS320C55_not1
,
// NOT
12208
TMS320C55_not2
,
// NOT
12209
TMS320C55_and1
,
// AND
12210
TMS320C55_and2
,
// AND
12211
TMS320C55_and3
,
// AND
12212
TMS320C55_or1
,
// OR
12213
TMS320C55_or2
,
// OR
12214
TMS320C55_or3
,
// OR
12215
TMS320C55_xor1
,
// XOR
12216
TMS320C55_xor2
,
// XOR
12217
TMS320C55_xor3
,
// XOR
12218
TMS320C55_sftl2
,
// Logical Shift
12219
TMS320C55_sftl3
,
// Logical Shift
12220
TMS320C55_rol
,
// Rotate Left
12221
TMS320C55_ror
,
// Rotate Right
12222
// MISCELLANEOUS OPERATIONS
12223
// MOVE OPERATIONS
12224
TMS320C55_swap
,
// Swap Registers
12225
TMS320C55_swapp
,
// Swap Pair Registers
12226
TMS320C55_swap4
,
// Swap 4 Registers
12227
TMS320C55_mov2
,
// Move Data
12228
TMS320C55_mov3
,
// Move 2 Data
12229
TMS320C55_mov402
,
// Move Data on 40 bits
12230
TMS320C55_delay
,
// Memory Delay
12231
TMS320C55_pop1
,
// Pop Top of Stack1
12232
TMS320C55_pop2
,
// Pop Top of Stack2
12233
TMS320C55_psh1
,
// Pop Top of Stack3
12234
TMS320C55_psh2
,
// Pop Top of Stack4
12235
// PROGRAM CONTROL OPERATIONS
12236
TMS320C55_bcc
,
// Branch Conditionally
12237
TMS320C55_bccu
,
// Branch Conditionally
12238
TMS320C55_b
,
// Branch Unconditionally
12239
TMS320C55_callcc
,
// Call Conditionally
12240
TMS320C55_call
,
// Call Unconditionally
12241
TMS320C55_xcc
,
// Execute Conditionally
12242
TMS320C55_xccpart
,
// Execute Conditionally
12243
TMS320C55_idle
,
// Idle
12244
TMS320C55_nop
,
// No Operation
12245
TMS320C55_nop_16
,
// No Operation
12246
TMS320C55_rptblocal
,
// Repeat Block of Instructions Unconditionally
12247
TMS320C55_rptb
,
// Repeat Block of Instructions Unconditionally
12248
TMS320C55_rptcc
,
// Repeat Single Instruction Conditionally
12249
TMS320C55_rpt
,
// Repeat Single Instruction Unconditionally
12250
TMS320C55_rptadd
,
// Repeat Single Instruction Unconditionally and Add to Register
12251
TMS320C55_rptsub
,
// Repeat Single Instruction Unconditionally and Subtract to Register
12252
TMS320C55_retcc
,
// Return Conditionally
12253
TMS320C55_ret
,
// Return Unconditionally
12254
TMS320C55_reti
,
// Return from Interrupt
12255
TMS320C55_intr
,
// Software Interrupt
12256
TMS320C55_reset
,
// Software Reset
12257
TMS320C55_trap
,
// Software Trap
12258
TMS320C55_last
12259
};
12260
/*
12261
* Interactive disassembler (IDA).
12262
* Copyright (c) 1990-2026 Hex-Rays
12263
* ALL RIGHTS RESERVED.
12264
*
12265
*/
12266
enum
12267
{
12268
TRIMEDIA_null
,
12269
TRIMEDIA_igtri
,
// signed compare greater with immediate
12270
TRIMEDIA_igeqi
,
// signed compare greater or equal with immediate
12271
TRIMEDIA_ilesi
,
// signed compare less with immediate
12272
TRIMEDIA_ineqi
,
// signed compare not equal with immediate
12273
TRIMEDIA_ieqli
,
// signed compare equal with immediate
12274
TRIMEDIA_iaddi
,
// add with immediate
12275
TRIMEDIA_ild16d
,
// signed 16-bit load with displacement
12276
TRIMEDIA_ld32d
,
// 32-bit load with displacement
12277
TRIMEDIA_uld8d
,
// unsigned 8-bit load with displacement
12278
TRIMEDIA_lsri
,
// logical shift right immediate
12279
TRIMEDIA_asri
,
// arithmetic shift right immediate
12280
TRIMEDIA_asli
,
// arithmetic shift left immediate
12281
TRIMEDIA_iadd
,
// signed add
12282
TRIMEDIA_isub
,
// signed subtract
12283
TRIMEDIA_igeq
,
// signed compare greater or equal
12284
TRIMEDIA_igtr
,
// signed compare greater
12285
TRIMEDIA_bitand
,
// bitwise logical AND
12286
TRIMEDIA_bitor
,
// bitwise logical OR
12287
TRIMEDIA_asr
,
// arithmetic shift right
12288
TRIMEDIA_asl
,
// arithmetic shift left
12289
TRIMEDIA_ifloat
,
// convert signed integer to floating-point
12290
TRIMEDIA_ifixrz
,
// convert floating-point to integer with round toward zero
12291
TRIMEDIA_fadd
,
// floating-point add
12292
TRIMEDIA_imin
,
// signed minimum
12293
TRIMEDIA_imax
,
// signed maximum
12294
TRIMEDIA_iavgonep
,
// signed average
12295
TRIMEDIA_ume8uu
,
// sum of absolute values of unsigned 8-bit differences
12296
TRIMEDIA_imul
,
// signed multiply
12297
TRIMEDIA_fmul
,
// floating-point multiply
12298
TRIMEDIA_h_st8d
,
// hardware 8-bit store with displacement
12299
TRIMEDIA_h_st16d
,
// hardware 16-bit store with displacement
12300
TRIMEDIA_h_st32d
,
// hardware 32-bit store with displacement
12301
TRIMEDIA_isubi
,
// subtract with immediate
12302
TRIMEDIA_ugtr
,
// unsigned compare greater
12303
TRIMEDIA_ugtri
,
// unsigned compare greater with immediate
12304
TRIMEDIA_ugeq
,
// unsigned compare greater or equal
12305
TRIMEDIA_ugeqi
,
// unsigned compare greater or equal with immediate
12306
TRIMEDIA_ieql
,
// signed compare equal
12307
TRIMEDIA_ueqli
,
// unsigned compare equal with immediate
12308
TRIMEDIA_ineq
,
// signed compare not equal
12309
TRIMEDIA_uneqi
,
// unsigned compare not equal
12310
TRIMEDIA_ulesi
,
// unsigned compare less with immediate
12311
TRIMEDIA_ileqi
,
// signed compare less or equal with immediate
12312
TRIMEDIA_uleqi
,
// unsigned compare less or equal with immediate
12313
TRIMEDIA_h_iabs
,
// hardware absolute value
12314
TRIMEDIA_carry
,
// compute carry bit from unsigned add
12315
TRIMEDIA_izero
,
// if zero select zero
12316
TRIMEDIA_inonzero
,
// if nonzero select zero
12317
TRIMEDIA_bitxor
,
// bitwise logical exclusive OR
12318
TRIMEDIA_bitandinv
,
// bitwise logical AND NOT
12319
TRIMEDIA_bitinv
,
// bitwise logical NOT
12320
TRIMEDIA_sex16
,
// sign extend 16 bits
12321
TRIMEDIA_packbytes
,
// pack least-significant bytes
12322
TRIMEDIA_pack16lsb
,
// pack least-significant 16-bit halfwords
12323
TRIMEDIA_pack16msb
,
// pack most-significant 16-bit halfwords
12324
TRIMEDIA_ubytesel
,
// select unsigned byte
12325
TRIMEDIA_ibytesel
,
// signed select byte
12326
TRIMEDIA_mergelsb
,
// merge least-significant byte
12327
TRIMEDIA_mergemsb
,
// merge most-significant byte
12328
TRIMEDIA_ume8ii
,
// unsigned sum of absolute values of signed 8-bit differences
12329
TRIMEDIA_h_dspiabs
,
// clipped signed absolute value
12330
TRIMEDIA_dspiadd
,
// clipped signed add
12331
TRIMEDIA_dspuadd
,
// clipped unsigned add
12332
TRIMEDIA_dspisub
,
// clipped signed subtract
12333
TRIMEDIA_dspusub
,
// clipped unsigned subtract
12334
TRIMEDIA_dspidualadd
,
// dual clipped add of signed 16-bit halfwords
12335
TRIMEDIA_dspidualsub
,
// dual clipped subtract of signed 16-bit halfwords
12336
TRIMEDIA_h_dspidualabs
,
// dual clipped absolute value of signed 16-bit halfwords
12337
TRIMEDIA_quadavg
,
// unsigned byte-wise quad average
12338
TRIMEDIA_iclipi
,
// clip signed to signed
12339
TRIMEDIA_uclipi
,
// clip signed to unsigned
12340
TRIMEDIA_uclipu
,
// clip unsigned to unsigned
12341
TRIMEDIA_iflip
,
// if non-zero negate
12342
TRIMEDIA_dspuquadaddui
,
// quad clipped add of unsigned/signed bytes
12343
TRIMEDIA_quadumin
,
// unsigned byte-wise quad minimum
12344
TRIMEDIA_quadumax
,
// unsigned byte-wise quad maximum
12345
TRIMEDIA_dualiclipi
,
// dual-16 clip signed to signed
12346
TRIMEDIA_dualuclipi
,
// dual-16 clip signed to unsigned
12347
TRIMEDIA_quadumulmsb
,
// unsigned quad 8-bit multiply most significant
12348
TRIMEDIA_ufir8uu
,
// unsigned sum of products of unsigned bytes
12349
TRIMEDIA_ifir8ui
,
// signed sum of products of unsigned/signed bytes
12350
TRIMEDIA_ifir8ii
,
// signed sum of products of signed bytes
12351
TRIMEDIA_ifir16
,
// sum of products of signed 16-bit halfwords
12352
TRIMEDIA_ufir16
,
// sum of products of unsigned 16-bit halfwords
12353
TRIMEDIA_dspidualmul
,
// dual clipped multiply of signed 16-bit halfwords
12354
TRIMEDIA_lsr
,
// logical shift right
12355
TRIMEDIA_rol
,
// rotate left
12356
TRIMEDIA_roli
,
// rotate left by immediate
12357
TRIMEDIA_funshift1
,
// funnel-shift 1 byte
12358
TRIMEDIA_funshift2
,
// funnel-shift 2 bytes
12359
TRIMEDIA_funshift3
,
// funnel-shift 3 bytes
12360
TRIMEDIA_dualasr
,
// dual-16 arithmetic shift right
12361
TRIMEDIA_mergedual16lsb
,
// merge dual 16-bit lsb bytes
12362
TRIMEDIA_fdiv
,
// floating-point divide
12363
TRIMEDIA_fdivflags
,
// IEEE status flags from floating-point divide
12364
TRIMEDIA_fsqrt
,
// floating-point square root
12365
TRIMEDIA_fsqrtflags
,
// IEEE status flags from floating-point square root
12366
TRIMEDIA_faddflags
,
// IEEE status flags from floating-point add
12367
TRIMEDIA_fsub
,
// floating-point subtract
12368
TRIMEDIA_fsubflags
,
// IEEE status flags from floating-point subtract
12369
TRIMEDIA_fabsval
,
// floating-point absolute value
12370
TRIMEDIA_fabsvalflags
,
// IEEE status flags from floating-point absolute value
12371
TRIMEDIA_ifloatrz
,
// convert signed integer to floating-point with rounding toward zero
12372
TRIMEDIA_ifloatrzflags
,
// IEEE status flags from convert signed integer to floating-point with rounding toward zero
12373
TRIMEDIA_ufloatrz
,
// convert unsigned integer to floating-point with round toward zero
12374
TRIMEDIA_ufloatrzflags
,
// IEEE status flags from convert unsigned integer to floating-point with round toward zero
12375
TRIMEDIA_ifixieee
,
// convert floating-point to integer using PCSW rounding mode
12376
TRIMEDIA_ifixieeeflags
,
// IEEE status flags from convert floating-point to integer using PCSW rounding mode
12377
TRIMEDIA_ufixieee
,
// convert floating-point to unsigned integer using PCSW rounding mode
12378
TRIMEDIA_ufixieeeflags
,
// IEEE status flags from convert floating-point to unsigned integer using PCSW rounding mode
12379
TRIMEDIA_ufixrz
,
// convert floating-point to unsigned integer with round toward zero
12380
TRIMEDIA_ufixrzflags
,
// IEEE status flags from convert floating-point to unsigned integer with round toward zero
12381
TRIMEDIA_ufloat
,
// convert unsigned integer to floating-point
12382
TRIMEDIA_ufloatflags
,
// IEEE status flags from convert unsigned integer to floating-point
12383
TRIMEDIA_ifixrzflags
,
// IEEE status flags from convert floating-point to integer with round toward zero
12384
TRIMEDIA_ifloatflags
,
// IEEE status flags from convert signed integer to floating-point
12385
TRIMEDIA_umul
,
// unsigned multiply
12386
TRIMEDIA_imulm
,
// signed multiply, return most-significant 32 bits
12387
TRIMEDIA_umulm
,
// unsigned multiply, return most-significant 32 bits
12388
TRIMEDIA_dspimul
,
// clipped signed multiply
12389
TRIMEDIA_dspumul
,
// clipped unsigned multiply
12390
TRIMEDIA_fmulflags
,
// IEEE status flags from floating-point multiply
12391
TRIMEDIA_fgtr
,
// floating-point compare greater
12392
TRIMEDIA_fgtrflags
,
// IEEE status flags from floating-point compare greater
12393
TRIMEDIA_fgeq
,
// floating-point compare greater or equal
12394
TRIMEDIA_fgeqflags
,
// IEEE status flags from floating-point compare greater or equal
12395
TRIMEDIA_feql
,
// floating-point compare equal
12396
TRIMEDIA_feqlflags
,
// IEEE status flags from floating-point compare equal
12397
TRIMEDIA_fneq
,
// floating-point compare not equal
12398
TRIMEDIA_fneqflags
,
// IEEE status flags from floating-point compare not equal
12399
TRIMEDIA_fsign
,
// sign of floating-point value
12400
TRIMEDIA_fsignflags
,
// IEEE status flags from floating-point sign
12401
TRIMEDIA_cycles
,
// read clock cycle counter, least-significant word
12402
TRIMEDIA_hicycles
,
// read clock cycle counter, most-significant word
12403
TRIMEDIA_readdpc
,
// read destination program counter
12404
TRIMEDIA_readspc
,
// read source program counter
12405
TRIMEDIA_readpcsw
,
// read program control and status word
12406
TRIMEDIA_writespc
,
// write source program counter
12407
TRIMEDIA_writedpc
,
// write destination program counter
12408
TRIMEDIA_writepcsw
,
// write program control and status word
12409
TRIMEDIA_curcycles
,
// read current clock cycle, least-significant word
12410
TRIMEDIA_jmpt
,
// indirect jump on true
12411
TRIMEDIA_ijmpt
,
// interruptible indirect jump on true
12412
TRIMEDIA_jmpi
,
// jump immediate
12413
TRIMEDIA_ijmpi
,
// interruptible jump immediate
12414
TRIMEDIA_jmpf
,
// indirect jump on false
12415
TRIMEDIA_ijmpf
,
// interruptible indirect jump on false
12416
TRIMEDIA_iclr
,
// invalidate all instruction cache blocks
12417
TRIMEDIA_uimm
,
// unsigned immediate
12418
TRIMEDIA_ild8d
,
// signed 8-bit load with displacement
12419
TRIMEDIA_ild8r
,
// signed 8-bit load with index
12420
TRIMEDIA_uld8r
,
// unsigned 8-bit load with index
12421
TRIMEDIA_ild16r
,
// signed 16-bit load with index
12422
TRIMEDIA_ild16x
,
// signed 16-bit load with scaled index
12423
TRIMEDIA_uld16d
,
// unsigned 16-bit load with displacement
12424
TRIMEDIA_uld16r
,
// unsigned 16-bit load with index
12425
TRIMEDIA_uld16x
,
// unsigned 16-bit load with scaled index
12426
TRIMEDIA_ld32r
,
// 32-bit load with index
12427
TRIMEDIA_ld32x
,
// 32-bit load with scaled index
12428
TRIMEDIA_rdtag
,
// read data cache address tag
12429
TRIMEDIA_rdstatus
,
// read data cache status bits
12430
TRIMEDIA_dcb
,
// data cache copy back
12431
TRIMEDIA_dinvalid
,
// invalidate data cache block
12432
TRIMEDIA_prefd
,
// prefetch with displacement
12433
TRIMEDIA_prefr
,
// prefetch with index
12434
TRIMEDIA_pref16x
,
// prefetch with 16-bit scaled index
12435
TRIMEDIA_pref32x
,
// prefetch with 32-bit scaled index
12436
TRIMEDIA_allocd
,
// allocate a cache block with displacement
12437
TRIMEDIA_allocr
,
// allocate a cache block with index
12438
TRIMEDIA_allocx
,
// allocate a cache block with scaled index
12439
TRIMEDIA_nop
,
12440
// Pseudo-operations
12441
TRIMEDIA_alloc
,
// allocate a cache block
12442
TRIMEDIA_dspiabs
,
// clipped signed absolute value
12443
TRIMEDIA_dspidualabs
,
// dual clipped absolute value of signed 16-bit halfwords
12444
TRIMEDIA_iabs
,
// absolute value
12445
TRIMEDIA_ild16
,
// signed 16-bit load
12446
TRIMEDIA_ild8
,
// signed 8-bit load
12447
TRIMEDIA_ineg
,
// signed negate
12448
TRIMEDIA_ld32
,
// 32-bit load
12449
TRIMEDIA_pref
,
// prefetch
12450
TRIMEDIA_sex8
,
// sign extend 8 bits
12451
TRIMEDIA_st16
,
// 16-bit store
12452
TRIMEDIA_st16d
,
// 16-bit store with displacement
12453
TRIMEDIA_st32
,
// 32-bit store
12454
TRIMEDIA_st32d
,
// 32-bit store with displacement
12455
TRIMEDIA_st8
,
// 8-bit store
12456
TRIMEDIA_st8d
,
// 8-bit store with displacement
12457
TRIMEDIA_uld16
,
// unsigned 16-bit load
12458
TRIMEDIA_uld8
,
// unsigned 8-bit load
12459
TRIMEDIA_zex16
,
// zero extend 16 bits
12460
TRIMEDIA_zex8
,
// zero extend 8 bits
12461
TRIMEDIA_ident
,
// identity
12462
// Unused pseudo-operations:
12463
TRIMEDIA_iles
,
12464
TRIMEDIA_ileq
,
12465
TRIMEDIA_ules
,
12466
TRIMEDIA_uleq
,
12467
TRIMEDIA_fles
,
12468
TRIMEDIA_fleq
,
12469
TRIMEDIA_ueql
,
12470
TRIMEDIA_uneq
,
12471
TRIMEDIA_flesflags
,
12472
TRIMEDIA_fleqflags
,
12473
TRIMEDIA_borrow
,
12474
TRIMEDIA_umin
,
12475
TRIMEDIA_lsl
,
12476
TRIMEDIA_lsli
,
12477
TRIMEDIA_last
,
12478
};
12479
/*
12480
* NEC 78K0 processor module for IDA.
12481
* Copyright (c) 2006 Konstantin Norvatoff, <konnor@bk.ru>
12482
* Freeware.
12483
*/
12484
enum
12485
{
12486
NEC_78K_0_null
= 0,
// Unknown Operation
12487
NEC_78K_0_mov
,
// Move Byte Data Transfer
12488
NEC_78K_0_xch
,
// Exchange Byte Data
12489
NEC_78K_0_movw
,
// Move Word Data Transfer / Word Data Transfer with Stack Pointer
12490
NEC_78K_0_xchw
,
// Exchange Word Data
12491
NEC_78K_0_add
,
// Add Byte Data Addition
12492
NEC_78K_0_addc
,
// Add with Carry Addition of Byte Data with Carry
12493
NEC_78K_0_sub
,
// Subtract Byte Data Subtraction
12494
NEC_78K_0_subc
,
// Subtract with Carry Subtraction of Byte Data with Carry
12495
NEC_78K_0_and
,
// And Logical Product of Byte Data
12496
NEC_78K_0_or
,
// Or Logical Sum of Byte Data
12497
NEC_78K_0_xor
,
// Exclusive Or Exclusive Logical Sum of Byte Data
12498
NEC_78K_0_cmp
,
// Compare Byte Data Comparison
12499
NEC_78K_0_addw
,
// Add Word Data Addition
12500
NEC_78K_0_subw
,
// Subtract Word Data Subtraction
12501
NEC_78K_0_cmpw
,
// Compare Word Data Comparison
12502
NEC_78K_0_mulu
,
// Multiply Unsigned Multiplication of Data
12503
NEC_78K_0_divuw
,
// Divide Unsigned Word Unsigned Division of Word Data
12504
NEC_78K_0_inc
,
// Increment Byte Data Increment
12505
NEC_78K_0_dec
,
// Decrement Byte Data Decrement
12506
NEC_78K_0_incw
,
// Increment Word Data Increment
12507
NEC_78K_0_decw
,
// Decrement Word Data Decrement
12508
NEC_78K_0_ror
,
// Rotate Right Byte Data Rotation to the Right
12509
NEC_78K_0_rol
,
// Rotate Left Byte Data Rotation to the Left
12510
NEC_78K_0_rorc
,
// Rotate Right with Carry Byte Data Rotation to the Right with Carry
12511
NEC_78K_0_rolc
,
// Rotate Left with Carry Byte Data Rotation to the Left with Carry
12512
NEC_78K_0_ror4
,
// Rotate Right Digit Digit Rotation to the Right
12513
NEC_78K_0_rol4
,
// Rotate Left Digit Digit Rotation to the Left
12514
NEC_78K_0_adjba
,
// Decimal Adjust Register for Addition Decimal Adjustment of Addition Result
12515
NEC_78K_0_adjbs
,
// Decimal Adjust Register for Subtraction Decimal Adjustment of Subtraction Result
12516
NEC_78K_0_mov1
,
// Move Single Bit 1 Bit Data Transfer
12517
NEC_78K_0_and1
,
// And Single Bit 1 Bit Data Logical Product
12518
NEC_78K_0_or1
,
// Or Single Bit 1 Bit Data Logical Sum
12519
NEC_78K_0_xor1
,
// Exclusive Or Single Bit 1 Bit Data Exclusive Logical Sum
12520
NEC_78K_0_set1
,
// Set Single Bit (Carry Flag) 1 Bit Data Set
12521
NEC_78K_0_clr1
,
// Clear Single Bit (Carry Flag) 1 Bit Data Clear
12522
NEC_78K_0_not1
,
// Not Single Bit (Carry Flag) 1 Bit Data Logical Negation
12523
NEC_78K_0_call
,
// Call Subroutine Call (16 Bit Direct)
12524
NEC_78K_0_callf
,
// Call Flag Subroutine Call (11 Bit Direct Specification)
12525
NEC_78K_0_callt
,
// Call Table Subroutine Call (Refer to the Call Table)
12526
NEC_78K_0_brk
,
// Break Software Vectored Interrupt
12527
NEC_78K_0_ret
,
// Return Return from Subroutine
12528
NEC_78K_0_retb
,
// Return from Interrupt Return from Hardware Vectored Interrupt
12529
NEC_78K_0_reti
,
// Return from Break Return from Software Vectored Interrupt
12530
NEC_78K_0_push
,
// Push
12531
NEC_78K_0_pop
,
// Pop
12532
NEC_78K_0_br
,
// Branch Unconditional Branch
12533
NEC_78K_0_bc
,
// Branch if Carry Conditional Branch with Carry Flag (CY = 1)
12534
NEC_78K_0_bnc
,
// Branch if Not Carry Conditional Branch with Carry Flag (CY = 0)
12535
NEC_78K_0_bz
,
// Branch if Zero Conditional Branch with Zero Flag (Z = 1)
12536
NEC_78K_0_bnz
,
// Branch if Not Zero Conditional Branch with Zero Flag (Z = 0)
12537
NEC_78K_0_bt
,
// Branch if True Conditional Branch by Bit Test (Byte Data Bit = 1)
12538
NEC_78K_0_bf
,
// Branch if False Conditional Branch by Bit Test (Byte Data Bit = 0)
12539
NEC_78K_0_btclr
,
// Branch if True and Clear Conditional Branch and Clear by Bit Test (Byte Data Bit = 1)
12540
NEC_78K_0_dbnz
,
// Decrement and Branch if Not Zero Conditional Loop (R1!= 0)
12541
NEC_78K_0_sel
,
// Select Register Bank Register Bank Selection
12542
NEC_78K_0_nop
,
// No Operation
12543
NEC_78K_0_EI
,
// Enable Interrupt
12544
NEC_78K_0_DI
,
// Disable Interrupt
12545
NEC_78K_0_HALT
,
// HALT Mode Set
12546
NEC_78K_0_STOP
,
// Stop Mode Set
12547
NEC_78K_0_last
12548
};
12549
/*
12550
* Interactive disassembler (IDA).
12551
* Copyright (c) 1990-2026 Hex-Rays
12552
* ALL RIGHTS RESERVED.
12553
*
12554
*/
12555
enum
12556
{
12557
NEC_78K_0S_null
= 0,
// Unknown Operation
12558
NEC_78K_0S_cmp
,
// Compare Byte Data Comparison
12559
NEC_78K_0S_xor
,
// Exclusive Or Exclusive Logical Sum of Byte Data
12560
NEC_78K_0S_and
,
// AND Logical Product of Byte Data
12561
NEC_78K_0S_or
,
// OR Logical Sum of Byte Data
12562
NEC_78K_0S_add
,
// ADD Byte Data Addition
12563
NEC_78K_0S_sub
,
// Subtract Byte Data Subtraction
12564
NEC_78K_0S_addc
,
// Add with Carry Addition of Byte Data with Carry
12565
NEC_78K_0S_subc
,
// Subtract with Carry Subtraction of Byte Data with Carry
12566
NEC_78K_0S_subw
,
// Subtract Word Data Subtraction
12567
NEC_78K_0S_addw
,
// Add Word Data Addition
12568
NEC_78K_0S_cmpw
,
// Compare Word Data Comparison
12569
NEC_78K_0S_inc
,
// Increment Byte Data Increment
12570
NEC_78K_0S_dec
,
// Decrement Byte Data Decrement
12571
NEC_78K_0S_incw
,
// Increment Word Data Increment
12572
NEC_78K_0S_decw
,
// Decrement Word Data Decrement
12573
NEC_78K_0S_ror
,
// Rotate Right Byte Data Rotation to the Right
12574
NEC_78K_0S_rol
,
// Rotate Left Byte Data Rotation to the Left
12575
NEC_78K_0S_rorc
,
// Rotate Right with Carry Byte Data Rotation to the Right with Carry
12576
NEC_78K_0S_rolc
,
// Rotate Left with Carry Byte Data Rotation to the Left with Carry
12577
NEC_78K_0S_call
,
// CALL Subroutine Call (16 Bit Direct)
12578
NEC_78K_0S_callt
,
// Call Table Subroutine Call (Call Table Reference)
12579
NEC_78K_0S_ret
,
// Return from Subroutine
12580
NEC_78K_0S_reti
,
// Return from Interrupt / Return from Hardware Vectored Interrupt
12581
NEC_78K_0S_mov
,
// Move Byte Data Transfer
12582
NEC_78K_0S_xch
,
// Exchange Byte Data Exchange
12583
NEC_78K_0S_xchw
,
// Exchange Word Data Exchange
12584
NEC_78K_0S_set1
,
// Set Single Bit (Carry Flag) 1 Bit Data Set
12585
NEC_78K_0S_clr1
,
// Clear Single Bit (Carry Flag) 1 Bit Data Clear
12586
NEC_78K_0S_not1
,
// Not Single Bit (Carry Flag) 1 Bit Data Logical Negation
12587
NEC_78K_0S_push
,
// Push
12588
NEC_78K_0S_pop
,
// Pop
12589
NEC_78K_0S_movw
,
// Move Word Data Transfer / Word Data Transfer with Stack Pointer
12590
NEC_78K_0S_br
,
// Unconditional Branch
12591
NEC_78K_0S_bc
,
// Branch if Carry Conditional Branch with Carry Flag (CY = 1)
12592
NEC_78K_0S_bnc
,
// Branch if Not Carry Conditional Branch with Carry Flag (CY = 0)
12593
NEC_78K_0S_bz
,
// Branch if Zero Conditional Branch with Zero Flag (Z = 1)
12594
NEC_78K_0S_bnz
,
// Branch if Not Zero Conditional Branch with Zero Flag (Z = 0)
12595
NEC_78K_0S_bt
,
// Branch if True Conditional Branch by Bit Test (Byte Data Bit = 1)
12596
NEC_78K_0S_bf
,
// Branch if False Conditional Branch by Bit Test (Byte Data Bit = 0)
12597
NEC_78K_0S_dbnz
,
// Decrement and Branch if Not Zero Conditional Loop (R1 != 0)
12598
NEC_78K_0S_nop
,
// No Operation
12599
NEC_78K_0S_EI
,
// Enable Interrupt
12600
NEC_78K_0S_DI
,
// Disable Interrupt
12601
NEC_78K_0S_HALT
,
// HALT Mode Set
12602
NEC_78K_0S_STOP
,
// Stop Mode Set
12603
NEC_78K_0S_last
12604
};
12605
// The instruction types (``itype''s)
12606
// M16C/60, M16C/20, M16C/Tiny and M16C/80 CPUs implements.
12607
enum
m16c_itype_t
12608
{
12609
M16C_null
=0,
// Unknown Operation
12610
M16C_abs
,
// Absolute value
12611
M16C_adc
,
// Add with carry
12612
M16C_adcf
,
// Add carry flag
12613
M16C_add
,
// Add without carry
12614
M16C_adjnz
,
// Add & conditional jump
12615
M16C_and
,
// Logically AND
12616
M16C_band
,
// Logically AND bits
12617
M16C_bclr
,
// Clear bit
12618
M16C_bmcnd
,
// Conditional bit transfer
12619
// conds (order is important; don't shuffle) (same order as the enum am_cnd8_t in m16c.hpp)
12620
M16C_bmgeu
,
// Conditional bit transfer: Equal to or greater than; C == 1
12621
M16C_bmgtu
,
// Conditional bit transfer: Greater than
12622
M16C_bmeq
,
// Conditional bit transfer: Equal to; Z == 1
12623
M16C_bmn
,
// Conditional bit transfer: Negative
12624
M16C_bmle
,
// Conditional bit transfer: Equal to or smaller than (signed)
12625
M16C_bmo
,
// Conditional bit transfer: Overflow; O == 1
12626
M16C_bmge
,
// Conditional bit transfer: Equal to or greater than (signed)
12627
M16C_bmltu
,
// Conditional bit transfer: Smaller than; C == 0
12628
M16C_bmleu
,
// Conditional bit transfer: Equal to or smaller than
12629
M16C_bmne
,
// Conditional bit transfer: Not equal; Z == 0
12630
M16C_bmpz
,
// Conditional bit transfer: Positive or zero
12631
M16C_bmgt
,
// Conditional bit transfer: Greater than (signed)
12632
M16C_bmno
,
// Conditional bit transfer: No overflow; O == 0
12633
M16C_bmlt
,
// Conditional bit transfer: Smaller than (signed)
12634
// ---
12635
M16C_bnand
,
// Logically AND inverted bits
12636
M16C_bnor
,
// Logically OR inverted bits
12637
M16C_bnot
,
// Invert bit
12638
M16C_bntst
,
// Test inverted bit
12639
M16C_bnxor
,
// Exclusive OR inverted bits
12640
M16C_bor
,
// Logically OR bits
12641
M16C_brk
,
// Debug interrupt
12642
M16C_bset
,
// Set bit
12643
M16C_btst
,
// Test bit
12644
M16C_btstc
,
// Test bit & clear
12645
M16C_btsts
,
// Test bit & set
12646
M16C_bxor
,
// Exclusive OR bits
12647
M16C_cmp
,
// Compare
12648
M16C_dadc
,
// Decimal add with carry
12649
M16C_dadd
,
// Decimal add without carry
12650
M16C_dec
,
// Decrement
12651
M16C_div
,
// Signed divide
12652
M16C_divu
,
// Unsigned divide
12653
M16C_divx
,
// Signed divide (extension)
12654
M16C_dsbb
,
// Decimal subtract with borrow
12655
M16C_dsub
,
// Decimal subtract without borrow
12656
M16C_enter
,
// Build stack frame
12657
M16C_exitd
,
// Deallocate stack frame
12658
M16C_exts
,
// Extend sign
12659
M16C_fclr
,
// Clear flag register bit
12660
M16C_fset
,
// Set flag register bit
12661
M16C_inc
,
// Increment
12662
M16C_int
,
// Interrupt by INT instruction
12663
M16C_into
,
// Interrupt on overflow
12664
M16C_jcnd
,
// Jump on condition
12665
// conds (order is important; don't shuffle) (same order as the enum am_cnd8_t in m16c.hpp)
12666
M16C_jgeu
,
// Conditional jump: Equal to or greater than; C == 1
12667
M16C_jgtu
,
// Conditional jump: Greater than
12668
M16C_jeq
,
// Conditional jump: Equal to; Z == 1
12669
M16C_jn
,
// Conditional jump: Negative
12670
M16C_jle
,
// Conditional jump: Equal to or smaller than (signed)
12671
M16C_jo
,
// Conditional jump: Overflow; O == 1
12672
M16C_jge
,
// Conditional jump: Equal to or greater than (signed)
12673
M16C_jltu
,
// Conditional jump: Smaller than; C == 0
12674
M16C_jleu
,
// Conditional jump: Equal to or smaller than
12675
M16C_jne
,
// Conditional jump: Not equal; Z == 0
12676
M16C_jpz
,
// Conditional jump: Positive or zero
12677
M16C_jgt
,
// Conditional jump: Greater than (signed)
12678
M16C_jno
,
// Conditional jump: No overflow; O == 0
12679
M16C_jlt
,
// Conditional jump: Smaller than (signed)
12680
// ---
12681
M16C_jmp
,
// Unconditional jump
12682
M16C_jmpi
,
// Jump indirect
12683
M16C_jmps
,
// Jump to special page
12684
M16C_jsr
,
// Subroutine call
12685
M16C_jsri
,
// Indirect subroutine call
12686
M16C_jsrs
,
// Special page subroutine call
12687
M16C_ldc
,
// Transfer to control register
12688
M16C_ldctx
,
// Restore context
12689
M16C_lde
,
// Transfer from extended data area
12690
M16C_ldintb
,
// Load to INTB register
12691
M16C_ldipl
,
// Set interrupt enable level
12692
M16C_mov
,
// Transfer
12693
M16C_mova
,
// Transfer effective address
12694
M16C_movhh
,
// Xfer 4-bit data: src(8-bits)'s 4 hi bits -> dest(8-bits)'s 4 hi bits.
12695
M16C_movhl
,
// Xfer 4-bit data: src(8-bits)'s 4 hi bits -> dest(8-bits)'s 4 lo bits.
12696
M16C_movlh
,
// Xfer 4-bit data: src(8-bits)'s 4 lo bits -> dest(8-bits)'s 4 hi bits.
12697
M16C_movll
,
// Xfer 4-bit data: src(8-bits)'s 4 lo bits -> dest(8-bits)'s 4 lo bits.
12698
M16C_mul
,
// Signed multiply
12699
M16C_mulu
,
// Unsigned multiply
12700
M16C_neg
,
// Two's complement
12701
M16C_nop
,
// No operation
12702
M16C_not
,
// Invert all bits
12703
M16C_or
,
// Logically OR
12704
M16C_pop
,
// Restore register/memory
12705
M16C_popc
,
// Restore control register
12706
M16C_popm
,
// Restore multiple registers
12707
M16C_push
,
// Save register/memory/immediate data
12708
M16C_pusha
,
// Save effective address
12709
M16C_pushc
,
// Save control register
12710
M16C_pushm
,
// Save multiple registers
12711
M16C_reit
,
// Return from interrupt
12712
M16C_rmpa
,
// Calculate sum-of-products
12713
M16C_rolc
,
// Rotate left with carry
12714
M16C_rorc
,
// Rotate right with carry
12715
M16C_rot
,
// Rotate
12716
M16C_rts
,
// Return from subroutine
12717
M16C_sbb
,
// Subtract with borrow
12718
M16C_sbjnz
,
// Subtract & conditional jump
12719
M16C_sha
,
// Shift arithmetic
12720
M16C_shl
,
// Shift logical
12721
M16C_smovb
,
// Transfer string backward
12722
M16C_smovf
,
// Transfer string forward
12723
M16C_sstr
,
// Store string
12724
M16C_stc
,
// Transfer from control register
12725
M16C_stctx
,
// Save context
12726
M16C_ste
,
// Store to extended data area
12727
M16C_stnz
,
// Conditional transfer: store on not zero
12728
M16C_stz
,
// Conditional transfer: store on zero
12729
M16C_stzx
,
// Conditional transfer: store on zero extension
12730
M16C_sub
,
// Subtract without borrow
12731
M16C_tst
,
// Test
12732
M16C_und
,
// Interrupt for undefined instruction
12733
M16C_wait
,
// Wait
12734
M16C_xchg
,
// Exchange
12735
M16C_xor
,
// Exclusive OR
12736
// M16C/80 specifics
12737
M16C_addx
,
12738
M16C_bitindex
,
12739
M16C_brk2
,
// Debugger-only interrupt
12740
M16C_clip
,
12741
M16C_cmpx
,
12742
M16C_extz
,
12743
M16C_freit
,
// Fast return from interrupt
12744
M16C_indexb
,
12745
M16C_indexbd
,
12746
M16C_indexbs
,
12747
M16C_indexl
,
12748
M16C_indexld
,
12749
M16C_indexls
,
12750
M16C_indexw
,
12751
M16C_indexwd
,
12752
M16C_indexws
,
12753
M16C_max
,
12754
M16C_min
,
12755
M16C_movx
,
12756
M16C_mulex
,
12757
M16C_sccnd
,
12758
// conds (order is important; don't shuffle) (same order as the enum am_cnd8_t in m16c.hpp)
12759
M16C_scgeu
,
// Conditional store: Equal to or greater than; C == 1
12760
M16C_scgtu
,
// Conditional store: Greater than
12761
M16C_sceq
,
// Conditional store: Equal to; Z == 1
12762
M16C_scn
,
// Conditional store: Negative
12763
M16C_scle
,
// Conditional store: Equal to or smaller than (signed)
12764
M16C_sco
,
// Conditional store: Overflow; O == 1
12765
M16C_scge
,
// Conditional store: Equal to or greater than (signed)
12766
M16C_scltu
,
// Conditional store: Smaller than; C == 0
12767
M16C_scleu
,
// Conditional store: Equal to or smaller than
12768
M16C_scne
,
// Conditional store: Not equal; Z == 0
12769
M16C_scpz
,
// Conditional store: Positive or zero
12770
M16C_scgt
,
// Conditional store: Greater than (signed)
12771
M16C_scno
,
// Conditional store: No overflow; O == 0
12772
M16C_sclt
,
// Conditional store: Smaller than (signed)
12773
// ---
12774
M16C_scmpu
,
12775
M16C_sin
,
12776
M16C_smovu
,
12777
M16C_sout
,
12778
M16C_subx
,
12779
// M32C specifics
12780
M16C_shanc
,
// Shift arithmetic no carry
12781
M16C_shlnc
,
// Shift logical no carry
12782
// R32C specifics
12783
M16C_addf
,
12784
M16C_adsf
,
12785
M16C_cmpf
,
12786
M16C_cnvif
,
12787
M16C_divf
,
12788
M16C_ediv
,
12789
M16C_edivu
,
12790
M16C_edivx
,
12791
M16C_emul
,
12792
M16C_emulu
,
12793
M16C_exiti
,
12794
M16C_index1
,
12795
M16C_index2
,
12796
M16C_mulf
,
12797
M16C_mulx
,
12798
M16C_round
,
12799
M16C_stop
,
12800
M16C_subf
,
12801
M16C_suntil
,
12802
M16C_swhile
,
12803
M16C_last
12804
};
12805
// exporting the ins.cpp array
12806
// m32r instructions declaration
12807
enum
12808
{
12809
m32r_null
= 0,
// Null instruction
12810
m32r_add
,
// Add
12811
m32r_add3
,
// Add 3-operand
12812
m32r_addi
,
// Add immediate
12813
m32r_addv
,
// Add with overflow checking
12814
m32r_addv3
,
// Add 3-operand with overflow checking
12815
m32r_addx
,
// Add with carry
12816
m32r_and
,
// AND
12817
m32r_and3
,
// AND 3-operand
12818
m32r_bc
,
// Branch on C-bit
12819
m32r_beq
,
// Branch on equal
12820
m32r_beqz
,
// Branch on equal zero
12821
m32r_bgez
,
// Branch on greater than or equal zero
12822
m32r_bgtz
,
// Branch on greater than zero
12823
m32r_bl
,
// Branch and link
12824
m32r_blez
,
// Branch on less than or equal zero
12825
m32r_bltz
,
// Branch on less than zero
12826
m32r_bnc
,
// Branch on not C-bit
12827
m32r_bne
,
// Branch on not equal
12828
m32r_bnez
,
// Branch on not equal zero
12829
m32r_bra
,
// Branch
12830
m32r_cmp
,
// Compare
12831
m32r_cmpi
,
// Compare immediate
12832
m32r_cmpu
,
// Compare unsigned
12833
m32r_cmpui
,
// Compare unsigned immediate
12834
m32r_div
,
// Divide
12835
m32r_divu
,
// Divide unsigned
12836
m32r_jl
,
// Jump and link
12837
m32r_jmp
,
// Jump
12838
m32r_ld
,
// Load
12839
m32r_ld24
,
// Load 24-bit immediate
12840
m32r_ldb
,
// Load byte
12841
m32r_ldh
,
// Load halfword
12842
m32r_ldi
,
// Load immediate
12843
m32r_ldub
,
// Load unsigned byte
12844
m32r_lduh
,
// Load unsigned halfword
12845
m32r_lock
,
// Load locked
12846
m32r_machi
,
// Multiply-accumulate high-order halfwords
12847
m32r_maclo
,
// Multiply-accumulate low-order halfwords
12848
m32r_macwhi
,
// Multiply-accumulate word and high-order halfword
12849
m32r_macwlo
,
// Multiply-accumulate word and low-order halfword
12850
m32r_mul
,
// Multiply
12851
m32r_mulhi
,
// Multiply high-order halfwords
12852
m32r_mullo
,
// Multiply low-order halfwords
12853
m32r_mulwhi
,
// Multiply word high-order halfwords
12854
m32r_mulwlo
,
// Multiply word low-order halfwords
12855
m32r_mv
,
// Move register
12856
m32r_mvfachi
,
// Move from accumulator high-order word
12857
m32r_mvfaclo
,
// Move from accumulator low-order word
12858
m32r_mvfacmi
,
// Move from accumulator middle-order word
12859
m32r_mvfc
,
// Move from control register
12860
m32r_mvtachi
,
// Move to accumulator high-order word
12861
m32r_mvtaclo
,
// Move to accumulator low-order word
12862
m32r_mvtc
,
// Move to control register
12863
m32r_neg
,
// Negate
12864
m32r_nop
,
// No operation
12865
m32r_not
,
// Logical NOT
12866
m32r_or
,
// OR
12867
m32r_or3
,
// OR 3-operand
12868
m32r_push
,
// Push, mnem for st reg, @-sp
12869
m32r_pop
,
// Pop, mnem for ld reg, @sp+
12870
m32r_rac
,
// Round accumulator
12871
m32r_rach
,
// Round accumulator halfword
12872
m32r_rem
,
// Remainder
12873
m32r_remu
,
// Remainder unsigned
12874
m32r_rte
,
// Return from EIT
12875
m32r_seth
,
// Set high-order 16-bit
12876
m32r_sll
,
// Shift left logical
12877
m32r_sll3
,
// Shift left logical 3-operand
12878
m32r_slli
,
// Shift left logical immediate
12879
m32r_sra
,
// Shirt right arithmetic
12880
m32r_sra3
,
// Shirt right arithmetic 3-operand
12881
m32r_srai
,
// Shirt right arithmetic immediate
12882
m32r_srl
,
// Shift right logical
12883
m32r_srl3
,
// Shift right logical 3-operand
12884
m32r_srli
,
// Shift right logical immediate
12885
m32r_st
,
// Store
12886
m32r_stb
,
// Store byte
12887
m32r_sth
,
// Store halfword
12888
m32r_sub
,
// Substract
12889
m32r_subv
,
// Substract with overflow checking
12890
m32r_subx
,
// Substract with borrow
12891
m32r_trap
,
// Trap
12892
m32r_unlock
,
// Store unlocked
12893
m32r_xor
,
// Exclusive OR
12894
m32r_xor3
,
// Exclusive OR 3-operand
12895
// M32RX :
12896
m32rx_bcl
,
12897
m32rx_bncl
,
12898
m32rx_cmpeq
,
12899
m32rx_cmpz
,
12900
m32rx_divh
,
12901
m32rx_jc
,
12902
m32rx_jnc
,
12903
m32rx_machi
,
// 'machi' 3-operand
12904
m32rx_maclo
,
// 'maclo' 3-operand
12905
m32rx_macwhi
,
// 'macwhi' 3-operand
12906
m32rx_macwlo
,
// 'macwlo' 3-operand
12907
m32rx_mulhi
,
// 'mulhi' 3-operand
12908
m32rx_mullo
,
// 'mullo' 3-operand
12909
m32rx_mulwhi
,
// 'mulwhi' 3-operand
12910
m32rx_mulwlo
,
// 'mulwlo' 3-operand
12911
m32rx_mvfachi
,
// 'mvfachi' 3-operand
12912
m32rx_mvfaclo
,
// 'mvfaclo' 3-operand
12913
m32rx_mvfacmi
,
// 'mvfacmi' 3-operand
12914
m32rx_mvtachi
,
// 'mvtachi' 3-operand
12915
m32rx_mvtaclo
,
// 'mvtaclo' 3-operand
12916
m32rx_rac
,
// 'rac' 3 operand
12917
m32rx_rach
,
// 'rach' 3 operand
12918
m32rx_satb
,
12919
m32rx_sath
,
12920
m32rx_sat
,
12921
m32rx_pcmpbz
,
12922
m32rx_sadd
,
12923
m32rx_macwu1
,
12924
m32rx_msblo
,
12925
m32rx_mulwu1
,
12926
m32rx_maclh1
,
12927
m32rx_sc
,
12928
m32rx_snc
,
12929
// Floating point
12930
m32r_fadd
,
// Floating-point add
12931
m32r_fsub
,
// Floating-point subtract
12932
m32r_fmul
,
// Floating-point multiply
12933
m32r_fdiv
,
// Floating-point divede
12934
m32r_fmadd
,
// Floating-point multiply and add
12935
m32r_fmsub
,
// Floating-point multiply and subtract
12936
m32r_itof
,
// Integer to float
12937
m32r_utof
,
// Unsigned integer to float
12938
m32r_ftoi
,
// Float to integer
12939
m32r_ftos
,
// Float to short
12940
m32r_fcmp
,
// Floating-point compare
12941
m32r_fcmpe
,
// Floating-point compare with exeption if unordered
12942
// Bit Operation Instructions
12943
m32r_bset
,
// Bit set
12944
m32r_bclr
,
// Bit clear
12945
m32r_btst
,
// Bit test
12946
m32r_setpsw
,
// Set PSW
12947
m32r_clrpsw
,
// Clear PSW
12948
m32r_last
12949
};
12950
enum
12951
{
12952
m740_null
= 0,
// null instruction
12953
m740_adc
,
// add with carry
12954
m740_and
,
// logical and
12955
m740_asl
,
// arithmetic shift left
12956
m740_bbc
,
// branch on bit clear
12957
m740_bbs
,
// branch on bit set
12958
m740_bcc
,
// branch on carry clear
12959
m740_bcs
,
// branch on carry set
12960
m740_beq
,
// branch on equal
12961
m740_bit
,
// test bit in memory with accumulator
12962
m740_bmi
,
// branch on result minus
12963
m740_bne
,
// branch on not equal
12964
m740_bpl
,
// branch on result plus
12965
m740_bra
,
// branch always
12966
m740_brk
,
// force break
12967
m740_bvc
,
// branch on overflow clear
12968
m740_bvs
,
// branch on overflow set
12969
m740_clb
,
// clear bit
12970
m740_clc
,
// clear carry flag
12971
m740_cld
,
// clear decimal mode
12972
m740_cli
,
// clear interrupt disable status
12973
m740_clt
,
// clear transfer flag
12974
m740_clv
,
// clear overflow flag
12975
m740_cmp
,
// compare
12976
m740_com
,
// complement
12977
m740_cpx
,
// compare memory and index register X
12978
m740_cpy
,
// compare memory and index register Y
12979
m740_dec
,
// decrement by one
12980
m740_dex
,
// decrement index register X by one
12981
m740_dey
,
// decrement index register Y by one
12982
m740_div
,
// divide memory by accumulator
12983
m740_eor
,
// exclusive or memory with accumulator
12984
m740_inc
,
// increment by one
12985
m740_inx
,
// increment index register X by one
12986
m740_iny
,
// increment index register Y by one
12987
m740_jmp
,
// jump
12988
m740_jsr
,
// jump to subroutine
12989
m740_lda
,
// load accumulator with memory
12990
m740_ldm
,
// load immediate data to memory
12991
m740_ldx
,
// load index register X from memory
12992
m740_ldy
,
// load index register Y from memory
12993
m740_lsr
,
// logical shift right
12994
m740_mul
,
// multiply accumulator and memory
12995
m740_nop
,
// no operation
12996
m740_ora
,
// or memory with accumulator
12997
m740_pha
,
// push accumulator on stack
12998
m740_php
,
// push processor status on stack
12999
m740_pla
,
// pull accumulator from stack
13000
m740_plp
,
// pull processor status from stack
13001
m740_rol
,
// rotate one bit left
13002
m740_ror
,
// rotate one bit right
13003
m740_rrf
,
// rotate right of four bits
13004
m740_rti
,
// return from interrupt
13005
m740_rts
,
// return from subroutine
13006
m740_sbc
,
// subtract with carry
13007
m740_seb
,
// set bit
13008
m740_sec
,
// set carry flag
13009
m740_sed
,
// set decimal mode
13010
m740_sei
,
// set interrupt disable flag
13011
m740_set
,
// set transfert flag
13012
m740_sta
,
// store accumulator in memory
13013
m740_stp
,
// stop
13014
m740_stx
,
// store index register X in memory
13015
m740_sty
,
// store index register Y in memory
13016
m740_tax
,
// transfert accumulator to index register X
13017
m740_tay
,
// transfert accumulator to index register Y
13018
m740_tst
,
// test for negative or zero
13019
m740_tsx
,
// transfert stack pointer to index register X
13020
m740_txa
,
// transfert index register X to accumulator
13021
m740_txs
,
// transfert index register X to stack pointer
13022
m740_tya
,
// transfert index register Y to accumulator
13023
m740_wit
,
// wait
13024
m740_last
13025
};
13026
enum
13027
{
13028
// 7700 :
13029
m7700_null
= 0,
// null instruction
13030
m7700_adc
,
// addition with carry
13031
m7700_and
,
// logical AND
13032
m7700_asl
,
// arithmetic shift left
13033
m7700_bbc
,
// branch on bit clear
13034
m7700_bbs
,
// branch on bit set
13035
m7700_bcc
,
// branch on carry clear
13036
m7700_bcs
,
// branch on carry set
13037
m7700_beq
,
// branch on equal
13038
m7700_bmi
,
// branch on result minus
13039
m7700_bne
,
// branch on not equal
13040
m7700_bpl
,
// branch on result plus
13041
m7700_bra
,
// branch always
13042
m7700_brk
,
// force break
13043
m7700_bvc
,
// branch on overflow clear
13044
m7700_bvs
,
// branch on overflow set
13045
m7700_clb
,
// clear bit
13046
m7700_clc
,
// clear carry flag
13047
m7700_cli
,
// clear interrupt disable status
13048
m7700_clm
,
// clear m flag
13049
m7700_clp
,
// clear processor status
13050
m7700_clv
,
// clear overflow flag
13051
m7700_cmp
,
// compare
13052
m7700_cpx
,
// compare memory and index register X
13053
m7700_cpy
,
// compare memory and index register Y
13054
m7700_dec
,
// decrement by one
13055
m7700_dex
,
// decrement index register X by one
13056
m7700_dey
,
// decrement index register Y by one
13057
m7700_div
,
// divide
13058
m7700_eor
,
// exclusive OR memory with accumulator
13059
m7700_inc
,
// increment by one
13060
m7700_inx
,
// increment index register X by one
13061
m7700_iny
,
// increment index register Y by one
13062
m7700_jmp
,
// jump
13063
m7700_jsr
,
// jump to subroutine
13064
m7700_lda
,
// load accumulator from memory
13065
m7700_ldm
,
// load immediate to memory
13066
m7700_ldt
,
// load immediate to data bank register
13067
m7700_ldx
,
// load index register X from memory
13068
m7700_ldy
,
// load index register Y from memory
13069
m7700_lsr
,
// logical shift right
13070
m7700_mpy
,
// multiply
13071
m7700_mvn
,
// move negative
13072
m7700_mvp
,
// move positive
13073
m7700_nop
,
// no operation
13074
m7700_ora
,
// OR memory with accumulator
13075
m7700_pea
,
// push effective address
13076
m7700_pei
,
// push effective indirect address
13077
m7700_per
,
// push effective program counter relative address
13078
m7700_pha
,
// push accumulator A on stack
13079
m7700_phb
,
// push accumulator B on stack
13080
m7700_phd
,
// push direct page register on stack
13081
m7700_phg
,
// push program bank register on stack
13082
m7700_php
,
// push processor status on stack
13083
m7700_pht
,
// push data bank register on stack
13084
m7700_phx
,
// push index register X on stack
13085
m7700_phy
,
// push index register Y on stack
13086
m7700_pla
,
// pull accumulator A from stack
13087
m7700_plb
,
// pull accumulator B from stack
13088
m7700_pld
,
// pull direct page register from stack
13089
m7700_plp
,
// pull processor status from stack
13090
m7700_plt
,
// pull data bank register from stack
13091
m7700_plx
,
// pull index register X from stack
13092
m7700_ply
,
// pull index register Y from stack
13093
m7700_psh
,
// push
13094
m7700_pul
,
// pull
13095
m7700_rla
,
// rotate left accumulator A
13096
m7700_rol
,
// rotate one bit left
13097
m7700_ror
,
// rotate one bit right
13098
m7700_rti
,
// return from interrupt
13099
m7700_rtl
,
// return from subroutine long
13100
m7700_rts
,
// return from subroutine
13101
m7700_sbc
,
// subtract with carry
13102
m7700_seb
,
// set bit
13103
m7700_sec
,
// set carry flag
13104
m7700_sei
,
// set interrupt disable status
13105
m7700_sem
,
// set m flag
13106
m7700_sep
,
// set processor status
13107
m7700_sta
,
// store accumulator in memory
13108
m7700_stp
,
// stop
13109
m7700_stx
,
// store index register X in memory
13110
m7700_sty
,
// store index register Y in memory
13111
m7700_tad
,
// transfer accumulator A to direct page register
13112
m7700_tas
,
// transfer accumulator A to stack pointer
13113
m7700_tax
,
// transfer accumulator A to index register X
13114
m7700_tay
,
// transfer accumulator A to index register Y
13115
m7700_tbd
,
// transfer accumulator B to direct page register
13116
m7700_tbs
,
// transfer accumulator B to stack pointer
13117
m7700_tbx
,
// transfer accumulator B to index register X
13118
m7700_tby
,
// transfer accumulator B to index register Y
13119
m7700_tda
,
// transfer direct page register to accumulator A
13120
m7700_tdb
,
// transfer direct page register to accumulator B
13121
m7700_tsa
,
// transfer stack pointer to accumulator A
13122
m7700_tsb
,
// transfer stack pointer to accumulator B
13123
m7700_tsx
,
// transfer stack pointer to index register X
13124
m7700_txa
,
// transfer index register X to accumulator A
13125
m7700_txb
,
// transfer index register X to accumulator B
13126
m7700_txs
,
// transfer index register X to stack pointer
13127
m7700_txy
,
// transfer index register X to Y
13128
m7700_tya
,
// transfer index register Y to accumulator A
13129
m7700_tyb
,
// transfer index register Y to accumulator B
13130
m7700_tyx
,
// transfer index register Y to X
13131
m7700_wit
,
// wait
13132
m7700_xab
,
// exchange accumulator A and B
13133
// 7750 :
13134
m7750_asr
,
// arithmetic shift right
13135
m7750_divs
,
// divide with sign
13136
m7750_exts
,
// extention with sign
13137
m7750_extz
,
// extention zero
13138
m7750_mpys
,
// multiply with sign
13139
m7700_last
13140
};
13141
/*
13142
* Interactive disassembler (IDA).
13143
* Copyright (c) 1990-2026 Hex-Rays
13144
* ALL RIGHTS RESERVED.
13145
*
13146
* MITSUBISHI 7900 Family
13147
*/
13148
enum
13149
{
13150
m7900_null
= 0,
// Unknown Operation
13151
m7900_abs
,
// ABSolute
13152
m7900_absd
,
// ABSolute at Double-word
13153
m7900_adc
,
// ADd with Carry
13154
m7900_adcb
,
// ADd with Carry at Byte
13155
m7900_adcd
,
// ADd with Carry at Double-word
13156
m7900_add
,
// Addition
13157
m7900_addb
,
// ADD at Byte
13158
m7900_addd
,
// ADD at Double-word
13159
m7900_addm
,
// ADD immediate and Memory
13160
m7900_addmb
,
// ADD immediate and Memory at Byte
13161
m7900_addmd
,
// ADD immediate and Memory at Double-word
13162
m7900_adds
,
// ADD Stack pointer and immediate
13163
m7900_addx
,
// ADD index register X and immediate
13164
m7900_addy
,
// ADD index register Y and immediate
13165
m7900_and
,
// Logical AND
13166
m7900_andb
,
// logical AND between immediate (Byte)
13167
m7900_andm
,
// logical AND between immediate value and Memory
13168
m7900_andmb
,
// logical AND between immediate value and Memory (Byte)
13169
m7900_andmd
,
// logical AND between immediate value and Memory (Double word)
13170
m7900_asl
,
// Arithmetic Shift to Left
13171
m7900_asln
,
// Arithmetic Shift to Left by n bits
13172
m7900_asldn
,
// Arithmetic Shift to Left by n bits (Double word)
13173
m7900_asr
,
// Arithmeticshift to the right
13174
m7900_asrn
,
// Arithmetic Shift to Right by n bits
13175
m7900_asrdn
,
// Arithmetic Shift to Right by n bits (Double word)
13176
m7900_bbc
,
// Branch on Bit Clear
13177
m7900_bbcb
,
// Branch on Bit Clear (Byte)
13178
m7900_bbs
,
// Branch on Bit Set
13179
m7900_bbsb
,
// Branch on Bit Set (Byte)
13180
m7900_bcc
,
// Branch on Carry Clear
13181
m7900_bcs
,
// Branch on Carry Set
13182
m7900_beq
,
// Branch on EQual
13183
m7900_bge
,
// Branch on Greater or Equal
13184
m7900_bgt
,
// Branch on Greater Than
13185
m7900_bgtu
,
// Branch on Greater Than with Unsign
13186
m7900_ble
,
// Branch on Less or Equal
13187
m7900_bleu
,
// Branch on Less Equal with Unsign
13188
m7900_blt
,
// Branch on Less Than
13189
m7900_bmi
,
// Branch on result MInus
13190
m7900_bne
,
// Branch on Not Equal
13191
m7900_bpl
,
// Branch on result PLus
13192
m7900_bra
,
// BRanch Always
13193
m7900_bral
,
// BRanch Always
13194
m7900_brk
,
// force BReaK
13195
m7900_bsc
,
// Branch on Single bit Clear
13196
m7900_bsr
,
// Branch to SubRoutine
13197
m7900_bss
,
// Branch on Single bit Set
13198
m7900_bvc
,
// Branch on oVerflow Clear
13199
m7900_bvs
,
// Branch on oVerflow Set
13200
m7900_cbeq
,
// Compare immediate and Branch on EQual
13201
m7900_cbeqb
,
// Compare immediate and Branch on EQual at Byte
13202
m7900_cbne
,
// Compare immediate and Branch on Not Equal
13203
m7900_cbneb
,
// Compare immediate and Branch on Not Equal at Byte
13204
m7900_clc
,
// CLear Carry flag
13205
m7900_cli
,
// CLear Interrupt disable status
13206
m7900_clm
,
// CLear M flag
13207
m7900_clp
,
// CLear Processor status
13208
m7900_clr
,
// CLeaR accumulator
13209
m7900_clrb
,
// CLeaR accumulator at Byte
13210
m7900_clrm
,
// CLeaR Memory
13211
m7900_clrmb
,
// CLeaR Memory at Byte
13212
m7900_clrx
,
// CLeaR index register X
13213
m7900_clry
,
// CLeaR index register Y
13214
m7900_clv
,
// CLear oVerflow flag
13215
m7900_cmp
,
// CoMPare
13216
m7900_cmpb
,
// CoMPare at Byte
13217
m7900_cmpd
,
// CoMPare at Double-word
13218
m7900_cmpm
,
// CoMPare immediate with Memory
13219
m7900_cmpmb
,
// CoMPare immediate with Memory at Byte
13220
m7900_cmpmd
,
// CoMPare immediate with Memory at Double-word
13221
m7900_cpx
,
// ComPare memory and index register X
13222
m7900_cpy
,
// ComPare memory and index register Y
13223
m7900_debne
,
// DEcrement memory and Branch on Not Equal
13224
m7900_dec
,
// DECrement by one
13225
m7900_dex
,
// DEcrement index register X by one
13226
m7900_dey
,
// DEcrement index register Y by one
13227
m7900_div
,
// DIVide unsigned
13228
m7900_divs
,
// DIVide with Sign
13229
m7900_dxbne
,
// Decrement index register X and Branch on Not Equal
13230
m7900_dybne
,
// Decrement index register Y and Branch on Not Equal
13231
m7900_eor
,
// Exclusive OR memory with accumulator
13232
m7900_eorb
,
// Exclusive OR immediate with accumulator at Byte
13233
m7900_eorm
,
// Exclusive OR immediate with Memory
13234
m7900_eormb
,
// Exclusive OR immediate with Memory at Byte
13235
m7900_eormd
,
// Exclusive OR immediate with Memory at Double-word
13236
m7900_exts
,
// EXTension Sign
13237
m7900_extsd
,
// EXTension Sign at Double-word
13238
m7900_extz
,
// EXTension Zero
13239
m7900_extzd
,
// EXTension Zero at Double-word
13240
m7900_inc
,
// INCrement by one
13241
m7900_inx
,
// INcrement index register X by one
13242
m7900_iny
,
// INcrement index register y by one
13243
m7900_jmp
,
// Jump
13244
m7900_jmpl
,
// Jump
13245
m7900_jsr
,
// Jump to SubRoutine
13246
m7900_jsrl
,
// Jump to SubRoutine
13247
m7900_lda
,
// LoaD Accumulator from memory
13248
m7900_ldab
,
// LoaD Accumulator from memory at Byte
13249
m7900_ldad
,
// LoaD Accumulator from memory at Double-word
13250
m7900_lddn
,
// LoaD immediate to Direct page register n
13251
m7900_ldt
,
// LoaD immediate to DaTa bank register
13252
m7900_ldx
,
// LoaD index register X from memory
13253
m7900_ldxb
,
// LoaD index register X from memory at Byte
13254
m7900_ldy
,
// LoaD index register Y from memory
13255
m7900_ldyb
,
// LoaD index register Y from memory at Byte
13256
m7900_lsr
,
// Logical Shift Right
13257
m7900_lsrn
,
// Logical n bits Shift Right
13258
m7900_lsrdn
,
// Logical n bits Shift Right at Double-word
13259
m7900_movm
,
// MOVe Memory to memory
13260
m7900_movmb
,
// MOVe Memory to memory at Byte
13261
m7900_movr
,
// MOVe Repeat memory to memory
13262
m7900_movrb
,
// MOVe Repeat memory to memory at Byte
13263
m7900_mpy
,
// MultiPlY
13264
m7900_mpys
,
// MultiPlY with Sign
13265
m7900_mvn
,
// MoVe Negative
13266
m7900_mvp
,
// MoVe Positive
13267
m7900_neg
,
// NEGative
13268
m7900_negd
,
// NEGative at Double-word
13269
m7900_nop
,
// No OPeration
13270
m7900_ora
,
// OR memory with Accumulator
13271
m7900_orab
,
// OR immediate with Accumulator at Byte
13272
m7900_oram
,
// OR immediAte with Memory
13273
m7900_oramb
,
// OR immediAte with Memory at Byte
13274
m7900_oramd
,
// OR immediAte with Memory at Double-word
13275
m7900_pea
,
// Push Effective Address
13276
m7900_pei
,
// Push Effective Indirect address
13277
m7900_per
,
// Push Effective program counter Relative address
13278
m7900_pha
,
// PusH accumulator A on stack
13279
m7900_phb
,
// PusH accumulator B on stack
13280
m7900_phd
,
// PusH Direct page register on stack
13281
m7900_phdn
,
// PusH Direct page register n on stack
13282
m7900_phg
,
// PusH proGram bank register on stack
13283
m7900_phldn
,
// PusH dpr n to stack and Load immediate to Dpr n
13284
m7900_php
,
// PusH Processor status on stack
13285
m7900_pht
,
// PusH daTa bank register on stack
13286
m7900_phx
,
// PusH index register X on stack
13287
m7900_phy
,
// PusH index register Y on stack
13288
m7900_pla
,
// PuLl accumulator A from stack
13289
m7900_plb
,
// PuLl accumulator B from stack
13290
m7900_pld
,
// PuLl Direct page register from stack
13291
m7900_pldn
,
// PuLl Direct page register n from stack
13292
m7900_plp
,
// PuLl Processor status from stack
13293
m7900_plt
,
// PuLl daTa bank register from stack
13294
m7900_plx
,
// PuLl index register X from stack
13295
m7900_ply
,
// PuLl index register Y from stack
13296
m7900_psh
,
// PuSH
13297
m7900_pul
,
// PuLl
13298
m7900_rla
,
// Rotate Left accumulator A
13299
m7900_rmpa
,
// Repeat Multiply and Accumulate
13300
m7900_rol
,
// ROtate one bit Left
13301
m7900_roln
,
// n bits ROtate Left
13302
m7900_roldn
,
// n bits ROtate Left at Double-word
13303
m7900_ror
,
// ROtate one bit Right
13304
m7900_rorn
,
// n bits ROtate Right
13305
m7900_rordn
,
// n bits ROtate Right at Double-word
13306
m7900_rti
,
// Return from Interrupt
13307
m7900_rtl
,
// ReTurn from subroutine Long
13308
m7900_rtld
,
// ReTurn from subroutine Long and pull Direct page register n
13309
m7900_rts
,
// ReTurn from Subroutine
13310
m7900_rtsdn
,
// ReTurn from Subroutine and pull Direct page register n
13311
m7900_sbc
,
// SuBtract with Carry
13312
m7900_sbcb
,
// SuBtract with Carry at Byte
13313
m7900_sbcd
,
// SuBtract with Carry at Double-word
13314
m7900_sec
,
// SEt Carry flag
13315
m7900_sei
,
// SEt Interrupt disable status
13316
m7900_sem
,
// SEt M flag
13317
m7900_sep
,
// SEt Processor status
13318
m7900_sta
,
// STore Accumulator in memory
13319
m7900_stab
,
// STore Accumulator in memory at Byte
13320
m7900_stad
,
// STore Accumulator in memory at Double-word
13321
m7900_stp
,
// SToP
13322
m7900_stx
,
// STore index register X in memory
13323
m7900_sty
,
// STore index register Y in memory
13324
m7900_sub
,
// SUBtract
13325
m7900_subb
,
// SUBtract at Byte
13326
m7900_subd
,
// SUBtract at Double-word
13327
m7900_subm
,
// SUBtract immediate from Memory
13328
m7900_submb
,
// SUBtract immediate from Memory at Byte
13329
m7900_submd
,
// SUBtract immediate from Memory at Double-word
13330
m7900_subs
,
// SUBtract Stack pointer
13331
m7900_subx
,
// SUBtract immediate from index register X
13332
m7900_suby
,
// SUBtract immediate from index register Y
13333
m7900_tadn
,
// Transfer accumulator A to Direct page register n
13334
m7900_tas
,
// Transfer accumulator A to Stack pointer
13335
m7900_tax
,
// Transfer accumulator A to index register X
13336
m7900_tay
,
// Transfer accumulator A to index register Y
13337
m7900_tbdn
,
// Transfer accumulator B to Direct page register n
13338
m7900_tbs
,
// Transfer accumulator B to Stack pointer
13339
m7900_tbx
,
// Transfer accumulator B to index register X
13340
m7900_tby
,
// Transfer accumulator B to index register Y
13341
m7900_tdan
,
// Transfer Direct page register n to accumulator A
13342
m7900_tdbn
,
// Transfer Direct page register n to accumulator B
13343
m7900_tds
,
// Transfer Direct page register to Stack pointer
13344
m7900_tsa
,
// Transfer Stack pointer to accumulator A
13345
m7900_tsb
,
// Transfer Stack pointer to accumulator B
13346
m7900_tsd
,
// Transfer Stack pointer to Direct page register
13347
m7900_tsx
,
// Transfer Stack pointer to index register X
13348
m7900_txa
,
// Transfer index register X to accumulator A
13349
m7900_txb
,
// Transfer index register X to accumulator B
13350
m7900_txs
,
// Transfer index register X to Stack pointer
13351
m7900_txy
,
// Transfer index register X to Y
13352
m7900_tya
,
// Transfer index register Y to accumulator A
13353
m7900_tyb
,
// Transfer index register Y to accumulator B
13354
m7900_tyx
,
// Transfer index register Y to X
13355
m7900_wit
,
// WaIT
13356
m7900_xab
,
// eXchange accumulator A and B
13357
m7900_last
//
13358
};
13359
enum
13360
{
13361
st9_null
= 0,
// Unknown Operation.
13362
st9_ld
,
// Load.
13363
st9_ldw
,
// Load word.
13364
st9_ldpp
,
// Load (using CSR) => (using CSR).
13365
st9_ldpd
,
// Load (using DPRx) => (using CSR).
13366
st9_lddp
,
// Load (using CSR) => (using DPRx).
13367
st9_lddd
,
// Load (using DPRx) => (using DPRx).
13368
st9_add
,
// Add.
13369
st9_addw
,
// Add Word.
13370
st9_adc
,
// Add with Carry.
13371
st9_adcw
,
// Add Word with Carry.
13372
st9_sub
,
// Substract.
13373
st9_subw
,
// Substract Word.
13374
st9_sbc
,
// Substract with Carry.
13375
st9_sbcw
,
// Substract Word with Carry.
13376
st9_and
,
// Logical AND.
13377
st9_andw
,
// Logical Word AND.
13378
st9_or
,
// Logical OR.
13379
st9_orw
,
// Logical Word OR.
13380
st9_xor
,
// Logical Exclusive OR.
13381
st9_xorw
,
// Logical Word Exclusive OR.
13382
st9_cp
,
// Compare.
13383
st9_cpw
,
// Compare Word.
13384
st9_tm
,
// Test under Mask.
13385
st9_tmw
,
// Test Word under Mask.
13386
st9_tcm
,
// Test Complement under Mask.
13387
st9_tcmw
,
// Test Word Complement under Mask.
13388
st9_inc
,
// Increment.
13389
st9_incw
,
// Increment Word.
13390
st9_dec
,
// Decrement.
13391
st9_decw
,
// Decrement Word.
13392
st9_sla
,
// Shift Left Arithmetic.
13393
st9_slaw
,
// Shift Word Left Arithmetic.
13394
st9_sra
,
// Shift Right Arithmetic.
13395
st9_sraw
,
// Shift Word Right Arithmetic.
13396
st9_rrc
,
// Rotate Right through Carry.
13397
st9_rrcw
,
// Rotate Word Right through Carry.
13398
st9_rlc
,
// Rotate Left through Carry.
13399
st9_rlcw
,
// Rotate Word Left through Carry.
13400
st9_ror
,
// Rotate Right.
13401
st9_rol
,
// Rotate Left.
13402
st9_clr
,
// Clear Register.
13403
st9_cpl
,
// Complement Register.
13404
st9_swap
,
// Swap Nibbles.
13405
st9_da
,
// Decimal ajust.
13406
st9_push
,
// Push on System Stack.
13407
st9_pushw
,
// Push Word on System Stack.
13408
st9_pea
,
// Push Effective Address on System Stack.
13409
st9_pop
,
// Pop from System Stack.
13410
st9_popw
,
// Pop Word from System Stack.
13411
st9_pushu
,
// Push on User Stack.
13412
st9_pushuw
,
// Push Word on User Stack.
13413
st9_peau
,
// Push Effective Address on User Stack.
13414
st9_popu
,
// Pop from User Stack.
13415
st9_popuw
,
// Pop Word from User Stack.
13416
st9_link
,
// Move System Stack Pointer upward; support for high-level language.
13417
st9_unlink
,
// Move System Stack Pointer backward; support for high-level language.
13418
st9_linku
,
// Move User Stack Pointer upward; support for high-level language.
13419
st9_unlinku
,
// Move User Stack Pointer backward; support for high-level language.
13420
st9_mul
,
// Multiply 8x8.
13421
st9_div
,
// Divide 8x8.
13422
st9_divws
,
// Divide Word Stepped 32/16.
13423
st9_bset
,
// Bit Set.
13424
st9_bres
,
// Bit Reset .
13425
st9_bcpl
,
// Bit Complement.
13426
st9_btset
,
// Bit Test and Set.
13427
st9_bld
,
// Bit Load.
13428
st9_band
,
// Bit AND.
13429
st9_bor
,
// Bit OR.
13430
st9_bxor
,
// Bit XOR.
13431
st9_ret
,
// Return from Subroutine.
13432
st9_rets
,
// Inter-segment Return to Subroutine.
13433
st9_iret
,
// Return from Interrupt.
13434
st9_jrcc
,
// Jump Relative if Condition ``cc'' is Met.
13435
st9_jpcc
,
// Jump if Condition ``cc'' is Met.
13436