Advertisement
Guest User

ppc-opc-svp64.h

a guest
Jan 17th, 2022
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.76 KB | None | 0 0
  1. /*
  2.  * this file is auto-generated, do not edit
  3.  * http://libre-soc.org/openpower/sv_binutils.py
  4.  * part of Libre-SOC, sponsored by NLnet
  5.  */
  6.  
  7. #ifndef PPC_OPC_SVP64_H
  8. #define PPC_OPC_SVP64_H
  9.  
  10. #include <stdint.h>
  11.  
  12. struct svp64_opcode {
  13.     uint32_t value;
  14.     uint32_t mask;
  15. };
  16.  
  17. enum svp64_in1sel {
  18.     SVP64_IN1SEL_NONE,
  19.     SVP64_IN1SEL_RA,
  20.     SVP64_IN1SEL_RA_OR_ZERO,
  21.     SVP64_IN1SEL_SPR,
  22.     SVP64_IN1SEL_RS,
  23.     SVP64_IN1SEL_FRA,
  24.     SVP64_IN1SEL_FRS,
  25. };
  26.  
  27. enum svp64_in2sel {
  28.     SVP64_IN2SEL_NONE,
  29.     SVP64_IN2SEL_RB,
  30.     SVP64_IN2SEL_CONST_UI,
  31.     SVP64_IN2SEL_CONST_SI,
  32.     SVP64_IN2SEL_CONST_UI_HI,
  33.     SVP64_IN2SEL_CONST_SI_HI,
  34.     SVP64_IN2SEL_CONST_LI,
  35.     SVP64_IN2SEL_CONST_BD,
  36.     SVP64_IN2SEL_CONST_DS,
  37.     SVP64_IN2SEL_CONST_M1,
  38.     SVP64_IN2SEL_CONST_SH,
  39.     SVP64_IN2SEL_CONST_SH32,
  40.     SVP64_IN2SEL_SPR,
  41.     SVP64_IN2SEL_RS,
  42.     SVP64_IN2SEL_FRB,
  43.     SVP64_IN2SEL_CONST_SVD,
  44.     SVP64_IN2SEL_CONST_SVDS,
  45.     SVP64_IN2SEL_CONST_XBI,
  46. };
  47.  
  48. enum svp64_in3sel {
  49.     SVP64_IN3SEL_NONE,
  50.     SVP64_IN3SEL_RS,
  51.     SVP64_IN3SEL_RB,
  52.     SVP64_IN3SEL_FRS,
  53.     SVP64_IN3SEL_FRC,
  54.     SVP64_IN3SEL_RC,
  55.     SVP64_IN3SEL_RT,
  56. };
  57.  
  58. enum svp64_outsel {
  59.     SVP64_OUTSEL_NONE,
  60.     SVP64_OUTSEL_RT,
  61.     SVP64_OUTSEL_RA,
  62.     SVP64_OUTSEL_SPR,
  63.     SVP64_OUTSEL_RT_OR_ZERO,
  64.     SVP64_OUTSEL_FRT,
  65.     SVP64_OUTSEL_FRS,
  66. };
  67.  
  68. enum svp64_crinsel {
  69.     SVP64_CRINSEL_NONE,
  70.     SVP64_CRINSEL_CR0,
  71.     SVP64_CRINSEL_BI,
  72.     SVP64_CRINSEL_BFA,
  73.     SVP64_CRINSEL_BA_BB,
  74.     SVP64_CRINSEL_BC,
  75.     SVP64_CRINSEL_WHOLE_REG,
  76.     SVP64_CRINSEL_CR1,
  77. };
  78.  
  79. enum svp64_croutsel {
  80.     SVP64_CROUTSEL_NONE,
  81.     SVP64_CROUTSEL_CR0,
  82.     SVP64_CROUTSEL_BF,
  83.     SVP64_CROUTSEL_BT,
  84.     SVP64_CROUTSEL_WHOLE_REG,
  85.     SVP64_CROUTSEL_CR1,
  86. };
  87.  
  88. enum svp64_svptype {
  89.     SVP64_SVPTYPE_NONE,
  90.     SVP64_SVPTYPE_P1,
  91.     SVP64_SVPTYPE_P2,
  92. };
  93.  
  94. enum svp64_svetype {
  95.     SVP64_SVETYPE_NONE,
  96.     SVP64_SVETYPE_EXTRA2,
  97.     SVP64_SVETYPE_EXTRA3,
  98. };
  99.  
  100. enum svp64_svextra {
  101.     SVP64_SVEXTRA_NONE,
  102.     SVP64_SVEXTRA_IDX0,
  103.     SVP64_SVEXTRA_IDX1,
  104.     SVP64_SVEXTRA_IDX2,
  105.     SVP64_SVEXTRA_IDX3,
  106.     SVP64_SVEXTRA_IDX_1_2,
  107. };
  108.  
  109. struct svp64_entry {
  110.     const char *name;
  111.     struct svp64_opcode opcode;
  112.     uint64_t in1 : 3;
  113.     uint64_t in2 : 5;
  114.     uint64_t in3 : 3;
  115.     uint64_t out : 3;
  116.     uint64_t out2 : 3;
  117.     uint64_t cr_in : 4;
  118.     uint64_t cr_out : 3;
  119.     uint64_t sv_ptype : 2;
  120.     uint64_t sv_etype : 2;
  121.     uint64_t sv_in1 : 3;
  122.     uint64_t sv_in2 : 3;
  123.     uint64_t sv_in3 : 3;
  124.     uint64_t sv_out : 3;
  125.     uint64_t sv_out2 : 3;
  126.     uint64_t sv_cr_in : 3;
  127.     uint64_t sv_cr_out : 3;
  128.     uint64_t : 15;
  129. };
  130.  
  131. extern const struct svp64_entry svp64_entries[];
  132. extern const unsigned int svp64_num_entries;
  133.  
  134. #endif /* PPC_OPC_SVP64_H */
  135.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement