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,
126 G_INDEXED_LOAD = 103,
127 G_INDEXED_SEXTLOAD = 104,
128 G_INDEXED_ZEXTLOAD = 105,
130 G_FPTRUNCSTORE = 107,
131 G_INDEXED_STORE = 108,
132 G_ATOMIC_CMPXCHG_WITH_SUCCESS = 109,
133 G_ATOMIC_CMPXCHG = 110,
134 G_ATOMICRMW_XCHG = 111,
135 G_ATOMICRMW_ADD = 112,
136 G_ATOMICRMW_SUB = 113,
137 G_ATOMICRMW_AND = 114,
138 G_ATOMICRMW_NAND = 115,
139 G_ATOMICRMW_OR = 116,
140 G_ATOMICRMW_XOR = 117,
141 G_ATOMICRMW_MAX = 118,
142 G_ATOMICRMW_MIN = 119,
143 G_ATOMICRMW_UMAX = 120,
144 G_ATOMICRMW_UMIN = 121,
145 G_ATOMICRMW_FADD = 122,
146 G_ATOMICRMW_FSUB = 123,
147 G_ATOMICRMW_FMAX = 124,
148 G_ATOMICRMW_FMIN = 125,
149 G_ATOMICRMW_FMAXIMUM = 126,
150 G_ATOMICRMW_FMINIMUM = 127,
151 G_ATOMICRMW_FMAXIMUMNUM = 128,
152 G_ATOMICRMW_FMINIMUMNUM = 129,
153 G_ATOMICRMW_UINC_WRAP = 130,
154 G_ATOMICRMW_UDEC_WRAP = 131,
155 G_ATOMICRMW_USUB_COND = 132,
156 G_ATOMICRMW_USUB_SAT = 133,
161 G_INVOKE_REGION_START = 138,
163 G_INTRINSIC_W_SIDE_EFFECTS = 140,
164 G_INTRINSIC_CONVERGENT = 141,
165 G_INTRINSIC_CONVERGENT_W_SIDE_EFFECTS = 142,
168 G_TRUNC_SSAT_S = 145,
169 G_TRUNC_SSAT_U = 146,
170 G_TRUNC_USAT_U = 147,
246 G_FCANONICALIZE = 223,
249 G_FMINNUM_IEEE = 226,
250 G_FMAXNUM_IEEE = 227,
260 G_RESET_FPMODE = 237,
261 G_GET_ROUNDING = 238,
262 G_SET_ROUNDING = 239,
275 G_INSERT_SUBVECTOR = 252,
276 G_EXTRACT_SUBVECTOR = 253,
277 G_INSERT_VECTOR_ELT = 254,
278 G_EXTRACT_VECTOR_ELT = 255,
279 G_SHUFFLE_VECTOR = 256,
280 G_SPLAT_VECTOR = 257,
282 G_VECTOR_COMPRESS = 259,
284 G_CTTZ_ZERO_POISON = 261,
286 G_CTLZ_ZERO_POISON = 263,
308 G_ADDRSPACE_CAST = 285,
311 G_DYN_STACKALLOC = 288,
313 G_STACKRESTORE = 290,
320 G_STRICT_FSQRT = 297,
321 G_STRICT_FLDEXP = 298,
323 G_STRICT_FCMPS = 300,
324 G_READ_REGISTER = 301,
325 G_WRITE_REGISTER = 302,
327 G_MEMCPY_INLINE = 304,
331 G_MEMSET_INLINE = 308,
335 G_VECREDUCE_SEQ_FADD = 312,
336 G_VECREDUCE_SEQ_FMUL = 313,
337 G_VECREDUCE_FADD = 314,
338 G_VECREDUCE_FMUL = 315,
339 G_VECREDUCE_FMAX = 316,
340 G_VECREDUCE_FMIN = 317,
341 G_VECREDUCE_FMAXIMUM = 318,
342 G_VECREDUCE_FMINIMUM = 319,
343 G_VECREDUCE_ADD = 320,
344 G_VECREDUCE_MUL = 321,
345 G_VECREDUCE_AND = 322,
346 G_VECREDUCE_OR = 323,
347 G_VECREDUCE_XOR = 324,
348 G_VECREDUCE_SMAX = 325,
349 G_VECREDUCE_SMIN = 326,
350 G_VECREDUCE_UMAX = 327,
351 G_VECREDUCE_UMIN = 328,
354 ADJCALLSTACKDOWN = 331,
355 ADJCALLSTACKUP = 332,
558 INSTRUCTION_LIST_END = 535,
eBPF architecture-related namespace
Definition ebpf/Instruction.hpp:26
OPCODE
Definition ebpf/opcodes.hpp:22
@ LDHSX
Definition ebpf/opcodes.hpp:454
@ MUL_rr_32
Definition ebpf/opcodes.hpp:487
@ SRL_ri_32
Definition ebpf/opcodes.hpp:513
@ DIV_rr_32
Definition ebpf/opcodes.hpp:394
@ XORD
Definition ebpf/opcodes.hpp:550
@ XOR_ri_32
Definition ebpf/opcodes.hpp:553
@ DIV_rr
Definition ebpf/opcodes.hpp:393
@ ADDR_SPACE_CAST
Definition ebpf/opcodes.hpp:370
@ NEG_32
Definition ebpf/opcodes.hpp:488
@ JUGE_rr
Definition ebpf/opcodes.hpp:430
@ LDBSX
Definition ebpf/opcodes.hpp:448
@ LDB32
Definition ebpf/opcodes.hpp:446
@ Select_64_32
Definition ebpf/opcodes.hpp:365
@ SRA_rr
Definition ebpf/opcodes.hpp:510
@ XXORW32
Definition ebpf/opcodes.hpp:557
@ JMPL
Definition ebpf/opcodes.hpp:403
@ SRA_ri_32
Definition ebpf/opcodes.hpp:509
@ XORW32
Definition ebpf/opcodes.hpp:551
@ JUGT_rr_32
Definition ebpf/opcodes.hpp:435
@ LDW32
Definition ebpf/opcodes.hpp:456
@ STDREL
Definition ebpf/opcodes.hpp:521
@ JULT_rr_32
Definition ebpf/opcodes.hpp:443
@ ADD_ri
Definition ebpf/opcodes.hpp:371
@ JMP
Definition ebpf/opcodes.hpp:402
@ LDD
Definition ebpf/opcodes.hpp:449
@ MOVSX_rr_32
Definition ebpf/opcodes.hpp:475
@ SRA_rr_32
Definition ebpf/opcodes.hpp:511
@ JALX
Definition ebpf/opcodes.hpp:396
@ JSLT_rr
Definition ebpf/opcodes.hpp:426
@ JSLE_ri
Definition ebpf/opcodes.hpp:420
@ LD_IND_B
Definition ebpf/opcodes.hpp:462
@ JULT_ri_32
Definition ebpf/opcodes.hpp:441
@ Select_32
Definition ebpf/opcodes.hpp:363
@ JCOND
Definition ebpf/opcodes.hpp:397
@ LDDACQ
Definition ebpf/opcodes.hpp:450
@ MOVSX_rr_8
Definition ebpf/opcodes.hpp:478
@ JEQ_ri_32
Definition ebpf/opcodes.hpp:399
@ MOD_rr_32
Definition ebpf/opcodes.hpp:473
@ JSGE_ri_32
Definition ebpf/opcodes.hpp:413
@ JEQ_ri
Definition ebpf/opcodes.hpp:398
@ BE16
Definition ebpf/opcodes.hpp:379
@ XFORD
Definition ebpf/opcodes.hpp:546
@ Select_Ri_64_32
Definition ebpf/opcodes.hpp:369
@ MOV_rr
Definition ebpf/opcodes.hpp:482
@ JSGT_rr
Definition ebpf/opcodes.hpp:418
@ JEQ_rr_32
Definition ebpf/opcodes.hpp:401
@ JUGE_ri
Definition ebpf/opcodes.hpp:428
@ JULE_ri
Definition ebpf/opcodes.hpp:436
@ XADDW32
Definition ebpf/opcodes.hpp:537
@ JULE_rr_32
Definition ebpf/opcodes.hpp:439
@ SRL_rr_32
Definition ebpf/opcodes.hpp:515
@ SUB_rr_32
Definition ebpf/opcodes.hpp:534
@ Select_Ri_32
Definition ebpf/opcodes.hpp:367
@ JSLE_rr
Definition ebpf/opcodes.hpp:422
@ SMOD_rr_32
Definition ebpf/opcodes.hpp:507
@ LE16
Definition ebpf/opcodes.hpp:467
@ MOD_ri
Definition ebpf/opcodes.hpp:470
@ XADDD
Definition ebpf/opcodes.hpp:535
@ CORE_LD64
Definition ebpf/opcodes.hpp:388
@ XOR_ri
Definition ebpf/opcodes.hpp:552
@ LE64
Definition ebpf/opcodes.hpp:469
@ LDBACQ32
Definition ebpf/opcodes.hpp:447
@ JSET_rr
Definition ebpf/opcodes.hpp:410
@ STORE_STACK_ARG_IMM_PSEUDO
Definition ebpf/opcodes.hpp:360
@ STD_imm
Definition ebpf/opcodes.hpp:522
@ Select_32_64
Definition ebpf/opcodes.hpp:364
@ CMPXCHGD
Definition ebpf/opcodes.hpp:385
@ MOVSX_rr_32_8
Definition ebpf/opcodes.hpp:477
@ JUGE_ri_32
Definition ebpf/opcodes.hpp:429
@ JSET_rr_32
Definition ebpf/opcodes.hpp:411
@ XANDD
Definition ebpf/opcodes.hpp:538
@ NEG_64
Definition ebpf/opcodes.hpp:489
@ BSWAP64
Definition ebpf/opcodes.hpp:384
@ SMOD_ri
Definition ebpf/opcodes.hpp:504
@ AND_ri_32
Definition ebpf/opcodes.hpp:376
@ XFORW32
Definition ebpf/opcodes.hpp:547
@ MOD_ri_32
Definition ebpf/opcodes.hpp:471
@ SDIV_ri_32
Definition ebpf/opcodes.hpp:497
@ SDIV_ri
Definition ebpf/opcodes.hpp:496
@ LD_IND_H
Definition ebpf/opcodes.hpp:463
@ ADD_rr_32
Definition ebpf/opcodes.hpp:374
@ JSGE_ri
Definition ebpf/opcodes.hpp:412
@ SLL_ri_32
Definition ebpf/opcodes.hpp:501
@ MOD_rr
Definition ebpf/opcodes.hpp:472
@ CORE_SHIFT
Definition ebpf/opcodes.hpp:389
@ XFADDW32
Definition ebpf/opcodes.hpp:543
@ SLL_ri
Definition ebpf/opcodes.hpp:500
@ JNE_ri
Definition ebpf/opcodes.hpp:404
@ MUL_ri_32
Definition ebpf/opcodes.hpp:485
@ XFADDD
Definition ebpf/opcodes.hpp:542
@ AND_ri
Definition ebpf/opcodes.hpp:375
@ JAL
Definition ebpf/opcodes.hpp:395
@ CMPXCHGW32
Definition ebpf/opcodes.hpp:386
@ MOV_ri_32
Definition ebpf/opcodes.hpp:481
@ JNE_ri_32
Definition ebpf/opcodes.hpp:405
@ LDH32
Definition ebpf/opcodes.hpp:452
@ STW32
Definition ebpf/opcodes.hpp:528
@ XADDW
Definition ebpf/opcodes.hpp:536
@ STB_imm
Definition ebpf/opcodes.hpp:519
@ DIV_ri
Definition ebpf/opcodes.hpp:391
@ AND_rr
Definition ebpf/opcodes.hpp:377
@ MOV_rr_32
Definition ebpf/opcodes.hpp:483
@ ADD_ri_32
Definition ebpf/opcodes.hpp:372
@ AND_rr_32
Definition ebpf/opcodes.hpp:378
@ LDIMM64
Definition ebpf/opcodes.hpp:357
@ STW_imm
Definition ebpf/opcodes.hpp:530
@ LD_ABS_W
Definition ebpf/opcodes.hpp:461
@ JSGE_rr
Definition ebpf/opcodes.hpp:414
@ JX
Definition ebpf/opcodes.hpp:444
@ JNE_rr
Definition ebpf/opcodes.hpp:406
@ JUGT_ri_32
Definition ebpf/opcodes.hpp:433
@ LDWSX
Definition ebpf/opcodes.hpp:458
@ XOR_rr
Definition ebpf/opcodes.hpp:554
@ MOVSX_rr_32_16
Definition ebpf/opcodes.hpp:476
@ LDWACQ32
Definition ebpf/opcodes.hpp:457
@ LDB
Definition ebpf/opcodes.hpp:445
@ LDH
Definition ebpf/opcodes.hpp:451
@ STHREL32
Definition ebpf/opcodes.hpp:525
@ XOR_rr_32
Definition ebpf/opcodes.hpp:555
@ XXORD
Definition ebpf/opcodes.hpp:556
@ LD_IND_W
Definition ebpf/opcodes.hpp:464
@ DIV_ri_32
Definition ebpf/opcodes.hpp:392
@ OR_rr_32
Definition ebpf/opcodes.hpp:494
@ Select_Ri
Definition ebpf/opcodes.hpp:366
@ LD_pseudo
Definition ebpf/opcodes.hpp:466
@ SLL_rr_32
Definition ebpf/opcodes.hpp:503
@ SDIV_rr
Definition ebpf/opcodes.hpp:498
@ MOVSX_rr_16
Definition ebpf/opcodes.hpp:474
@ JEQ_rr
Definition ebpf/opcodes.hpp:400
@ SMOD_rr
Definition ebpf/opcodes.hpp:506
@ ADD_rr
Definition ebpf/opcodes.hpp:373
@ JULT_ri
Definition ebpf/opcodes.hpp:440
@ SMOD_ri_32
Definition ebpf/opcodes.hpp:505
@ JSLT_rr_32
Definition ebpf/opcodes.hpp:427
@ JULE_rr
Definition ebpf/opcodes.hpp:438
@ STORE_STACK_ARG_PSEUDO
Definition ebpf/opcodes.hpp:361
@ JSGT_rr_32
Definition ebpf/opcodes.hpp:419
@ MOV_ri
Definition ebpf/opcodes.hpp:480
@ XFXORD
Definition ebpf/opcodes.hpp:548
@ JSLE_rr_32
Definition ebpf/opcodes.hpp:423
@ XCHGW32
Definition ebpf/opcodes.hpp:541
@ STH_imm
Definition ebpf/opcodes.hpp:526
@ STH32
Definition ebpf/opcodes.hpp:524
@ OR_rr
Definition ebpf/opcodes.hpp:493
@ STBREL32
Definition ebpf/opcodes.hpp:518
@ LDW
Definition ebpf/opcodes.hpp:455
@ LD_imm64
Definition ebpf/opcodes.hpp:465
@ SUB_rr
Definition ebpf/opcodes.hpp:533
@ STD
Definition ebpf/opcodes.hpp:520
@ XFANDW32
Definition ebpf/opcodes.hpp:545
@ OR_ri
Definition ebpf/opcodes.hpp:491
@ JSET_ri
Definition ebpf/opcodes.hpp:408
@ STW
Definition ebpf/opcodes.hpp:527
@ JUGT_rr
Definition ebpf/opcodes.hpp:434
@ LE32
Definition ebpf/opcodes.hpp:468
@ SRL_rr
Definition ebpf/opcodes.hpp:514
@ STWREL32
Definition ebpf/opcodes.hpp:529
@ MUL_ri
Definition ebpf/opcodes.hpp:484
@ LDHACQ32
Definition ebpf/opcodes.hpp:453
@ JSGE_rr_32
Definition ebpf/opcodes.hpp:415
@ JSGT_ri
Definition ebpf/opcodes.hpp:416
@ Select_Ri_32_64
Definition ebpf/opcodes.hpp:368
@ LD_ABS_H
Definition ebpf/opcodes.hpp:460
@ SDIV_rr_32
Definition ebpf/opcodes.hpp:499
@ LOAD_STACK_ARG_PSEUDO
Definition ebpf/opcodes.hpp:358
@ MUL_rr
Definition ebpf/opcodes.hpp:486
@ JNE_rr_32
Definition ebpf/opcodes.hpp:407
@ OR_ri_32
Definition ebpf/opcodes.hpp:492
@ JULE_ri_32
Definition ebpf/opcodes.hpp:437
@ JUGE_rr_32
Definition ebpf/opcodes.hpp:431
@ JSLT_ri_32
Definition ebpf/opcodes.hpp:425
@ CORE_ST
Definition ebpf/opcodes.hpp:390
@ STB32
Definition ebpf/opcodes.hpp:517
@ Select
Definition ebpf/opcodes.hpp:362
@ JSLE_ri_32
Definition ebpf/opcodes.hpp:421
@ SUB_ri_32
Definition ebpf/opcodes.hpp:532
@ SUB_ri
Definition ebpf/opcodes.hpp:531
@ STH
Definition ebpf/opcodes.hpp:523
@ XCHGD
Definition ebpf/opcodes.hpp:540
@ SRL_ri
Definition ebpf/opcodes.hpp:512
@ MOV_32_64
Definition ebpf/opcodes.hpp:479
@ JSET_ri_32
Definition ebpf/opcodes.hpp:409
@ STB
Definition ebpf/opcodes.hpp:516
@ CORE_LD32
Definition ebpf/opcodes.hpp:387
@ JSGT_ri_32
Definition ebpf/opcodes.hpp:417
@ XFXORW32
Definition ebpf/opcodes.hpp:549
@ SLL_rr
Definition ebpf/opcodes.hpp:502
@ JSLT_ri
Definition ebpf/opcodes.hpp:424
@ BE32
Definition ebpf/opcodes.hpp:380
@ FI_ri
Definition ebpf/opcodes.hpp:356
@ XFANDD
Definition ebpf/opcodes.hpp:544
@ LD_ABS_B
Definition ebpf/opcodes.hpp:459
@ JUGT_ri
Definition ebpf/opcodes.hpp:432
@ BE64
Definition ebpf/opcodes.hpp:381
@ BSWAP16
Definition ebpf/opcodes.hpp:382
@ JULT_rr
Definition ebpf/opcodes.hpp:442
@ BSWAP32
Definition ebpf/opcodes.hpp:383
@ XANDW32
Definition ebpf/opcodes.hpp:539
@ SRA_ri
Definition ebpf/opcodes.hpp:508