LCOV - code coverage report
Current view: top level - build-llvm/lib/Target/BPF - BPFGenAsmWriter.inc (source / functions) Hit Total Coverage
Test: llvm-toolchain.info Lines: 186 210 88.6 %
Date: 2018-10-20 13:21:21 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
       2             : |*                                                                            *|
       3             : |* Assembly Writer Source Fragment                                            *|
       4             : |*                                                                            *|
       5             : |* Automatically generated file, do not edit!                                 *|
       6             : |*                                                                            *|
       7             : \*===----------------------------------------------------------------------===*/
       8             : 
       9             : /// printInstruction - This method is automatically generated by tablegen
      10             : /// from the instruction set description.
      11        1907 : void BPFInstPrinter::printInstruction(const MCInst *MI, raw_ostream &O) {
      12             :   static const char AsmStrs[] = {
      13             :   /* 0 */ 'l', 'e', 'a', 9, 0,
      14             :   /* 5 */ 'l', 'd', '_', 'p', 's', 'e', 'u', 'd', 'o', 9, 0,
      15             :   /* 16 */ 'n', 'o', 'p', 9, 0,
      16             :   /* 21 */ '#', 'm', 'e', 'm', 'c', 'p', 'y', 32, 'd', 's', 't', ':', 32, 0,
      17             :   /* 35 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 32, 0,
      18             :   /* 54 */ '#', 32, 'S', 'e', 'l', 'e', 'c', 't', 32, 'P', 'S', 'E', 'U', 'D', 'O', 32, 0,
      19             :   /* 71 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 32, 0,
      20             :   /* 88 */ 'i', 'f', 32, 0,
      21             :   /* 92 */ 'c', 'a', 'l', 'l', 32, 0,
      22             :   /* 98 */ 'g', 'o', 't', 'o', 32, 0,
      23             :   /* 104 */ 'c', 'a', 'l', 'l', 'x', 32, 0,
      24             :   /* 111 */ 'l', 'o', 'c', 'k', 32, '*', '(', 'u', '3', '2', 32, '*', ')', '(', 0,
      25             :   /* 126 */ 'l', 'o', 'c', 'k', 32, '*', '(', 'u', '6', '4', 32, '*', ')', '(', 0,
      26             :   /* 141 */ '*', '(', 'u', '1', '6', 32, '*', ')', '(', 0,
      27             :   /* 151 */ '*', '(', 'u', '8', 32, '*', ')', '(', 0,
      28             :   /* 160 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
      29             :   /* 191 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
      30             :   /* 215 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
      31             :   /* 240 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
      32             :   /* 263 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
      33             :   /* 286 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
      34             :   /* 308 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
      35             :   /* 321 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
      36             :   /* 328 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
      37             :   /* 338 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
      38             :   /* 348 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
      39             :   /* 363 */ 'r', '0', 32, '=', 32, '*', '(', 'u', '3', '2', 32, '*', ')', 's', 'k', 'b', '[', 0,
      40             :   /* 381 */ 'r', '0', 32, '=', 32, '*', '(', 'u', '1', '6', 32, '*', ')', 's', 'k', 'b', '[', 0,
      41             :   /* 399 */ 'r', '0', 32, '=', 32, '*', '(', 'u', '8', 32, '*', ')', 's', 'k', 'b', '[', 0,
      42             :   /* 416 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
      43             :   /* 430 */ 'e', 'x', 'i', 't', 0,
      44             :   };
      45             : 
      46             :   static const uint16_t OpInfo0[] = {
      47             :     0U, // PHI
      48             :     0U, // INLINEASM
      49             :     0U, // CFI_INSTRUCTION
      50             :     0U, // EH_LABEL
      51             :     0U, // GC_LABEL
      52             :     0U, // ANNOTATION_LABEL
      53             :     0U, // KILL
      54             :     0U, // EXTRACT_SUBREG
      55             :     0U, // INSERT_SUBREG
      56             :     0U, // IMPLICIT_DEF
      57             :     0U, // SUBREG_TO_REG
      58             :     0U, // COPY_TO_REGCLASS
      59             :     329U,       // DBG_VALUE
      60             :     339U,       // DBG_LABEL
      61             :     0U, // REG_SEQUENCE
      62             :     0U, // COPY
      63             :     322U,       // BUNDLE
      64             :     349U,       // LIFETIME_START
      65             :     309U,       // LIFETIME_END
      66             :     0U, // STACKMAP
      67             :     417U,       // FENTRY_CALL
      68             :     0U, // PATCHPOINT
      69             :     0U, // LOAD_STACK_GUARD
      70             :     0U, // STATEPOINT
      71             :     0U, // LOCAL_ESCAPE
      72             :     0U, // FAULTING_OP
      73             :     0U, // PATCHABLE_OP
      74             :     241U,       // PATCHABLE_FUNCTION_ENTER
      75             :     161U,       // PATCHABLE_RET
      76             :     287U,       // PATCHABLE_FUNCTION_EXIT
      77             :     264U,       // PATCHABLE_TAIL_CALL
      78             :     216U,       // PATCHABLE_EVENT_CALL
      79             :     192U,       // PATCHABLE_TYPED_EVENT_CALL
      80             :     0U, // ICALL_BRANCH_FUNNEL
      81             :     0U, // G_ADD
      82             :     0U, // G_SUB
      83             :     0U, // G_MUL
      84             :     0U, // G_SDIV
      85             :     0U, // G_UDIV
      86             :     0U, // G_SREM
      87             :     0U, // G_UREM
      88             :     0U, // G_AND
      89             :     0U, // G_OR
      90             :     0U, // G_XOR
      91             :     0U, // G_IMPLICIT_DEF
      92             :     0U, // G_PHI
      93             :     0U, // G_FRAME_INDEX
      94             :     0U, // G_GLOBAL_VALUE
      95             :     0U, // G_EXTRACT
      96             :     0U, // G_UNMERGE_VALUES
      97             :     0U, // G_INSERT
      98             :     0U, // G_MERGE_VALUES
      99             :     0U, // G_PTRTOINT
     100             :     0U, // G_INTTOPTR
     101             :     0U, // G_BITCAST
     102             :     0U, // G_INTRINSIC_TRUNC
     103             :     0U, // G_INTRINSIC_ROUND
     104             :     0U, // G_LOAD
     105             :     0U, // G_SEXTLOAD
     106             :     0U, // G_ZEXTLOAD
     107             :     0U, // G_STORE
     108             :     0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
     109             :     0U, // G_ATOMIC_CMPXCHG
     110             :     0U, // G_ATOMICRMW_XCHG
     111             :     0U, // G_ATOMICRMW_ADD
     112             :     0U, // G_ATOMICRMW_SUB
     113             :     0U, // G_ATOMICRMW_AND
     114             :     0U, // G_ATOMICRMW_NAND
     115             :     0U, // G_ATOMICRMW_OR
     116             :     0U, // G_ATOMICRMW_XOR
     117             :     0U, // G_ATOMICRMW_MAX
     118             :     0U, // G_ATOMICRMW_MIN
     119             :     0U, // G_ATOMICRMW_UMAX
     120             :     0U, // G_ATOMICRMW_UMIN
     121             :     0U, // G_BRCOND
     122             :     0U, // G_BRINDIRECT
     123             :     0U, // G_INTRINSIC
     124             :     0U, // G_INTRINSIC_W_SIDE_EFFECTS
     125             :     0U, // G_ANYEXT
     126             :     0U, // G_TRUNC
     127             :     0U, // G_CONSTANT
     128             :     0U, // G_FCONSTANT
     129             :     0U, // G_VASTART
     130             :     0U, // G_VAARG
     131             :     0U, // G_SEXT
     132             :     0U, // G_ZEXT
     133             :     0U, // G_SHL
     134             :     0U, // G_LSHR
     135             :     0U, // G_ASHR
     136             :     0U, // G_ICMP
     137             :     0U, // G_FCMP
     138             :     0U, // G_SELECT
     139             :     0U, // G_UADDO
     140             :     0U, // G_UADDE
     141             :     0U, // G_USUBO
     142             :     0U, // G_USUBE
     143             :     0U, // G_SADDO
     144             :     0U, // G_SADDE
     145             :     0U, // G_SSUBO
     146             :     0U, // G_SSUBE
     147             :     0U, // G_UMULO
     148             :     0U, // G_SMULO
     149             :     0U, // G_UMULH
     150             :     0U, // G_SMULH
     151             :     0U, // G_FADD
     152             :     0U, // G_FSUB
     153             :     0U, // G_FMUL
     154             :     0U, // G_FMA
     155             :     0U, // G_FDIV
     156             :     0U, // G_FREM
     157             :     0U, // G_FPOW
     158             :     0U, // G_FEXP
     159             :     0U, // G_FEXP2
     160             :     0U, // G_FLOG
     161             :     0U, // G_FLOG2
     162             :     0U, // G_FNEG
     163             :     0U, // G_FPEXT
     164             :     0U, // G_FPTRUNC
     165             :     0U, // G_FPTOSI
     166             :     0U, // G_FPTOUI
     167             :     0U, // G_SITOFP
     168             :     0U, // G_UITOFP
     169             :     0U, // G_FABS
     170             :     0U, // G_GEP
     171             :     0U, // G_PTR_MASK
     172             :     0U, // G_BR
     173             :     0U, // G_INSERT_VECTOR_ELT
     174             :     0U, // G_EXTRACT_VECTOR_ELT
     175             :     0U, // G_SHUFFLE_VECTOR
     176             :     0U, // G_CTTZ
     177             :     0U, // G_CTTZ_ZERO_UNDEF
     178             :     0U, // G_CTLZ
     179             :     0U, // G_CTLZ_ZERO_UNDEF
     180             :     0U, // G_CTPOP
     181             :     0U, // G_BSWAP
     182             :     0U, // G_ADDRSPACE_CAST
     183             :     0U, // G_BLOCK_ADDR
     184             :     548U,       // ADJCALLSTACKDOWN
     185             :     584U,       // ADJCALLSTACKUP
     186             :     4630U,      // MEMCPY
     187             :     8759U,      // Select
     188             :     8759U,      // Select_32
     189             :     8759U,      // Select_32_64
     190             :     8759U,      // Select_64_32
     191             :     8759U,      // Select_Ri
     192             :     8759U,      // Select_Ri_32
     193             :     8759U,      // Select_Ri_32_64
     194             :     8759U,      // Select_Ri_64_32
     195             :     12805U,     // ADD_ri
     196             :     12805U,     // ADD_ri_32
     197             :     12805U,     // ADD_rr
     198             :     12805U,     // ADD_rr_32
     199             :     16901U,     // AND_ri
     200             :     16901U,     // AND_ri_32
     201             :     16901U,     // AND_rr
     202             :     16901U,     // AND_rr_32
     203             :     20997U,     // BE16
     204             :     25093U,     // BE32
     205             :     29189U,     // BE64
     206             :     33285U,     // DIV_ri
     207             :     33285U,     // DIV_ri_32
     208             :     33285U,     // DIV_rr
     209             :     33285U,     // DIV_rr_32
     210             :     37377U,     // FI_ri
     211             :     41565U,     // JAL
     212             :     41577U,     // JALX
     213             :     45657U,     // JEQ_ri
     214             :     45657U,     // JEQ_rr
     215             :     1123U,      // JMP
     216             :     49753U,     // JNE_ri
     217             :     49753U,     // JNE_rr
     218             :     53849U,     // JSGE_ri
     219             :     53849U,     // JSGE_rr
     220             :     57945U,     // JSGT_ri
     221             :     57945U,     // JSGT_rr
     222             :     62041U,     // JSLE_ri
     223             :     62041U,     // JSLE_rr
     224             :     601U,       // JSLT_ri
     225             :     601U,       // JSLT_rr
     226             :     4697U,      // JUGE_ri
     227             :     4697U,      // JUGE_rr
     228             :     8793U,      // JUGT_ri
     229             :     8793U,      // JUGT_rr
     230             :     12889U,     // JULE_ri
     231             :     12889U,     // JULE_rr
     232             :     16985U,     // JULT_ri
     233             :     16985U,     // JULT_rr
     234             :     20997U,     // LDB
     235             :     20997U,     // LDB32
     236             :     25093U,     // LDD
     237             :     29189U,     // LDH
     238             :     29189U,     // LDH32
     239             :     33285U,     // LDW
     240             :     33285U,     // LDW32
     241             :     1936U,      // LD_ABS_B
     242             :     1918U,      // LD_ABS_H
     243             :     1900U,      // LD_ABS_W
     244             :     1936U,      // LD_IND_B
     245             :     1918U,      // LD_IND_H
     246             :     1900U,      // LD_IND_W
     247             :     8709U,      // LD_imm64
     248             :     37382U,     // LD_pseudo
     249             :     37381U,     // LE16
     250             :     41477U,     // LE32
     251             :     45573U,     // LE64
     252             :     8709U,      // MOV_32_64
     253             :     8709U,      // MOV_ri
     254             :     8709U,      // MOV_ri_32
     255             :     8709U,      // MOV_rr
     256             :     8709U,      // MOV_rr_32
     257             :     49669U,     // MUL_ri
     258             :     49669U,     // MUL_ri_32
     259             :     49669U,     // MUL_rr
     260             :     49669U,     // MUL_rr_32
     261             :     53765U,     // NEG_32
     262             :     53765U,     // NEG_64
     263             :     41489U,     // NOP
     264             :     57861U,     // OR_ri
     265             :     57861U,     // OR_ri_32
     266             :     57861U,     // OR_rr
     267             :     57861U,     // OR_rr_32
     268             :     431U,       // RET
     269             :     61957U,     // SLL_ri
     270             :     61957U,     // SLL_ri_32
     271             :     61957U,     // SLL_rr
     272             :     61957U,     // SLL_rr_32
     273             :     517U,       // SRA_ri
     274             :     517U,       // SRA_ri_32
     275             :     517U,       // SRA_rr
     276             :     517U,       // SRA_rr_32
     277             :     4613U,      // SRL_ri
     278             :     4613U,      // SRL_ri_32
     279             :     4613U,      // SRL_rr
     280             :     4613U,      // SRL_rr_32
     281             :     10392U,     // STB
     282             :     10392U,     // STB32
     283             :     10372U,     // STD
     284             :     10382U,     // STH
     285             :     10382U,     // STH32
     286             :     10357U,     // STW
     287             :     10357U,     // STW32
     288             :     12805U,     // SUB_ri
     289             :     12805U,     // SUB_ri_32
     290             :     12805U,     // SUB_rr
     291             :     12805U,     // SUB_rr_32
     292             :     18544U,     // XADD32
     293             :     18559U,     // XADD64
     294             :     20997U,     // XOR_ri
     295             :     20997U,     // XOR_ri_32
     296             :     20997U,     // XOR_rr
     297             :     20997U,     // XOR_rr_32
     298             :   };
     299             : 
     300             :   static const uint8_t OpInfo1[] = {
     301             :     0U, // PHI
     302             :     0U, // INLINEASM
     303             :     0U, // CFI_INSTRUCTION
     304             :     0U, // EH_LABEL
     305             :     0U, // GC_LABEL
     306             :     0U, // ANNOTATION_LABEL
     307             :     0U, // KILL
     308             :     0U, // EXTRACT_SUBREG
     309             :     0U, // INSERT_SUBREG
     310             :     0U, // IMPLICIT_DEF
     311             :     0U, // SUBREG_TO_REG
     312             :     0U, // COPY_TO_REGCLASS
     313             :     0U, // DBG_VALUE
     314             :     0U, // DBG_LABEL
     315             :     0U, // REG_SEQUENCE
     316             :     0U, // COPY
     317             :     0U, // BUNDLE
     318             :     0U, // LIFETIME_START
     319             :     0U, // LIFETIME_END
     320             :     0U, // STACKMAP
     321             :     0U, // FENTRY_CALL
     322             :     0U, // PATCHPOINT
     323             :     0U, // LOAD_STACK_GUARD
     324             :     0U, // STATEPOINT
     325             :     0U, // LOCAL_ESCAPE
     326             :     0U, // FAULTING_OP
     327             :     0U, // PATCHABLE_OP
     328             :     0U, // PATCHABLE_FUNCTION_ENTER
     329             :     0U, // PATCHABLE_RET
     330             :     0U, // PATCHABLE_FUNCTION_EXIT
     331             :     0U, // PATCHABLE_TAIL_CALL
     332             :     0U, // PATCHABLE_EVENT_CALL
     333             :     0U, // PATCHABLE_TYPED_EVENT_CALL
     334             :     0U, // ICALL_BRANCH_FUNNEL
     335             :     0U, // G_ADD
     336             :     0U, // G_SUB
     337             :     0U, // G_MUL
     338             :     0U, // G_SDIV
     339             :     0U, // G_UDIV
     340             :     0U, // G_SREM
     341             :     0U, // G_UREM
     342             :     0U, // G_AND
     343             :     0U, // G_OR
     344             :     0U, // G_XOR
     345             :     0U, // G_IMPLICIT_DEF
     346             :     0U, // G_PHI
     347             :     0U, // G_FRAME_INDEX
     348             :     0U, // G_GLOBAL_VALUE
     349             :     0U, // G_EXTRACT
     350             :     0U, // G_UNMERGE_VALUES
     351             :     0U, // G_INSERT
     352             :     0U, // G_MERGE_VALUES
     353             :     0U, // G_PTRTOINT
     354             :     0U, // G_INTTOPTR
     355             :     0U, // G_BITCAST
     356             :     0U, // G_INTRINSIC_TRUNC
     357             :     0U, // G_INTRINSIC_ROUND
     358             :     0U, // G_LOAD
     359             :     0U, // G_SEXTLOAD
     360             :     0U, // G_ZEXTLOAD
     361             :     0U, // G_STORE
     362             :     0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
     363             :     0U, // G_ATOMIC_CMPXCHG
     364             :     0U, // G_ATOMICRMW_XCHG
     365             :     0U, // G_ATOMICRMW_ADD
     366             :     0U, // G_ATOMICRMW_SUB
     367             :     0U, // G_ATOMICRMW_AND
     368             :     0U, // G_ATOMICRMW_NAND
     369             :     0U, // G_ATOMICRMW_OR
     370             :     0U, // G_ATOMICRMW_XOR
     371             :     0U, // G_ATOMICRMW_MAX
     372             :     0U, // G_ATOMICRMW_MIN
     373             :     0U, // G_ATOMICRMW_UMAX
     374             :     0U, // G_ATOMICRMW_UMIN
     375             :     0U, // G_BRCOND
     376             :     0U, // G_BRINDIRECT
     377             :     0U, // G_INTRINSIC
     378             :     0U, // G_INTRINSIC_W_SIDE_EFFECTS
     379             :     0U, // G_ANYEXT
     380             :     0U, // G_TRUNC
     381             :     0U, // G_CONSTANT
     382             :     0U, // G_FCONSTANT
     383             :     0U, // G_VASTART
     384             :     0U, // G_VAARG
     385             :     0U, // G_SEXT
     386             :     0U, // G_ZEXT
     387             :     0U, // G_SHL
     388             :     0U, // G_LSHR
     389             :     0U, // G_ASHR
     390             :     0U, // G_ICMP
     391             :     0U, // G_FCMP
     392             :     0U, // G_SELECT
     393             :     0U, // G_UADDO
     394             :     0U, // G_UADDE
     395             :     0U, // G_USUBO
     396             :     0U, // G_USUBE
     397             :     0U, // G_SADDO
     398             :     0U, // G_SADDE
     399             :     0U, // G_SSUBO
     400             :     0U, // G_SSUBE
     401             :     0U, // G_UMULO
     402             :     0U, // G_SMULO
     403             :     0U, // G_UMULH
     404             :     0U, // G_SMULH
     405             :     0U, // G_FADD
     406             :     0U, // G_FSUB
     407             :     0U, // G_FMUL
     408             :     0U, // G_FMA
     409             :     0U, // G_FDIV
     410             :     0U, // G_FREM
     411             :     0U, // G_FPOW
     412             :     0U, // G_FEXP
     413             :     0U, // G_FEXP2
     414             :     0U, // G_FLOG
     415             :     0U, // G_FLOG2
     416             :     0U, // G_FNEG
     417             :     0U, // G_FPEXT
     418             :     0U, // G_FPTRUNC
     419             :     0U, // G_FPTOSI
     420             :     0U, // G_FPTOUI
     421             :     0U, // G_SITOFP
     422             :     0U, // G_UITOFP
     423             :     0U, // G_FABS
     424             :     0U, // G_GEP
     425             :     0U, // G_PTR_MASK
     426             :     0U, // G_BR
     427             :     0U, // G_INSERT_VECTOR_ELT
     428             :     0U, // G_EXTRACT_VECTOR_ELT
     429             :     0U, // G_SHUFFLE_VECTOR
     430             :     0U, // G_CTTZ
     431             :     0U, // G_CTTZ_ZERO_UNDEF
     432             :     0U, // G_CTLZ
     433             :     0U, // G_CTLZ_ZERO_UNDEF
     434             :     0U, // G_CTPOP
     435             :     0U, // G_BSWAP
     436             :     0U, // G_ADDRSPACE_CAST
     437             :     0U, // G_BLOCK_ADDR
     438             :     0U, // ADJCALLSTACKDOWN
     439             :     0U, // ADJCALLSTACKUP
     440             :     0U, // MEMCPY
     441             :     0U, // Select
     442             :     0U, // Select_32
     443             :     0U, // Select_32_64
     444             :     0U, // Select_64_32
     445             :     0U, // Select_Ri
     446             :     0U, // Select_Ri_32
     447             :     0U, // Select_Ri_32_64
     448             :     0U, // Select_Ri_64_32
     449             :     0U, // ADD_ri
     450             :     0U, // ADD_ri_32
     451             :     0U, // ADD_rr
     452             :     0U, // ADD_rr_32
     453             :     0U, // AND_ri
     454             :     0U, // AND_ri_32
     455             :     0U, // AND_rr
     456             :     0U, // AND_rr_32
     457             :     0U, // BE16
     458             :     0U, // BE32
     459             :     0U, // BE64
     460             :     0U, // DIV_ri
     461             :     0U, // DIV_ri_32
     462             :     0U, // DIV_rr
     463             :     0U, // DIV_rr_32
     464             :     4U, // FI_ri
     465             :     0U, // JAL
     466             :     0U, // JALX
     467             :     0U, // JEQ_ri
     468             :     0U, // JEQ_rr
     469             :     0U, // JMP
     470             :     0U, // JNE_ri
     471             :     0U, // JNE_rr
     472             :     0U, // JSGE_ri
     473             :     0U, // JSGE_rr
     474             :     0U, // JSGT_ri
     475             :     0U, // JSGT_rr
     476             :     0U, // JSLE_ri
     477             :     0U, // JSLE_rr
     478             :     1U, // JSLT_ri
     479             :     1U, // JSLT_rr
     480             :     1U, // JUGE_ri
     481             :     1U, // JUGE_rr
     482             :     1U, // JUGT_ri
     483             :     1U, // JUGT_rr
     484             :     1U, // JULE_ri
     485             :     1U, // JULE_rr
     486             :     1U, // JULT_ri
     487             :     1U, // JULT_rr
     488             :     1U, // LDB
     489             :     1U, // LDB32
     490             :     1U, // LDD
     491             :     1U, // LDH
     492             :     1U, // LDH32
     493             :     1U, // LDW
     494             :     1U, // LDW32
     495             :     0U, // LD_ABS_B
     496             :     0U, // LD_ABS_H
     497             :     0U, // LD_ABS_W
     498             :     0U, // LD_IND_B
     499             :     0U, // LD_IND_H
     500             :     0U, // LD_IND_W
     501             :     8U, // LD_imm64
     502             :     16U,        // LD_pseudo
     503             :     1U, // LE16
     504             :     1U, // LE32
     505             :     1U, // LE64
     506             :     32U,        // MOV_32_64
     507             :     32U,        // MOV_ri
     508             :     32U,        // MOV_ri_32
     509             :     32U,        // MOV_rr
     510             :     32U,        // MOV_rr_32
     511             :     1U, // MUL_ri
     512             :     1U, // MUL_ri_32
     513             :     1U, // MUL_rr
     514             :     1U, // MUL_rr_32
     515             :     1U, // NEG_32
     516             :     1U, // NEG_64
     517             :     0U, // NOP
     518             :     1U, // OR_ri
     519             :     1U, // OR_ri_32
     520             :     1U, // OR_rr
     521             :     1U, // OR_rr_32
     522             :     0U, // RET
     523             :     1U, // SLL_ri
     524             :     1U, // SLL_ri_32
     525             :     1U, // SLL_rr
     526             :     1U, // SLL_rr_32
     527             :     2U, // SRA_ri
     528             :     2U, // SRA_ri_32
     529             :     2U, // SRA_rr
     530             :     2U, // SRA_rr_32
     531             :     2U, // SRL_ri
     532             :     2U, // SRL_ri_32
     533             :     2U, // SRL_rr
     534             :     2U, // SRL_rr_32
     535             :     2U, // STB
     536             :     2U, // STB32
     537             :     2U, // STD
     538             :     2U, // STH
     539             :     2U, // STH32
     540             :     2U, // STW
     541             :     2U, // STW32
     542             :     2U, // SUB_ri
     543             :     2U, // SUB_ri_32
     544             :     2U, // SUB_rr
     545             :     2U, // SUB_rr_32
     546             :     2U, // XADD32
     547             :     2U, // XADD64
     548             :     2U, // XOR_ri
     549             :     2U, // XOR_ri_32
     550             :     2U, // XOR_rr
     551             :     2U, // XOR_rr_32
     552             :   };
     553             : 
     554        1907 :   O << "\t";
     555             : 
     556             :   // Emit the opcode for the instruction.
     557             :   uint32_t Bits = 0;
     558        1907 :   Bits |= OpInfo0[MI->getOpcode()] << 0;
     559        1907 :   Bits |= OpInfo1[MI->getOpcode()] << 16;
     560             :   assert(Bits != 0 && "Cannot print this instruction.");
     561        1907 :   O << AsmStrs+(Bits & 511)-1;
     562             : 
     563             : 
     564             :   // Fragment 0 encoded into 3 bits for 5 unique commands.
     565        1907 :   switch ((Bits >> 9) & 7) {
     566           0 :   default: llvm_unreachable("Invalid command number.");
     567             :   case 0:
     568             :     // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
     569             :     return;
     570             :     break;
     571        1371 :   case 1:
     572             :     // ADJCALLSTACKDOWN, ADJCALLSTACKUP, MEMCPY, Select, Select_32, Select_32...
     573        1371 :     printOperand(MI, 0, O);
     574        1371 :     break;
     575          21 :   case 2:
     576             :     // JMP
     577          21 :     printBrTargetOperand(MI, 0, O);
     578          21 :     return;
     579             :     break;
     580          74 :   case 3:
     581             :     // LD_ABS_B, LD_ABS_H, LD_ABS_W, LD_IND_B, LD_IND_H, LD_IND_W
     582          74 :     printOperand(MI, 1, O);
     583             :     O << ']';
     584             :     return;
     585             :     break;
     586         231 :   case 4:
     587             :     // STB, STB32, STD, STH, STH32, STW, STW32, XADD32, XADD64
     588         231 :     printMemOperand(MI, 1, O);
     589         231 :     break;
     590             :   }
     591             : 
     592             : 
     593             :   // Fragment 1 encoded into 6 bits for 38 unique commands.
     594        1602 :   switch ((Bits >> 12) & 63) {
     595           0 :   default: llvm_unreachable("Invalid command number.");
     596             :   case 0:
     597             :     // ADJCALLSTACKDOWN, ADJCALLSTACKUP
     598             :     O << ' ';
     599           0 :     printOperand(MI, 1, O);
     600           0 :     return;
     601             :     break;
     602           0 :   case 1:
     603             :     // MEMCPY
     604           0 :     O << ", src: ";
     605           0 :     printOperand(MI, 1, O);
     606           0 :     O << ", len: ";
     607           0 :     printOperand(MI, 2, O);
     608           0 :     O << ", align: ";
     609           0 :     printOperand(MI, 3, O);
     610           0 :     return;
     611             :     break;
     612         570 :   case 2:
     613             :     // Select, Select_32, Select_32_64, Select_64_32, Select_Ri, Select_Ri_32...
     614         570 :     O << " = ";
     615         570 :     break;
     616         122 :   case 3:
     617             :     // ADD_ri, ADD_ri_32, ADD_rr, ADD_rr_32
     618         122 :     O << " += ";
     619         122 :     printOperand(MI, 2, O);
     620         122 :     return;
     621             :     break;
     622          70 :   case 4:
     623             :     // AND_ri, AND_ri_32, AND_rr, AND_rr_32
     624          70 :     O << " &= ";
     625          70 :     printOperand(MI, 2, O);
     626          70 :     return;
     627             :     break;
     628           4 :   case 5:
     629             :     // BE16
     630           4 :     O << " = be16 ";
     631           4 :     printOperand(MI, 1, O);
     632           4 :     return;
     633             :     break;
     634           4 :   case 6:
     635             :     // BE32
     636           4 :     O << " = be32 ";
     637           4 :     printOperand(MI, 1, O);
     638           4 :     return;
     639             :     break;
     640           4 :   case 7:
     641             :     // BE64
     642           4 :     O << " = be64 ";
     643           4 :     printOperand(MI, 1, O);
     644           4 :     return;
     645             :     break;
     646          11 :   case 8:
     647             :     // DIV_ri, DIV_ri_32, DIV_rr, DIV_rr_32
     648          11 :     O << " /= ";
     649          11 :     printOperand(MI, 2, O);
     650          11 :     return;
     651             :     break;
     652           4 :   case 9:
     653             :     // FI_ri, LD_pseudo
     654           4 :     O << ", ";
     655           4 :     break;
     656             :   case 10:
     657             :     // JAL, JALX, NOP
     658             :     return;
     659             :     break;
     660          42 :   case 11:
     661             :     // JEQ_ri, JEQ_rr
     662          42 :     O << " == ";
     663          42 :     printOperand(MI, 1, O);
     664          42 :     O << " goto ";
     665          42 :     printBrTargetOperand(MI, 2, O);
     666          42 :     return;
     667             :     break;
     668          33 :   case 12:
     669             :     // JNE_ri, JNE_rr
     670          33 :     O << " != ";
     671          33 :     printOperand(MI, 1, O);
     672          33 :     O << " goto ";
     673          33 :     printBrTargetOperand(MI, 2, O);
     674          33 :     return;
     675             :     break;
     676          10 :   case 13:
     677             :     // JSGE_ri, JSGE_rr
     678          10 :     O << " s>= ";
     679          10 :     printOperand(MI, 1, O);
     680          10 :     O << " goto ";
     681          10 :     printBrTargetOperand(MI, 2, O);
     682          10 :     return;
     683             :     break;
     684          17 :   case 14:
     685             :     // JSGT_ri, JSGT_rr
     686          17 :     O << " s> ";
     687          17 :     printOperand(MI, 1, O);
     688          17 :     O << " goto ";
     689          17 :     printBrTargetOperand(MI, 2, O);
     690          17 :     return;
     691             :     break;
     692           5 :   case 15:
     693             :     // JSLE_ri, JSLE_rr
     694           5 :     O << " s<= ";
     695           5 :     printOperand(MI, 1, O);
     696           5 :     O << " goto ";
     697           5 :     printBrTargetOperand(MI, 2, O);
     698           5 :     return;
     699             :     break;
     700           6 :   case 16:
     701             :     // JSLT_ri, JSLT_rr
     702           6 :     O << " s< ";
     703           6 :     printOperand(MI, 1, O);
     704           6 :     O << " goto ";
     705           6 :     printBrTargetOperand(MI, 2, O);
     706           6 :     return;
     707             :     break;
     708           7 :   case 17:
     709             :     // JUGE_ri, JUGE_rr
     710           7 :     O << " >= ";
     711           7 :     printOperand(MI, 1, O);
     712           7 :     O << " goto ";
     713           7 :     printBrTargetOperand(MI, 2, O);
     714           7 :     return;
     715             :     break;
     716          14 :   case 18:
     717             :     // JUGT_ri, JUGT_rr
     718          14 :     O << " > ";
     719          14 :     printOperand(MI, 1, O);
     720          14 :     O << " goto ";
     721          14 :     printBrTargetOperand(MI, 2, O);
     722          14 :     return;
     723             :     break;
     724           5 :   case 19:
     725             :     // JULE_ri, JULE_rr
     726           5 :     O << " <= ";
     727           5 :     printOperand(MI, 1, O);
     728           5 :     O << " goto ";
     729           5 :     printBrTargetOperand(MI, 2, O);
     730           5 :     return;
     731             :     break;
     732           6 :   case 20:
     733             :     // JULT_ri, JULT_rr
     734           6 :     O << " < ";
     735           6 :     printOperand(MI, 1, O);
     736           6 :     O << " goto ";
     737           6 :     printBrTargetOperand(MI, 2, O);
     738           6 :     return;
     739             :     break;
     740          37 :   case 21:
     741             :     // LDB, LDB32
     742          37 :     O << " = *(u8 *)(";
     743          37 :     printMemOperand(MI, 1, O);
     744             :     O << ')';
     745             :     return;
     746             :     break;
     747          40 :   case 22:
     748             :     // LDD
     749          40 :     O << " = *(u64 *)(";
     750          40 :     printMemOperand(MI, 1, O);
     751             :     O << ')';
     752             :     return;
     753             :     break;
     754          27 :   case 23:
     755             :     // LDH, LDH32
     756          27 :     O << " = *(u16 *)(";
     757          27 :     printMemOperand(MI, 1, O);
     758             :     O << ')';
     759             :     return;
     760             :     break;
     761          33 :   case 24:
     762             :     // LDW, LDW32
     763          33 :     O << " = *(u32 *)(";
     764          33 :     printMemOperand(MI, 1, O);
     765             :     O << ')';
     766             :     return;
     767             :     break;
     768           2 :   case 25:
     769             :     // LE16
     770           2 :     O << " = le16 ";
     771           2 :     printOperand(MI, 1, O);
     772           2 :     return;
     773             :     break;
     774           2 :   case 26:
     775             :     // LE32
     776           2 :     O << " = le32 ";
     777           2 :     printOperand(MI, 1, O);
     778           2 :     return;
     779             :     break;
     780           2 :   case 27:
     781             :     // LE64
     782           2 :     O << " = le64 ";
     783           2 :     printOperand(MI, 1, O);
     784           2 :     return;
     785             :     break;
     786          18 :   case 28:
     787             :     // MUL_ri, MUL_ri_32, MUL_rr, MUL_rr_32
     788          18 :     O << " *= ";
     789          18 :     printOperand(MI, 2, O);
     790          18 :     return;
     791             :     break;
     792           6 :   case 29:
     793             :     // NEG_32, NEG_64
     794           6 :     O << " = -";
     795           6 :     printOperand(MI, 1, O);
     796           6 :     return;
     797             :     break;
     798          15 :   case 30:
     799             :     // OR_ri, OR_ri_32, OR_rr, OR_rr_32
     800          15 :     O << " |= ";
     801          15 :     printOperand(MI, 2, O);
     802          15 :     return;
     803             :     break;
     804          89 :   case 31:
     805             :     // SLL_ri, SLL_ri_32, SLL_rr, SLL_rr_32
     806          89 :     O << " <<= ";
     807          89 :     printOperand(MI, 2, O);
     808          89 :     return;
     809             :     break;
     810          57 :   case 32:
     811             :     // SRA_ri, SRA_ri_32, SRA_rr, SRA_rr_32
     812          57 :     O << " s>>= ";
     813          57 :     printOperand(MI, 2, O);
     814          57 :     return;
     815             :     break;
     816          30 :   case 33:
     817             :     // SRL_ri, SRL_ri_32, SRL_rr, SRL_rr_32
     818          30 :     O << " >>= ";
     819          30 :     printOperand(MI, 2, O);
     820          30 :     return;
     821             :     break;
     822         222 :   case 34:
     823             :     // STB, STB32, STD, STH, STH32, STW, STW32
     824         222 :     O << ") = ";
     825         222 :     printOperand(MI, 0, O);
     826         222 :     return;
     827             :     break;
     828          12 :   case 35:
     829             :     // SUB_ri, SUB_ri_32, SUB_rr, SUB_rr_32
     830          12 :     O << " -= ";
     831          12 :     printOperand(MI, 2, O);
     832          12 :     return;
     833             :     break;
     834           9 :   case 36:
     835             :     // XADD32, XADD64
     836           9 :     O << ") += ";
     837           9 :     printOperand(MI, 3, O);
     838           9 :     return;
     839             :     break;
     840          22 :   case 37:
     841             :     // XOR_ri, XOR_ri_32, XOR_rr, XOR_rr_32
     842          22 :     O << " ^= ";
     843          22 :     printOperand(MI, 2, O);
     844          22 :     return;
     845             :     break;
     846             :   }
     847             : 
     848             : 
     849             :   // Fragment 2 encoded into 2 bits for 3 unique commands.
     850         574 :   switch ((Bits >> 18) & 3) {
     851           0 :   default: llvm_unreachable("Invalid command number.");
     852         495 :   case 0:
     853             :     // Select, Select_32, Select_32_64, Select_64_32, Select_Ri, Select_Ri_32...
     854         495 :     printOperand(MI, 1, O);
     855             :     break;
     856           0 :   case 1:
     857             :     // FI_ri
     858           0 :     printMemOperand(MI, 1, O);
     859           0 :     return;
     860             :     break;
     861          79 :   case 2:
     862             :     // LD_imm64
     863          79 :     printImm64Operand(MI, 1, O);
     864          79 :     O << " ll";
     865          79 :     return;
     866             :     break;
     867             :   }
     868             : 
     869             : 
     870             :   // Fragment 3 encoded into 2 bits for 3 unique commands.
     871         495 :   switch ((Bits >> 20) & 3) {
     872           0 :   default: llvm_unreachable("Invalid command number.");
     873             :   case 0:
     874             :     // Select, Select_32, Select_32_64, Select_64_32, Select_Ri, Select_Ri_32...
     875             :     O << ' ';
     876           0 :     printOperand(MI, 3, O);
     877             :     O << ' ';
     878           0 :     printOperand(MI, 2, O);
     879           0 :     O << " ? ";
     880           0 :     printOperand(MI, 4, O);
     881           0 :     O << " : ";
     882           0 :     printOperand(MI, 5, O);
     883           0 :     return;
     884             :     break;
     885           4 :   case 1:
     886             :     // LD_pseudo
     887           4 :     O << ", ";
     888           4 :     printImm64Operand(MI, 2, O);
     889           4 :     return;
     890             :     break;
     891             :   case 2:
     892             :     // MOV_32_64, MOV_ri, MOV_ri_32, MOV_rr, MOV_rr_32
     893             :     return;
     894             :     break;
     895             :   }
     896             : 
     897             : }
     898             : 
     899             : 
     900             : /// getRegisterName - This method is automatically generated by tblgen
     901             : /// from the register set description.  This returns the assembler name
     902             : /// for the specified register.
     903        2518 : const char *BPFInstPrinter::getRegisterName(unsigned RegNo) {
     904             :   assert(RegNo && RegNo < 25 && "Invalid register number!");
     905             : 
     906             :   static const char AsmStrs[] = {
     907             :   /* 0 */ 'r', '1', '0', 0,
     908             :   /* 4 */ 'w', '1', '0', 0,
     909             :   /* 8 */ 'r', '0', 0,
     910             :   /* 11 */ 'w', '0', 0,
     911             :   /* 14 */ 'r', '1', '1', 0,
     912             :   /* 18 */ 'w', '1', '1', 0,
     913             :   /* 22 */ 'r', '1', 0,
     914             :   /* 25 */ 'w', '1', 0,
     915             :   /* 28 */ 'r', '2', 0,
     916             :   /* 31 */ 'w', '2', 0,
     917             :   /* 34 */ 'r', '3', 0,
     918             :   /* 37 */ 'w', '3', 0,
     919             :   /* 40 */ 'r', '4', 0,
     920             :   /* 43 */ 'w', '4', 0,
     921             :   /* 46 */ 'r', '5', 0,
     922             :   /* 49 */ 'w', '5', 0,
     923             :   /* 52 */ 'r', '6', 0,
     924             :   /* 55 */ 'w', '6', 0,
     925             :   /* 58 */ 'r', '7', 0,
     926             :   /* 61 */ 'w', '7', 0,
     927             :   /* 64 */ 'r', '8', 0,
     928             :   /* 67 */ 'w', '8', 0,
     929             :   /* 70 */ 'r', '9', 0,
     930             :   /* 73 */ 'w', '9', 0,
     931             :   };
     932             : 
     933             :   static const uint8_t RegAsmOffset[] = {
     934             :     8, 22, 28, 34, 40, 46, 52, 58, 64, 70, 0, 14, 11, 25, 
     935             :     31, 37, 43, 49, 55, 61, 67, 73, 4, 18, 
     936             :   };
     937             : 
     938             :   assert (*(AsmStrs+RegAsmOffset[RegNo-1]) &&
     939             :           "Invalid alt name index for register!");
     940        2518 :   return AsmStrs+RegAsmOffset[RegNo-1];
     941             : }
     942             : 
     943             : #ifdef PRINT_ALIAS_INSTR
     944             : #undef PRINT_ALIAS_INSTR
     945             : 
     946             : bool BPFInstPrinter::printAliasInstr(const MCInst *MI, raw_ostream &OS) {
     947             :   return false;
     948             : }
     949             : 
     950             : #endif // PRINT_ALIAS_INSTR

Generated by: LCOV version 1.13