IDA C++ SDK
9.2
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)