1251881Speter/* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */ 2251881Speter/* Instruction opcode header for bpf. 3251881Speter 4251881SpeterTHIS FILE IS MACHINE GENERATED WITH CGEN. 5251881Speter 6251881SpeterCopyright (C) 1996-2020 Free Software Foundation, Inc. 7251881Speter 8251881SpeterThis file is part of the GNU Binutils and/or GDB, the GNU debugger. 9251881Speter 10251881Speter This file is free software; you can redistribute it and/or modify 11251881Speter it under the terms of the GNU General Public License as published by 12251881Speter the Free Software Foundation; either version 3, or (at your option) 13251881Speter any later version. 14251881Speter 15251881Speter It is distributed in the hope that it will be useful, but WITHOUT 16251881Speter ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 17251881Speter or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 18251881Speter License for more details. 19251881Speter 20251881Speter You should have received a copy of the GNU General Public License along 21251881Speter with this program; if not, write to the Free Software Foundation, Inc., 22251881Speter 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 23251881Speter 24251881Speter*/ 25251881Speter 26251881Speter#ifndef BPF_OPC_H 27251881Speter#define BPF_OPC_H 28251881Speter 29251881Speter#ifdef __cplusplus 30251881Speterextern "C" { 31251881Speter#endif 32251881Speter 33251881Speter/* -- opc.h */ 34251881Speter 35251881Speter#undef CGEN_DIS_HASH_SIZE 36251881Speter#define CGEN_DIS_HASH_SIZE 1 37251881Speter 38251881Speter#undef CGEN_DIS_HASH 39251881Speter#define CGEN_DIS_HASH(buffer, value) 0 40251881Speter 41251881Speter/* Allows reason codes to be output when assembler errors occur. */ 42251881Speter#define CGEN_VERBOSE_ASSEMBLER_ERRORS 43251881Speter 44251881Speter#define CGEN_VALIDATE_INSN_SUPPORTED 45251881Speterextern int bpf_cgen_insn_supported (CGEN_CPU_DESC, const CGEN_INSN *); 46251881Speter 47251881Speter 48251881Speter/* -- opc.c */ 49251881Speter/* Enum declaration for bpf instruction types. */ 50262253Spetertypedef enum cgen_insn_type { 51269847Speter BPF_INSN_INVALID, BPF_INSN_ADDILE, BPF_INSN_ADDRLE, BPF_INSN_ADD32ILE 52251881Speter , BPF_INSN_ADD32RLE, BPF_INSN_SUBILE, BPF_INSN_SUBRLE, BPF_INSN_SUB32ILE 53251881Speter , BPF_INSN_SUB32RLE, BPF_INSN_MULILE, BPF_INSN_MULRLE, BPF_INSN_MUL32ILE 54251881Speter , BPF_INSN_MUL32RLE, BPF_INSN_DIVILE, BPF_INSN_DIVRLE, BPF_INSN_DIV32ILE 55251881Speter , BPF_INSN_DIV32RLE, BPF_INSN_ORILE, BPF_INSN_ORRLE, BPF_INSN_OR32ILE 56251881Speter , BPF_INSN_OR32RLE, BPF_INSN_ANDILE, BPF_INSN_ANDRLE, BPF_INSN_AND32ILE 57251881Speter , BPF_INSN_AND32RLE, BPF_INSN_LSHILE, BPF_INSN_LSHRLE, BPF_INSN_LSH32ILE 58251881Speter , BPF_INSN_LSH32RLE, BPF_INSN_RSHILE, BPF_INSN_RSHRLE, BPF_INSN_RSH32ILE 59251881Speter , BPF_INSN_RSH32RLE, BPF_INSN_MODILE, BPF_INSN_MODRLE, BPF_INSN_MOD32ILE 60251881Speter , BPF_INSN_MOD32RLE, BPF_INSN_XORILE, BPF_INSN_XORRLE, BPF_INSN_XOR32ILE 61251881Speter , BPF_INSN_XOR32RLE, BPF_INSN_ARSHILE, BPF_INSN_ARSHRLE, BPF_INSN_ARSH32ILE 62251881Speter , BPF_INSN_ARSH32RLE, BPF_INSN_NEGLE, BPF_INSN_NEG32LE, BPF_INSN_MOVILE 63251881Speter , BPF_INSN_MOVRLE, BPF_INSN_MOV32ILE, BPF_INSN_MOV32RLE, BPF_INSN_ADDIBE 64251881Speter , BPF_INSN_ADDRBE, BPF_INSN_ADD32IBE, BPF_INSN_ADD32RBE, BPF_INSN_SUBIBE 65251881Speter , BPF_INSN_SUBRBE, BPF_INSN_SUB32IBE, BPF_INSN_SUB32RBE, BPF_INSN_MULIBE 66251881Speter , BPF_INSN_MULRBE, BPF_INSN_MUL32IBE, BPF_INSN_MUL32RBE, BPF_INSN_DIVIBE 67251881Speter , BPF_INSN_DIVRBE, BPF_INSN_DIV32IBE, BPF_INSN_DIV32RBE, BPF_INSN_ORIBE 68251881Speter , BPF_INSN_ORRBE, BPF_INSN_OR32IBE, BPF_INSN_OR32RBE, BPF_INSN_ANDIBE 69251881Speter , BPF_INSN_ANDRBE, BPF_INSN_AND32IBE, BPF_INSN_AND32RBE, BPF_INSN_LSHIBE 70251881Speter , BPF_INSN_LSHRBE, BPF_INSN_LSH32IBE, BPF_INSN_LSH32RBE, BPF_INSN_RSHIBE 71251881Speter , BPF_INSN_RSHRBE, BPF_INSN_RSH32IBE, BPF_INSN_RSH32RBE, BPF_INSN_MODIBE 72251881Speter , BPF_INSN_MODRBE, BPF_INSN_MOD32IBE, BPF_INSN_MOD32RBE, BPF_INSN_XORIBE 73251881Speter , BPF_INSN_XORRBE, BPF_INSN_XOR32IBE, BPF_INSN_XOR32RBE, BPF_INSN_ARSHIBE 74251881Speter , BPF_INSN_ARSHRBE, BPF_INSN_ARSH32IBE, BPF_INSN_ARSH32RBE, BPF_INSN_NEGBE 75251881Speter , BPF_INSN_NEG32BE, BPF_INSN_MOVIBE, BPF_INSN_MOVRBE, BPF_INSN_MOV32IBE 76251881Speter , BPF_INSN_MOV32RBE, BPF_INSN_ENDLELE, BPF_INSN_ENDBELE, BPF_INSN_ENDLEBE 77251881Speter , BPF_INSN_ENDBEBE, BPF_INSN_LDDWLE, BPF_INSN_LDDWBE, BPF_INSN_LDABSW 78251881Speter , BPF_INSN_LDABSH, BPF_INSN_LDABSB, BPF_INSN_LDABSDW, BPF_INSN_LDINDWLE 79251881Speter , BPF_INSN_LDINDHLE, BPF_INSN_LDINDBLE, BPF_INSN_LDINDDWLE, BPF_INSN_LDINDWBE 80251881Speter , BPF_INSN_LDINDHBE, BPF_INSN_LDINDBBE, BPF_INSN_LDINDDWBE, BPF_INSN_LDXWLE 81251881Speter , BPF_INSN_LDXHLE, BPF_INSN_LDXBLE, BPF_INSN_LDXDWLE, BPF_INSN_STXWLE 82251881Speter , BPF_INSN_STXHLE, BPF_INSN_STXBLE, BPF_INSN_STXDWLE, BPF_INSN_LDXWBE 83251881Speter , BPF_INSN_LDXHBE, BPF_INSN_LDXBBE, BPF_INSN_LDXDWBE, BPF_INSN_STXWBE 84251881Speter , BPF_INSN_STXHBE, BPF_INSN_STXBBE, BPF_INSN_STXDWBE, BPF_INSN_STBLE 85251881Speter , BPF_INSN_STHLE, BPF_INSN_STWLE, BPF_INSN_STDWLE, BPF_INSN_STBBE 86251881Speter , BPF_INSN_STHBE, BPF_INSN_STWBE, BPF_INSN_STDWBE, BPF_INSN_JEQILE 87251881Speter , BPF_INSN_JEQRLE, BPF_INSN_JEQ32ILE, BPF_INSN_JEQ32RLE, BPF_INSN_JGTILE 88251881Speter , BPF_INSN_JGTRLE, BPF_INSN_JGT32ILE, BPF_INSN_JGT32RLE, BPF_INSN_JGEILE 89251881Speter , BPF_INSN_JGERLE, BPF_INSN_JGE32ILE, BPF_INSN_JGE32RLE, BPF_INSN_JLTILE 90251881Speter , BPF_INSN_JLTRLE, BPF_INSN_JLT32ILE, BPF_INSN_JLT32RLE, BPF_INSN_JLEILE 91251881Speter , BPF_INSN_JLERLE, BPF_INSN_JLE32ILE, BPF_INSN_JLE32RLE, BPF_INSN_JSETILE 92251881Speter , BPF_INSN_JSETRLE, BPF_INSN_JSET32ILE, BPF_INSN_JSET32RLE, BPF_INSN_JNEILE 93251881Speter , BPF_INSN_JNERLE, BPF_INSN_JNE32ILE, BPF_INSN_JNE32RLE, BPF_INSN_JSGTILE 94251881Speter , BPF_INSN_JSGTRLE, BPF_INSN_JSGT32ILE, BPF_INSN_JSGT32RLE, BPF_INSN_JSGEILE 95251881Speter , BPF_INSN_JSGERLE, BPF_INSN_JSGE32ILE, BPF_INSN_JSGE32RLE, BPF_INSN_JSLTILE 96251881Speter , BPF_INSN_JSLTRLE, BPF_INSN_JSLT32ILE, BPF_INSN_JSLT32RLE, BPF_INSN_JSLEILE 97251881Speter , BPF_INSN_JSLERLE, BPF_INSN_JSLE32ILE, BPF_INSN_JSLE32RLE, BPF_INSN_JEQIBE 98251881Speter , BPF_INSN_JEQRBE, BPF_INSN_JEQ32IBE, BPF_INSN_JEQ32RBE, BPF_INSN_JGTIBE 99251881Speter , BPF_INSN_JGTRBE, BPF_INSN_JGT32IBE, BPF_INSN_JGT32RBE, BPF_INSN_JGEIBE 100251881Speter , BPF_INSN_JGERBE, BPF_INSN_JGE32IBE, BPF_INSN_JGE32RBE, BPF_INSN_JLTIBE 101251881Speter , BPF_INSN_JLTRBE, BPF_INSN_JLT32IBE, BPF_INSN_JLT32RBE, BPF_INSN_JLEIBE 102251881Speter , BPF_INSN_JLERBE, BPF_INSN_JLE32IBE, BPF_INSN_JLE32RBE, BPF_INSN_JSETIBE 103251881Speter , BPF_INSN_JSETRBE, BPF_INSN_JSET32IBE, BPF_INSN_JSET32RBE, BPF_INSN_JNEIBE 104251881Speter , BPF_INSN_JNERBE, BPF_INSN_JNE32IBE, BPF_INSN_JNE32RBE, BPF_INSN_JSGTIBE 105251881Speter , BPF_INSN_JSGTRBE, BPF_INSN_JSGT32IBE, BPF_INSN_JSGT32RBE, BPF_INSN_JSGEIBE 106251881Speter , BPF_INSN_JSGERBE, BPF_INSN_JSGE32IBE, BPF_INSN_JSGE32RBE, BPF_INSN_JSLTIBE 107251881Speter , BPF_INSN_JSLTRBE, BPF_INSN_JSLT32IBE, BPF_INSN_JSLT32RBE, BPF_INSN_JSLEIBE 108251881Speter , BPF_INSN_JSLERBE, BPF_INSN_JSLE32IBE, BPF_INSN_JSLE32RBE, BPF_INSN_CALLLE 109251881Speter , BPF_INSN_CALLBE, BPF_INSN_CALLRLE, BPF_INSN_CALLRBE, BPF_INSN_JA 110251881Speter , BPF_INSN_EXIT, BPF_INSN_XADDDWLE, BPF_INSN_XADDWLE, BPF_INSN_XADDDWBE 111251881Speter , BPF_INSN_XADDWBE, BPF_INSN_BRKPT 112251881Speter} CGEN_INSN_TYPE; 113251881Speter 114251881Speter/* Index of `invalid' insn place holder. */ 115251881Speter#define CGEN_INSN_INVALID BPF_INSN_INVALID 116251881Speter 117251881Speter/* Total number of insns in table. */ 118251881Speter#define MAX_INSNS ((int) BPF_INSN_BRKPT + 1) 119251881Speter 120251881Speter/* This struct records data prior to insertion or after extraction. */ 121251881Speterstruct cgen_fields 122251881Speter{ 123251881Speter int length; 124251881Speter long f_nil; 125251881Speter long f_anyof; 126251881Speter long f_op_code; 127251881Speter long f_op_src; 128251881Speter long f_op_class; 129251881Speter long f_op_mode; 130251881Speter long f_op_size; 131251881Speter long f_dstle; 132251881Speter long f_srcle; 133251881Speter long f_dstbe; 134251881Speter long f_srcbe; 135251881Speter long f_regs; 136251881Speter long f_offset16; 137251881Speter long f_imm32; 138251881Speter long f_imm64_a; 139251881Speter long f_imm64_b; 140251881Speter long f_imm64_c; 141251881Speter int64_t f_imm64; 142251881Speter}; 143251881Speter 144251881Speter#define CGEN_INIT_PARSE(od) \ 145251881Speter{\ 146251881Speter} 147251881Speter#define CGEN_INIT_INSERT(od) \ 148251881Speter{\ 149251881Speter} 150251881Speter#define CGEN_INIT_EXTRACT(od) \ 151251881Speter{\ 152251881Speter} 153251881Speter#define CGEN_INIT_PRINT(od) \ 154251881Speter{\ 155251881Speter} 156251881Speter 157251881Speter 158251881Speter #ifdef __cplusplus 159251881Speter } 160251881Speter #endif 161251881Speter 162251881Speter#endif /* BPF_OPC_H */ 163251881Speter