qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

vsx-ops.c.inc (15713B)


      1 GEN_HANDLER_E(lxsdx, 0x1F, 0x0C, 0x12, 0, PPC_NONE, PPC2_VSX),
      2 GEN_HANDLER_E(lxsiwax, 0x1F, 0x0C, 0x02, 0, PPC_NONE, PPC2_VSX207),
      3 GEN_HANDLER_E(lxsiwzx, 0x1F, 0x0C, 0x00, 0, PPC_NONE, PPC2_VSX207),
      4 GEN_HANDLER_E(lxsibzx, 0x1F, 0x0D, 0x18, 0, PPC_NONE, PPC2_ISA300),
      5 GEN_HANDLER_E(lxsihzx, 0x1F, 0x0D, 0x19, 0, PPC_NONE, PPC2_ISA300),
      6 GEN_HANDLER_E(lxsspx, 0x1F, 0x0C, 0x10, 0, PPC_NONE, PPC2_VSX207),
      7 GEN_HANDLER_E(lxvd2x, 0x1F, 0x0C, 0x1A, 0, PPC_NONE, PPC2_VSX),
      8 GEN_HANDLER_E(lxvwsx, 0x1F, 0x0C, 0x0B, 0, PPC_NONE, PPC2_ISA300),
      9 GEN_HANDLER_E(lxvdsx, 0x1F, 0x0C, 0x0A, 0, PPC_NONE, PPC2_VSX),
     10 GEN_HANDLER_E(lxvw4x, 0x1F, 0x0C, 0x18, 0, PPC_NONE, PPC2_VSX),
     11 GEN_HANDLER_E(lxvh8x, 0x1F, 0x0C, 0x19, 0, PPC_NONE,  PPC2_ISA300),
     12 GEN_HANDLER_E(lxvb16x, 0x1F, 0x0C, 0x1B, 0, PPC_NONE, PPC2_ISA300),
     13 #if defined(TARGET_PPC64)
     14 GEN_HANDLER_E(lxvl, 0x1F, 0x0D, 0x08, 0, PPC_NONE, PPC2_ISA300),
     15 GEN_HANDLER_E(lxvll, 0x1F, 0x0D, 0x09, 0, PPC_NONE, PPC2_ISA300),
     16 #endif
     17 
     18 GEN_HANDLER_E(stxsdx, 0x1F, 0xC, 0x16, 0, PPC_NONE, PPC2_VSX),
     19 GEN_HANDLER_E(stxsibx, 0x1F, 0xD, 0x1C, 0, PPC_NONE, PPC2_ISA300),
     20 GEN_HANDLER_E(stxsihx, 0x1F, 0xD, 0x1D, 0, PPC_NONE, PPC2_ISA300),
     21 GEN_HANDLER_E(stxsiwx, 0x1F, 0xC, 0x04, 0, PPC_NONE, PPC2_VSX207),
     22 GEN_HANDLER_E(stxsspx, 0x1F, 0xC, 0x14, 0, PPC_NONE, PPC2_VSX207),
     23 GEN_HANDLER_E(stxvd2x, 0x1F, 0xC, 0x1E, 0, PPC_NONE, PPC2_VSX),
     24 GEN_HANDLER_E(stxvw4x, 0x1F, 0xC, 0x1C, 0, PPC_NONE, PPC2_VSX),
     25 GEN_HANDLER_E(stxvh8x, 0x1F, 0x0C, 0x1D, 0, PPC_NONE,  PPC2_ISA300),
     26 GEN_HANDLER_E(stxvb16x, 0x1F, 0x0C, 0x1F, 0, PPC_NONE, PPC2_ISA300),
     27 #if defined(TARGET_PPC64)
     28 GEN_HANDLER_E(stxvl, 0x1F, 0x0D, 0x0C, 0, PPC_NONE, PPC2_ISA300),
     29 GEN_HANDLER_E(stxvll, 0x1F, 0x0D, 0x0D, 0, PPC_NONE, PPC2_ISA300),
     30 #endif
     31 
     32 GEN_HANDLER_E(mfvsrwz, 0x1F, 0x13, 0x03, 0x0000F800, PPC_NONE, PPC2_VSX207),
     33 GEN_HANDLER_E(mtvsrwa, 0x1F, 0x13, 0x06, 0x0000F800, PPC_NONE, PPC2_VSX207),
     34 GEN_HANDLER_E(mtvsrwz, 0x1F, 0x13, 0x07, 0x0000F800, PPC_NONE, PPC2_VSX207),
     35 #if defined(TARGET_PPC64)
     36 GEN_HANDLER_E(mfvsrd, 0x1F, 0x13, 0x01, 0x0000F800, PPC_NONE, PPC2_VSX207),
     37 GEN_HANDLER_E(mtvsrd, 0x1F, 0x13, 0x05, 0x0000F800, PPC_NONE, PPC2_VSX207),
     38 GEN_HANDLER_E(mfvsrld, 0X1F, 0x13, 0x09, 0x0000F800, PPC_NONE, PPC2_ISA300),
     39 GEN_HANDLER_E(mtvsrdd, 0X1F, 0x13, 0x0D, 0x0, PPC_NONE, PPC2_ISA300),
     40 GEN_HANDLER_E(mtvsrws, 0x1F, 0x13, 0x0C, 0x0000F800, PPC_NONE, PPC2_ISA300),
     41 #endif
     42 
     43 #define GEN_XX1FORM(name, opc2, opc3, fl2)                              \
     44 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
     45 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2)
     46 
     47 #define GEN_XX2FORM(name, opc2, opc3, fl2)                           \
     48 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
     49 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2)
     50 
     51 #define GEN_XX2FORM_EXT(name, opc2, opc3, fl2)                          \
     52 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0x00100000, PPC_NONE, fl2), \
     53 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0x00100000, PPC_NONE, fl2)
     54 
     55 #define GEN_XX2FORM_EO(name, opc2, opc3, opc4, fl2)                          \
     56 GEN_HANDLER2_E_2(name, #name, 0x3C, opc2 | 0, opc3, opc4, 0, PPC_NONE, fl2), \
     57 GEN_HANDLER2_E_2(name, #name, 0x3C, opc2 | 1, opc3, opc4, 0, PPC_NONE, fl2)
     58 
     59 #define GEN_XX3FORM(name, opc2, opc3, fl2)                           \
     60 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
     61 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2), \
     62 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 0, PPC_NONE, fl2), \
     63 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 0, PPC_NONE, fl2)
     64 
     65 #define GEN_XX3FORM_NAME(name, opcname, opc2, opc3, fl2)               \
     66 GEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 0, opc3, 0, PPC_NONE, fl2), \
     67 GEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 1, opc3, 0, PPC_NONE, fl2), \
     68 GEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 2, opc3, 0, PPC_NONE, fl2), \
     69 GEN_HANDLER2_E(name, opcname, 0x3C, opc2 | 3, opc3, 0, PPC_NONE, fl2)
     70 
     71 #define GEN_XX2IFORM(name, opc2, opc3, fl2)                           \
     72 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0, opc3, 1, PPC_NONE, fl2), \
     73 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 1, opc3, 1, PPC_NONE, fl2), \
     74 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 2, opc3, 1, PPC_NONE, fl2), \
     75 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 3, opc3, 1, PPC_NONE, fl2)
     76 
     77 #define GEN_XX3_RC_FORM(name, opc2, opc3, fl2)                          \
     78 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x00, 0, PPC_NONE, fl2), \
     79 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x00, 0, PPC_NONE, fl2), \
     80 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x00, 0, PPC_NONE, fl2), \
     81 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x00, 0, PPC_NONE, fl2), \
     82 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x00, opc3 | 0x10, 0, PPC_NONE, fl2), \
     83 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x01, opc3 | 0x10, 0, PPC_NONE, fl2), \
     84 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x02, opc3 | 0x10, 0, PPC_NONE, fl2), \
     85 GEN_HANDLER2_E(name, #name, 0x3C, opc2 | 0x03, opc3 | 0x10, 0, PPC_NONE, fl2)
     86 
     87 #define GEN_XX3FORM_DM(name, opc2, opc3) \
     88 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
     89 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
     90 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
     91 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x00, 0, PPC_NONE, PPC2_VSX),\
     92 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
     93 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
     94 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
     95 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x04, 0, PPC_NONE, PPC2_VSX),\
     96 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
     97 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
     98 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
     99 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x08, 0, PPC_NONE, PPC2_VSX),\
    100 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x00, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
    101 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x01, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
    102 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x02, opc3|0x0C, 0, PPC_NONE, PPC2_VSX),\
    103 GEN_HANDLER2_E(name, #name, 0x3C, opc2|0x03, opc3|0x0C, 0, PPC_NONE, PPC2_VSX)
    104 
    105 #define GEN_VSX_XFORM_300(name, opc2, opc3, inval) \
    106 GEN_HANDLER_E(name, 0x3F, opc2, opc3, inval, PPC_NONE, PPC2_ISA300)
    107 
    108 #define GEN_VSX_XFORM_300_EO(name, opc2, opc3, opc4, inval)             \
    109 GEN_HANDLER_E_2(name, 0x3F, opc2, opc3, opc4, inval, PPC_NONE, PPC2_ISA300)
    110 
    111 #define GEN_VSX_Z23FORM_300(name, opc2, opc3, opc4, inval) \
    112 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x00, opc4 | 0x0, inval), \
    113 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x08, opc4 | 0x0, inval), \
    114 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x10, opc4 | 0x0, inval), \
    115 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x18, opc4 | 0x0, inval), \
    116 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x00, opc4 | 0x1, inval), \
    117 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x08, opc4 | 0x1, inval), \
    118 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x10, opc4 | 0x1, inval), \
    119 GEN_VSX_XFORM_300_EO(name, opc2, opc3 | 0x18, opc4 | 0x1, inval)
    120 
    121 GEN_VSX_Z23FORM_300(xsrqpi, 0x05, 0x0, 0x0, 0x0),
    122 GEN_VSX_Z23FORM_300(xsrqpxp, 0x05, 0x1, 0x0, 0x0),
    123 GEN_VSX_XFORM_300_EO(xssqrtqp, 0x04, 0x19, 0x1B, 0x0),
    124 GEN_VSX_XFORM_300(xssubqp, 0x04, 0x10, 0x0),
    125 
    126 GEN_XX2FORM(xsabsdp, 0x12, 0x15, PPC2_VSX),
    127 GEN_XX2FORM(xsnabsdp, 0x12, 0x16, PPC2_VSX),
    128 GEN_XX2FORM(xsnegdp, 0x12, 0x17, PPC2_VSX),
    129 GEN_XX3FORM(xscpsgndp, 0x00, 0x16, PPC2_VSX),
    130 
    131 GEN_VSX_XFORM_300_EO(xsabsqp, 0x04, 0x19, 0x00, 0x00000001),
    132 GEN_VSX_XFORM_300_EO(xsnabsqp, 0x04, 0x19, 0x08, 0x00000001),
    133 GEN_VSX_XFORM_300_EO(xsnegqp, 0x04, 0x19, 0x10, 0x00000001),
    134 GEN_VSX_XFORM_300(xscpsgnqp, 0x04, 0x03, 0x00000001),
    135 GEN_VSX_XFORM_300_EO(xscvdpqp, 0x04, 0x1A, 0x16, 0x00000001),
    136 GEN_VSX_XFORM_300_EO(xscvqpsdz, 0x04, 0x1A, 0x19, 0x00000001),
    137 GEN_VSX_XFORM_300_EO(xscvqpswz, 0x04, 0x1A, 0x09, 0x00000001),
    138 GEN_VSX_XFORM_300_EO(xscvqpudz, 0x04, 0x1A, 0x11, 0x00000001),
    139 GEN_VSX_XFORM_300_EO(xscvqpuwz, 0x04, 0x1A, 0x01, 0x00000001),
    140 
    141 #ifdef TARGET_PPC64
    142 GEN_XX2FORM_EO(xsxexpdp, 0x16, 0x15, 0x00, PPC2_ISA300),
    143 GEN_VSX_XFORM_300_EO(xsxexpqp, 0x04, 0x19, 0x02, 0x00000001),
    144 GEN_XX2FORM_EO(xsxsigdp, 0x16, 0x15, 0x01, PPC2_ISA300),
    145 GEN_VSX_XFORM_300_EO(xsxsigqp, 0x04, 0x19, 0x12, 0x00000001),
    146 GEN_HANDLER_E(xsiexpdp, 0x3C, 0x16, 0x1C, 0, PPC_NONE, PPC2_ISA300),
    147 GEN_VSX_XFORM_300(xsiexpqp, 0x4, 0x1B, 0x00000001),
    148 #endif
    149 
    150 GEN_XX3FORM(xviexpsp, 0x00, 0x1B, PPC2_ISA300),
    151 GEN_XX3FORM(xviexpdp, 0x00, 0x1F, PPC2_ISA300),
    152 GEN_XX2FORM_EO(xvxexpdp, 0x16, 0x1D, 0x00, PPC2_ISA300),
    153 GEN_XX2FORM_EO(xvxsigdp, 0x16, 0x1D, 0x01, PPC2_ISA300),
    154 GEN_XX2FORM_EO(xvxexpsp, 0x16, 0x1D, 0x08, PPC2_ISA300),
    155 
    156 GEN_XX3FORM(xsadddp, 0x00, 0x04, PPC2_VSX),
    157 GEN_VSX_XFORM_300(xsaddqp, 0x04, 0x00, 0x0),
    158 GEN_XX3FORM(xssubdp, 0x00, 0x05, PPC2_VSX),
    159 GEN_XX3FORM(xsmuldp, 0x00, 0x06, PPC2_VSX),
    160 GEN_VSX_XFORM_300(xsmulqp, 0x04, 0x01, 0x0),
    161 GEN_XX3FORM(xsdivdp, 0x00, 0x07, PPC2_VSX),
    162 GEN_XX2FORM(xsredp,  0x14, 0x05, PPC2_VSX),
    163 GEN_XX2FORM(xssqrtdp,  0x16, 0x04, PPC2_VSX),
    164 GEN_XX2FORM(xsrsqrtedp,  0x14, 0x04, PPC2_VSX),
    165 GEN_XX3FORM(xstdivdp,  0x14, 0x07, PPC2_VSX),
    166 GEN_XX2FORM(xstsqrtdp,  0x14, 0x06, PPC2_VSX),
    167 GEN_XX3FORM(xscmpexpdp, 0x0C, 0x07, PPC2_ISA300),
    168 GEN_VSX_XFORM_300(xscmpexpqp, 0x04, 0x05, 0x00600001),
    169 GEN_XX2IFORM(xscmpodp,  0x0C, 0x05, PPC2_VSX),
    170 GEN_XX2IFORM(xscmpudp,  0x0C, 0x04, PPC2_VSX),
    171 GEN_VSX_XFORM_300(xscmpoqp, 0x04, 0x04, 0x00600001),
    172 GEN_VSX_XFORM_300(xscmpuqp, 0x04, 0x14, 0x00600001),
    173 GEN_XX3FORM(xsmaxdp, 0x00, 0x14, PPC2_VSX),
    174 GEN_XX3FORM(xsmindp, 0x00, 0x15, PPC2_VSX),
    175 GEN_XX2FORM_EO(xscvdphp, 0x16, 0x15, 0x11, PPC2_ISA300),
    176 GEN_XX2FORM(xscvdpsp, 0x12, 0x10, PPC2_VSX),
    177 GEN_XX2FORM(xscvdpspn, 0x16, 0x10, PPC2_VSX207),
    178 GEN_XX2FORM_EO(xscvhpdp, 0x16, 0x15, 0x10, PPC2_ISA300),
    179 GEN_VSX_XFORM_300_EO(xscvsdqp, 0x04, 0x1A, 0x0A, 0x00000001),
    180 GEN_XX2FORM(xscvspdp, 0x12, 0x14, PPC2_VSX),
    181 GEN_XX2FORM(xscvdpsxds, 0x10, 0x15, PPC2_VSX),
    182 GEN_XX2FORM(xscvdpsxws, 0x10, 0x05, PPC2_VSX),
    183 GEN_XX2FORM(xscvdpuxds, 0x10, 0x14, PPC2_VSX),
    184 GEN_XX2FORM(xscvdpuxws, 0x10, 0x04, PPC2_VSX),
    185 GEN_XX2FORM(xscvsxddp, 0x10, 0x17, PPC2_VSX),
    186 GEN_VSX_XFORM_300_EO(xscvudqp, 0x04, 0x1A, 0x02, 0x00000001),
    187 GEN_XX2FORM(xscvuxddp, 0x10, 0x16, PPC2_VSX),
    188 GEN_XX2FORM(xsrdpi, 0x12, 0x04, PPC2_VSX),
    189 GEN_XX2FORM(xsrdpic, 0x16, 0x06, PPC2_VSX),
    190 GEN_XX2FORM(xsrdpim, 0x12, 0x07, PPC2_VSX),
    191 GEN_XX2FORM(xsrdpip, 0x12, 0x06, PPC2_VSX),
    192 GEN_XX2FORM(xsrdpiz, 0x12, 0x05, PPC2_VSX),
    193 
    194 GEN_XX3FORM(xsaddsp, 0x00, 0x00, PPC2_VSX207),
    195 GEN_XX3FORM(xssubsp, 0x00, 0x01, PPC2_VSX207),
    196 GEN_XX3FORM(xsmulsp, 0x00, 0x02, PPC2_VSX207),
    197 GEN_XX3FORM(xsdivsp, 0x00, 0x03, PPC2_VSX207),
    198 GEN_VSX_XFORM_300(xsdivqp, 0x04, 0x11, 0x0),
    199 GEN_XX2FORM(xsresp,  0x14, 0x01, PPC2_VSX207),
    200 GEN_XX2FORM(xsrsp, 0x12, 0x11, PPC2_VSX207),
    201 GEN_XX2FORM(xssqrtsp,  0x16, 0x00, PPC2_VSX207),
    202 GEN_XX2FORM(xsrsqrtesp,  0x14, 0x00, PPC2_VSX207),
    203 GEN_XX2FORM(xscvsxdsp, 0x10, 0x13, PPC2_VSX207),
    204 GEN_XX2FORM(xscvuxdsp, 0x10, 0x12, PPC2_VSX207),
    205 
    206 GEN_XX3FORM(xvadddp, 0x00, 0x0C, PPC2_VSX),
    207 GEN_XX3FORM(xvsubdp, 0x00, 0x0D, PPC2_VSX),
    208 GEN_XX3FORM(xvmuldp, 0x00, 0x0E, PPC2_VSX),
    209 GEN_XX3FORM(xvdivdp, 0x00, 0x0F, PPC2_VSX),
    210 GEN_XX2FORM(xvredp,  0x14, 0x0D, PPC2_VSX),
    211 GEN_XX2FORM(xvsqrtdp,  0x16, 0x0C, PPC2_VSX),
    212 GEN_XX2FORM(xvrsqrtedp,  0x14, 0x0C, PPC2_VSX),
    213 GEN_XX3FORM(xvtdivdp, 0x14, 0x0F, PPC2_VSX),
    214 GEN_XX2FORM(xvtsqrtdp, 0x14, 0x0E, PPC2_VSX),
    215 GEN_XX3FORM_NAME(xvmadddp, "xvmaddadp", 0x04, 0x0C, PPC2_VSX),
    216 GEN_XX3FORM_NAME(xvmadddp, "xvmaddmdp", 0x04, 0x0D, PPC2_VSX),
    217 GEN_XX3FORM_NAME(xvmsubdp, "xvmsubadp", 0x04, 0x0E, PPC2_VSX),
    218 GEN_XX3FORM_NAME(xvmsubdp, "xvmsubmdp", 0x04, 0x0F, PPC2_VSX),
    219 GEN_XX3FORM_NAME(xvnmadddp, "xvnmaddadp", 0x04, 0x1C, PPC2_VSX),
    220 GEN_XX3FORM_NAME(xvnmadddp, "xvnmaddmdp", 0x04, 0x1D, PPC2_VSX),
    221 GEN_XX3FORM_NAME(xvnmsubdp, "xvnmsubadp", 0x04, 0x1E, PPC2_VSX),
    222 GEN_XX3FORM_NAME(xvnmsubdp, "xvnmsubmdp", 0x04, 0x1F, PPC2_VSX),
    223 GEN_XX3FORM(xvmaxdp, 0x00, 0x1C, PPC2_VSX),
    224 GEN_XX3FORM(xvmindp, 0x00, 0x1D, PPC2_VSX),
    225 GEN_XX3_RC_FORM(xvcmpeqdp, 0x0C, 0x0C, PPC2_VSX),
    226 GEN_XX3_RC_FORM(xvcmpgtdp, 0x0C, 0x0D, PPC2_VSX),
    227 GEN_XX3_RC_FORM(xvcmpgedp, 0x0C, 0x0E, PPC2_VSX),
    228 GEN_XX3_RC_FORM(xvcmpnedp, 0x0C, 0x0F, PPC2_ISA300),
    229 GEN_XX2FORM(xvcvdpsp, 0x12, 0x18, PPC2_VSX),
    230 GEN_XX2FORM(xvcvdpsxds, 0x10, 0x1D, PPC2_VSX),
    231 GEN_XX2FORM(xvcvdpsxws, 0x10, 0x0D, PPC2_VSX),
    232 GEN_XX2FORM(xvcvdpuxds, 0x10, 0x1C, PPC2_VSX),
    233 GEN_XX2FORM(xvcvdpuxws, 0x10, 0x0C, PPC2_VSX),
    234 GEN_XX2FORM(xvcvsxddp, 0x10, 0x1F, PPC2_VSX),
    235 GEN_XX2FORM(xvcvuxddp, 0x10, 0x1E, PPC2_VSX),
    236 GEN_XX2FORM(xvcvsxwdp, 0x10, 0x0F, PPC2_VSX),
    237 GEN_XX2FORM(xvcvuxwdp, 0x10, 0x0E, PPC2_VSX),
    238 GEN_XX2FORM(xvrdpi, 0x12, 0x0C, PPC2_VSX),
    239 GEN_XX2FORM(xvrdpic, 0x16, 0x0E, PPC2_VSX),
    240 GEN_XX2FORM(xvrdpim, 0x12, 0x0F, PPC2_VSX),
    241 GEN_XX2FORM(xvrdpip, 0x12, 0x0E, PPC2_VSX),
    242 GEN_XX2FORM(xvrdpiz, 0x12, 0x0D, PPC2_VSX),
    243 
    244 GEN_XX3FORM(xvaddsp, 0x00, 0x08, PPC2_VSX),
    245 GEN_XX3FORM(xvsubsp, 0x00, 0x09, PPC2_VSX),
    246 GEN_XX3FORM(xvmulsp, 0x00, 0x0A, PPC2_VSX),
    247 GEN_XX3FORM(xvdivsp, 0x00, 0x0B, PPC2_VSX),
    248 GEN_XX2FORM(xvresp, 0x14, 0x09, PPC2_VSX),
    249 GEN_XX2FORM(xvsqrtsp, 0x16, 0x08, PPC2_VSX),
    250 GEN_XX2FORM(xvrsqrtesp, 0x14, 0x08, PPC2_VSX),
    251 GEN_XX3FORM(xvtdivsp, 0x14, 0x0B, PPC2_VSX),
    252 GEN_XX2FORM(xvtsqrtsp, 0x14, 0x0A, PPC2_VSX),
    253 GEN_XX3FORM_NAME(xvmaddsp, "xvmaddasp", 0x04, 0x08, PPC2_VSX),
    254 GEN_XX3FORM_NAME(xvmaddsp, "xvmaddmsp", 0x04, 0x09, PPC2_VSX),
    255 GEN_XX3FORM_NAME(xvmsubsp, "xvmsubasp", 0x04, 0x0A, PPC2_VSX),
    256 GEN_XX3FORM_NAME(xvmsubsp, "xvmsubmsp", 0x04, 0x0B, PPC2_VSX),
    257 GEN_XX3FORM_NAME(xvnmaddsp, "xvnmaddasp", 0x04, 0x18, PPC2_VSX),
    258 GEN_XX3FORM_NAME(xvnmaddsp, "xvnmaddmsp", 0x04, 0x19, PPC2_VSX),
    259 GEN_XX3FORM_NAME(xvnmsubsp, "xvnmsubasp", 0x04, 0x1A, PPC2_VSX),
    260 GEN_XX3FORM_NAME(xvnmsubsp, "xvnmsubmsp", 0x04, 0x1B, PPC2_VSX),
    261 GEN_XX3FORM(xvmaxsp, 0x00, 0x18, PPC2_VSX),
    262 GEN_XX3FORM(xvminsp, 0x00, 0x19, PPC2_VSX),
    263 GEN_XX3_RC_FORM(xvcmpeqsp, 0x0C, 0x08, PPC2_VSX),
    264 GEN_XX3_RC_FORM(xvcmpgtsp, 0x0C, 0x09, PPC2_VSX),
    265 GEN_XX3_RC_FORM(xvcmpgesp, 0x0C, 0x0A, PPC2_VSX),
    266 GEN_XX3_RC_FORM(xvcmpnesp, 0x0C, 0x0B, PPC2_ISA300),
    267 GEN_XX2FORM(xvcvspdp, 0x12, 0x1C, PPC2_VSX),
    268 GEN_XX2FORM(xvcvspsxds, 0x10, 0x19, PPC2_VSX),
    269 GEN_XX2FORM(xvcvspsxws, 0x10, 0x09, PPC2_VSX),
    270 GEN_XX2FORM(xvcvspuxds, 0x10, 0x18, PPC2_VSX),
    271 GEN_XX2FORM(xvcvspuxws, 0x10, 0x08, PPC2_VSX),
    272 GEN_XX2FORM(xvcvsxdsp, 0x10, 0x1B, PPC2_VSX),
    273 GEN_XX2FORM(xvcvuxdsp, 0x10, 0x1A, PPC2_VSX),
    274 GEN_XX2FORM(xvcvsxwsp, 0x10, 0x0B, PPC2_VSX),
    275 GEN_XX2FORM(xvcvuxwsp, 0x10, 0x0A, PPC2_VSX),
    276 GEN_XX2FORM(xvrspi, 0x12, 0x08, PPC2_VSX),
    277 GEN_XX2FORM(xvrspic, 0x16, 0x0A, PPC2_VSX),
    278 GEN_XX2FORM(xvrspim, 0x12, 0x0B, PPC2_VSX),
    279 GEN_XX2FORM(xvrspip, 0x12, 0x0A, PPC2_VSX),
    280 GEN_XX2FORM(xvrspiz, 0x12, 0x09, PPC2_VSX),
    281 GEN_XX2FORM_EO(xxbrh, 0x16, 0x1D, 0x07, PPC2_ISA300),
    282 GEN_XX2FORM_EO(xxbrw, 0x16, 0x1D, 0x0F, PPC2_ISA300),
    283 GEN_XX2FORM_EO(xxbrd, 0x16, 0x1D, 0x17, PPC2_ISA300),
    284 GEN_XX2FORM_EO(xvcvhpsp, 0x16, 0x1D, 0x18, PPC2_ISA300),
    285 GEN_XX2FORM_EO(xvcvsphp, 0x16, 0x1D, 0x19, PPC2_ISA300),
    286 GEN_XX2FORM_EO(xxbrq, 0x16, 0x1D, 0x1F, PPC2_ISA300),
    287 
    288 #define VSX_LOGICAL(name, opc2, opc3, fl2) \
    289 GEN_XX3FORM(name, opc2, opc3, fl2)
    290 
    291 VSX_LOGICAL(xxland, 0x8, 0x10, PPC2_VSX),
    292 VSX_LOGICAL(xxlandc, 0x8, 0x11, PPC2_VSX),
    293 VSX_LOGICAL(xxlor, 0x8, 0x12, PPC2_VSX),
    294 VSX_LOGICAL(xxlxor, 0x8, 0x13, PPC2_VSX),
    295 VSX_LOGICAL(xxlnor, 0x8, 0x14, PPC2_VSX),
    296 VSX_LOGICAL(xxleqv, 0x8, 0x17, PPC2_VSX207),
    297 VSX_LOGICAL(xxlnand, 0x8, 0x16, PPC2_VSX207),
    298 VSX_LOGICAL(xxlorc, 0x8, 0x15, PPC2_VSX207),
    299 GEN_XX3FORM(xxmrghw, 0x08, 0x02, PPC2_VSX),
    300 GEN_XX3FORM(xxmrglw, 0x08, 0x06, PPC2_VSX),
    301 GEN_XX3FORM_DM(xxsldwi, 0x08, 0x00),