15#ifndef LIEF_ASM_EBPF_OPCODE_H
16#define LIEF_ASM_EBPF_OPCODE_H
36 COPY_TO_REGCLASS = 13,
53 LOAD_STACK_GUARD = 30,
54 PREALLOCATED_SETUP = 31,
55 PREALLOCATED_ARG = 32,
60 PATCHABLE_FUNCTION_ENTER = 37,
62 PATCHABLE_FUNCTION_EXIT = 39,
63 PATCHABLE_TAIL_CALL = 40,
64 PATCHABLE_EVENT_CALL = 41,
65 PATCHABLE_TYPED_EVENT_CALL = 42,
66 ICALL_BRANCH_FUNNEL = 43,
69 JUMP_TABLE_DEBUG_INFO = 46,
71 CONVERGENCECTRL_ENTRY = 48,
72 CONVERGENCECTRL_ANCHOR = 49,
73 CONVERGENCECTRL_LOOP = 50,
74 CONVERGENCECTRL_GLUE = 51,
100 G_PTRAUTH_GLOBAL_VALUE = 77,
101 G_CONSTANT_POOL = 78,
103 G_UNMERGE_VALUES = 80,
107 G_BUILD_VECTOR_TRUNC = 84,
108 G_CONCAT_VECTORS = 85,
113 G_CONSTANT_FOLD_BARRIER = 90,
114 G_INTRINSIC_FPTRUNC_ROUND = 91,
115 G_INTRINSIC_TRUNC = 92,
116 G_INTRINSIC_ROUND = 93,
117 G_INTRINSIC_LRINT = 94,
118 G_INTRINSIC_LLRINT = 95,
119 G_INTRINSIC_ROUNDEVEN = 96,
120 G_READCYCLECOUNTER = 97,
121 G_READSTEADYCOUNTER = 98,
125 G_INDEXED_LOAD = 102,
126 G_INDEXED_SEXTLOAD = 103,
127 G_INDEXED_ZEXTLOAD = 104,
129 G_INDEXED_STORE = 106,
130 G_ATOMIC_CMPXCHG_WITH_SUCCESS = 107,
131 G_ATOMIC_CMPXCHG = 108,
132 G_ATOMICRMW_XCHG = 109,
133 G_ATOMICRMW_ADD = 110,
134 G_ATOMICRMW_SUB = 111,
135 G_ATOMICRMW_AND = 112,
136 G_ATOMICRMW_NAND = 113,
137 G_ATOMICRMW_OR = 114,
138 G_ATOMICRMW_XOR = 115,
139 G_ATOMICRMW_MAX = 116,
140 G_ATOMICRMW_MIN = 117,
141 G_ATOMICRMW_UMAX = 118,
142 G_ATOMICRMW_UMIN = 119,
143 G_ATOMICRMW_FADD = 120,
144 G_ATOMICRMW_FSUB = 121,
145 G_ATOMICRMW_FMAX = 122,
146 G_ATOMICRMW_FMIN = 123,
147 G_ATOMICRMW_FMAXIMUM = 124,
148 G_ATOMICRMW_FMINIMUM = 125,
149 G_ATOMICRMW_UINC_WRAP = 126,
150 G_ATOMICRMW_UDEC_WRAP = 127,
151 G_ATOMICRMW_USUB_COND = 128,
152 G_ATOMICRMW_USUB_SAT = 129,
157 G_INVOKE_REGION_START = 134,
159 G_INTRINSIC_W_SIDE_EFFECTS = 136,
160 G_INTRINSIC_CONVERGENT = 137,
161 G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 138,
164 G_TRUNC_SSAT_S = 141,
165 G_TRUNC_SSAT_U = 142,
166 G_TRUNC_USAT_U = 143,
242 G_FCANONICALIZE = 219,
245 G_FMINNUM_IEEE = 222,
246 G_FMAXNUM_IEEE = 223,
256 G_RESET_FPMODE = 233,
257 G_GET_ROUNDING = 234,
258 G_SET_ROUNDING = 235,
271 G_INSERT_SUBVECTOR = 248,
272 G_EXTRACT_SUBVECTOR = 249,
273 G_INSERT_VECTOR_ELT = 250,
274 G_EXTRACT_VECTOR_ELT = 251,
275 G_SHUFFLE_VECTOR = 252,
276 G_SPLAT_VECTOR = 253,
278 G_VECTOR_COMPRESS = 255,
280 G_CTTZ_ZERO_UNDEF = 257,
282 G_CTLZ_ZERO_UNDEF = 259,
302 G_ADDRSPACE_CAST = 279,
305 G_DYN_STACKALLOC = 282,
307 G_STACKRESTORE = 284,
314 G_STRICT_FSQRT = 291,
315 G_STRICT_FLDEXP = 292,
316 G_READ_REGISTER = 293,
317 G_WRITE_REGISTER = 294,
319 G_MEMCPY_INLINE = 296,
326 G_VECREDUCE_SEQ_FADD = 303,
327 G_VECREDUCE_SEQ_FMUL = 304,
328 G_VECREDUCE_FADD = 305,
329 G_VECREDUCE_FMUL = 306,
330 G_VECREDUCE_FMAX = 307,
331 G_VECREDUCE_FMIN = 308,
332 G_VECREDUCE_FMAXIMUM = 309,
333 G_VECREDUCE_FMINIMUM = 310,
334 G_VECREDUCE_ADD = 311,
335 G_VECREDUCE_MUL = 312,
336 G_VECREDUCE_AND = 313,
337 G_VECREDUCE_OR = 314,
338 G_VECREDUCE_XOR = 315,
339 G_VECREDUCE_SMAX = 316,
340 G_VECREDUCE_SMIN = 317,
341 G_VECREDUCE_UMAX = 318,
342 G_VECREDUCE_UMIN = 319,
345 ADJCALLSTACKDOWN = 322,
346 ADJCALLSTACKUP = 323,
546 INSTRUCTION_LIST_END = 523,
eBPF architecture-related namespace
Definition ebpf/Instruction.hpp:26
OPCODE
Definition ebpf/opcodes.hpp:22
@ LDHSX
Definition ebpf/opcodes.hpp:442
@ MUL_rr_32
Definition ebpf/opcodes.hpp:475
@ SRL_ri_32
Definition ebpf/opcodes.hpp:501
@ DIV_rr_32
Definition ebpf/opcodes.hpp:382
@ XORD
Definition ebpf/opcodes.hpp:538
@ XOR_ri_32
Definition ebpf/opcodes.hpp:541
@ DIV_rr
Definition ebpf/opcodes.hpp:381
@ ADDR_SPACE_CAST
Definition ebpf/opcodes.hpp:358
@ NEG_32
Definition ebpf/opcodes.hpp:476
@ JUGE_rr
Definition ebpf/opcodes.hpp:418
@ LDBSX
Definition ebpf/opcodes.hpp:436
@ LDB32
Definition ebpf/opcodes.hpp:434
@ Select_64_32
Definition ebpf/opcodes.hpp:353
@ SRA_rr
Definition ebpf/opcodes.hpp:498
@ XXORW32
Definition ebpf/opcodes.hpp:545
@ JMPL
Definition ebpf/opcodes.hpp:391
@ SRA_ri_32
Definition ebpf/opcodes.hpp:497
@ XORW32
Definition ebpf/opcodes.hpp:539
@ JUGT_rr_32
Definition ebpf/opcodes.hpp:423
@ LDW32
Definition ebpf/opcodes.hpp:444
@ STDREL
Definition ebpf/opcodes.hpp:509
@ JULT_rr_32
Definition ebpf/opcodes.hpp:431
@ ADD_ri
Definition ebpf/opcodes.hpp:359
@ JMP
Definition ebpf/opcodes.hpp:390
@ LDD
Definition ebpf/opcodes.hpp:437
@ MOVSX_rr_32
Definition ebpf/opcodes.hpp:463
@ SRA_rr_32
Definition ebpf/opcodes.hpp:499
@ JALX
Definition ebpf/opcodes.hpp:384
@ JSLT_rr
Definition ebpf/opcodes.hpp:414
@ JSLE_ri
Definition ebpf/opcodes.hpp:408
@ LD_IND_B
Definition ebpf/opcodes.hpp:450
@ JULT_ri_32
Definition ebpf/opcodes.hpp:429
@ Select_32
Definition ebpf/opcodes.hpp:351
@ JCOND
Definition ebpf/opcodes.hpp:385
@ LDDACQ
Definition ebpf/opcodes.hpp:438
@ MOVSX_rr_8
Definition ebpf/opcodes.hpp:466
@ JEQ_ri_32
Definition ebpf/opcodes.hpp:387
@ MOD_rr_32
Definition ebpf/opcodes.hpp:461
@ JSGE_ri_32
Definition ebpf/opcodes.hpp:401
@ JEQ_ri
Definition ebpf/opcodes.hpp:386
@ BE16
Definition ebpf/opcodes.hpp:367
@ XFORD
Definition ebpf/opcodes.hpp:534
@ Select_Ri_64_32
Definition ebpf/opcodes.hpp:357
@ MOV_rr
Definition ebpf/opcodes.hpp:470
@ JSGT_rr
Definition ebpf/opcodes.hpp:406
@ JEQ_rr_32
Definition ebpf/opcodes.hpp:389
@ JUGE_ri
Definition ebpf/opcodes.hpp:416
@ JULE_ri
Definition ebpf/opcodes.hpp:424
@ XADDW32
Definition ebpf/opcodes.hpp:525
@ JULE_rr_32
Definition ebpf/opcodes.hpp:427
@ SRL_rr_32
Definition ebpf/opcodes.hpp:503
@ SUB_rr_32
Definition ebpf/opcodes.hpp:522
@ Select_Ri_32
Definition ebpf/opcodes.hpp:355
@ JSLE_rr
Definition ebpf/opcodes.hpp:410
@ SMOD_rr_32
Definition ebpf/opcodes.hpp:495
@ LE16
Definition ebpf/opcodes.hpp:455
@ MOD_ri
Definition ebpf/opcodes.hpp:458
@ XADDD
Definition ebpf/opcodes.hpp:523
@ CORE_LD64
Definition ebpf/opcodes.hpp:376
@ XOR_ri
Definition ebpf/opcodes.hpp:540
@ LE64
Definition ebpf/opcodes.hpp:457
@ LDBACQ32
Definition ebpf/opcodes.hpp:435
@ JSET_rr
Definition ebpf/opcodes.hpp:398
@ STD_imm
Definition ebpf/opcodes.hpp:510
@ Select_32_64
Definition ebpf/opcodes.hpp:352
@ CMPXCHGD
Definition ebpf/opcodes.hpp:373
@ MOVSX_rr_32_8
Definition ebpf/opcodes.hpp:465
@ JUGE_ri_32
Definition ebpf/opcodes.hpp:417
@ JSET_rr_32
Definition ebpf/opcodes.hpp:399
@ XANDD
Definition ebpf/opcodes.hpp:526
@ NEG_64
Definition ebpf/opcodes.hpp:477
@ BSWAP64
Definition ebpf/opcodes.hpp:372
@ SMOD_ri
Definition ebpf/opcodes.hpp:492
@ AND_ri_32
Definition ebpf/opcodes.hpp:364
@ XFORW32
Definition ebpf/opcodes.hpp:535
@ MOD_ri_32
Definition ebpf/opcodes.hpp:459
@ SDIV_ri_32
Definition ebpf/opcodes.hpp:485
@ SDIV_ri
Definition ebpf/opcodes.hpp:484
@ LD_IND_H
Definition ebpf/opcodes.hpp:451
@ ADD_rr_32
Definition ebpf/opcodes.hpp:362
@ JSGE_ri
Definition ebpf/opcodes.hpp:400
@ SLL_ri_32
Definition ebpf/opcodes.hpp:489
@ MOD_rr
Definition ebpf/opcodes.hpp:460
@ CORE_SHIFT
Definition ebpf/opcodes.hpp:377
@ XFADDW32
Definition ebpf/opcodes.hpp:531
@ SLL_ri
Definition ebpf/opcodes.hpp:488
@ JNE_ri
Definition ebpf/opcodes.hpp:392
@ MUL_ri_32
Definition ebpf/opcodes.hpp:473
@ XFADDD
Definition ebpf/opcodes.hpp:530
@ AND_ri
Definition ebpf/opcodes.hpp:363
@ JAL
Definition ebpf/opcodes.hpp:383
@ CMPXCHGW32
Definition ebpf/opcodes.hpp:374
@ MOV_ri_32
Definition ebpf/opcodes.hpp:469
@ JNE_ri_32
Definition ebpf/opcodes.hpp:393
@ LDH32
Definition ebpf/opcodes.hpp:440
@ STW32
Definition ebpf/opcodes.hpp:516
@ XADDW
Definition ebpf/opcodes.hpp:524
@ STB_imm
Definition ebpf/opcodes.hpp:507
@ DIV_ri
Definition ebpf/opcodes.hpp:379
@ AND_rr
Definition ebpf/opcodes.hpp:365
@ MOV_rr_32
Definition ebpf/opcodes.hpp:471
@ ADD_ri_32
Definition ebpf/opcodes.hpp:360
@ AND_rr_32
Definition ebpf/opcodes.hpp:366
@ LDIMM64
Definition ebpf/opcodes.hpp:348
@ STW_imm
Definition ebpf/opcodes.hpp:518
@ LD_ABS_W
Definition ebpf/opcodes.hpp:449
@ JSGE_rr
Definition ebpf/opcodes.hpp:402
@ JX
Definition ebpf/opcodes.hpp:432
@ JNE_rr
Definition ebpf/opcodes.hpp:394
@ JUGT_ri_32
Definition ebpf/opcodes.hpp:421
@ LDWSX
Definition ebpf/opcodes.hpp:446
@ XOR_rr
Definition ebpf/opcodes.hpp:542
@ MOVSX_rr_32_16
Definition ebpf/opcodes.hpp:464
@ LDWACQ32
Definition ebpf/opcodes.hpp:445
@ LDB
Definition ebpf/opcodes.hpp:433
@ LDH
Definition ebpf/opcodes.hpp:439
@ STHREL32
Definition ebpf/opcodes.hpp:513
@ XOR_rr_32
Definition ebpf/opcodes.hpp:543
@ XXORD
Definition ebpf/opcodes.hpp:544
@ LD_IND_W
Definition ebpf/opcodes.hpp:452
@ DIV_ri_32
Definition ebpf/opcodes.hpp:380
@ OR_rr_32
Definition ebpf/opcodes.hpp:482
@ Select_Ri
Definition ebpf/opcodes.hpp:354
@ LD_pseudo
Definition ebpf/opcodes.hpp:454
@ SLL_rr_32
Definition ebpf/opcodes.hpp:491
@ SDIV_rr
Definition ebpf/opcodes.hpp:486
@ MOVSX_rr_16
Definition ebpf/opcodes.hpp:462
@ JEQ_rr
Definition ebpf/opcodes.hpp:388
@ SMOD_rr
Definition ebpf/opcodes.hpp:494
@ ADD_rr
Definition ebpf/opcodes.hpp:361
@ JULT_ri
Definition ebpf/opcodes.hpp:428
@ SMOD_ri_32
Definition ebpf/opcodes.hpp:493
@ JSLT_rr_32
Definition ebpf/opcodes.hpp:415
@ JULE_rr
Definition ebpf/opcodes.hpp:426
@ JSGT_rr_32
Definition ebpf/opcodes.hpp:407
@ MOV_ri
Definition ebpf/opcodes.hpp:468
@ XFXORD
Definition ebpf/opcodes.hpp:536
@ JSLE_rr_32
Definition ebpf/opcodes.hpp:411
@ XCHGW32
Definition ebpf/opcodes.hpp:529
@ STH_imm
Definition ebpf/opcodes.hpp:514
@ STH32
Definition ebpf/opcodes.hpp:512
@ OR_rr
Definition ebpf/opcodes.hpp:481
@ STBREL32
Definition ebpf/opcodes.hpp:506
@ LDW
Definition ebpf/opcodes.hpp:443
@ LD_imm64
Definition ebpf/opcodes.hpp:453
@ SUB_rr
Definition ebpf/opcodes.hpp:521
@ STD
Definition ebpf/opcodes.hpp:508
@ XFANDW32
Definition ebpf/opcodes.hpp:533
@ OR_ri
Definition ebpf/opcodes.hpp:479
@ JSET_ri
Definition ebpf/opcodes.hpp:396
@ STW
Definition ebpf/opcodes.hpp:515
@ JUGT_rr
Definition ebpf/opcodes.hpp:422
@ LE32
Definition ebpf/opcodes.hpp:456
@ SRL_rr
Definition ebpf/opcodes.hpp:502
@ STWREL32
Definition ebpf/opcodes.hpp:517
@ MUL_ri
Definition ebpf/opcodes.hpp:472
@ LDHACQ32
Definition ebpf/opcodes.hpp:441
@ JSGE_rr_32
Definition ebpf/opcodes.hpp:403
@ JSGT_ri
Definition ebpf/opcodes.hpp:404
@ Select_Ri_32_64
Definition ebpf/opcodes.hpp:356
@ LD_ABS_H
Definition ebpf/opcodes.hpp:448
@ SDIV_rr_32
Definition ebpf/opcodes.hpp:487
@ MUL_rr
Definition ebpf/opcodes.hpp:474
@ JNE_rr_32
Definition ebpf/opcodes.hpp:395
@ OR_ri_32
Definition ebpf/opcodes.hpp:480
@ JULE_ri_32
Definition ebpf/opcodes.hpp:425
@ JUGE_rr_32
Definition ebpf/opcodes.hpp:419
@ JSLT_ri_32
Definition ebpf/opcodes.hpp:413
@ CORE_ST
Definition ebpf/opcodes.hpp:378
@ STB32
Definition ebpf/opcodes.hpp:505
@ Select
Definition ebpf/opcodes.hpp:350
@ JSLE_ri_32
Definition ebpf/opcodes.hpp:409
@ SUB_ri_32
Definition ebpf/opcodes.hpp:520
@ SUB_ri
Definition ebpf/opcodes.hpp:519
@ STH
Definition ebpf/opcodes.hpp:511
@ XCHGD
Definition ebpf/opcodes.hpp:528
@ SRL_ri
Definition ebpf/opcodes.hpp:500
@ MOV_32_64
Definition ebpf/opcodes.hpp:467
@ JSET_ri_32
Definition ebpf/opcodes.hpp:397
@ STB
Definition ebpf/opcodes.hpp:504
@ CORE_LD32
Definition ebpf/opcodes.hpp:375
@ JSGT_ri_32
Definition ebpf/opcodes.hpp:405
@ XFXORW32
Definition ebpf/opcodes.hpp:537
@ SLL_rr
Definition ebpf/opcodes.hpp:490
@ JSLT_ri
Definition ebpf/opcodes.hpp:412
@ BE32
Definition ebpf/opcodes.hpp:368
@ FI_ri
Definition ebpf/opcodes.hpp:347
@ XFANDD
Definition ebpf/opcodes.hpp:532
@ LD_ABS_B
Definition ebpf/opcodes.hpp:447
@ JUGT_ri
Definition ebpf/opcodes.hpp:420
@ BE64
Definition ebpf/opcodes.hpp:369
@ BSWAP16
Definition ebpf/opcodes.hpp:370
@ JULT_rr
Definition ebpf/opcodes.hpp:430
@ BSWAP32
Definition ebpf/opcodes.hpp:371
@ XANDW32
Definition ebpf/opcodes.hpp:527
@ SRA_ri
Definition ebpf/opcodes.hpp:496