github.com/goccy/go-jit@v0.0.0-20200514131505-ff78d45cf6af/internal/ccall/include/jit/jit-opcode.h (about)

     1  /* Automatically generated from ../../jit/jit-opcodes.ops - DO NOT EDIT */
     2  
     3  /*
     4   * jit-opcode.h - List of primitive opcodes for JIT instructions.
     5   *
     6   * Copyright (C) 2004  Southern Storm Software, Pty Ltd.
     7   *
     8   * The libjit library is free software: you can redistribute it and/or
     9   * modify it under the terms of the GNU Lesser General Public License
    10   * as published by the Free Software Foundation, either version 2.1 of
    11   * the License, or (at your option) any later version.
    12   *
    13   * The libjit library is distributed in the hope that it will be useful,
    14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
    15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    16   * Lesser General Public License for more details.
    17   *
    18   * You should have received a copy of the GNU Lesser General Public
    19   * License along with the libjit library.  If not, see
    20   * <http://www.gnu.org/licenses/>.
    21   */
    22  
    23  #ifndef	_JIT_OPCODE_H
    24  #define	_JIT_OPCODE_H
    25  
    26  #include <jit/jit-defs.h>
    27  
    28  #ifdef	__cplusplus
    29  extern	"C" {
    30  #endif
    31  
    32  #define	JIT_OP_NOP						0x0000
    33  #define	JIT_OP_TRUNC_SBYTE					0x0001
    34  #define	JIT_OP_TRUNC_UBYTE					0x0002
    35  #define	JIT_OP_TRUNC_SHORT					0x0003
    36  #define	JIT_OP_TRUNC_USHORT					0x0004
    37  #define	JIT_OP_TRUNC_INT					0x0005
    38  #define	JIT_OP_TRUNC_UINT					0x0006
    39  #define	JIT_OP_CHECK_SBYTE					0x0007
    40  #define	JIT_OP_CHECK_UBYTE					0x0008
    41  #define	JIT_OP_CHECK_SHORT					0x0009
    42  #define	JIT_OP_CHECK_USHORT					0x000A
    43  #define	JIT_OP_CHECK_INT					0x000B
    44  #define	JIT_OP_CHECK_UINT					0x000C
    45  #define	JIT_OP_LOW_WORD						0x000D
    46  #define	JIT_OP_EXPAND_INT					0x000E
    47  #define	JIT_OP_EXPAND_UINT					0x000F
    48  #define	JIT_OP_CHECK_LOW_WORD					0x0010
    49  #define	JIT_OP_CHECK_SIGNED_LOW_WORD				0x0011
    50  #define	JIT_OP_CHECK_LONG					0x0012
    51  #define	JIT_OP_CHECK_ULONG					0x0013
    52  #define	JIT_OP_FLOAT32_TO_INT					0x0014
    53  #define	JIT_OP_FLOAT32_TO_UINT					0x0015
    54  #define	JIT_OP_FLOAT32_TO_LONG					0x0016
    55  #define	JIT_OP_FLOAT32_TO_ULONG					0x0017
    56  #define	JIT_OP_CHECK_FLOAT32_TO_INT				0x0018
    57  #define	JIT_OP_CHECK_FLOAT32_TO_UINT				0x0019
    58  #define	JIT_OP_CHECK_FLOAT32_TO_LONG				0x001A
    59  #define	JIT_OP_CHECK_FLOAT32_TO_ULONG				0x001B
    60  #define	JIT_OP_INT_TO_FLOAT32					0x001C
    61  #define	JIT_OP_UINT_TO_FLOAT32					0x001D
    62  #define	JIT_OP_LONG_TO_FLOAT32					0x001E
    63  #define	JIT_OP_ULONG_TO_FLOAT32					0x001F
    64  #define	JIT_OP_FLOAT32_TO_FLOAT64				0x0020
    65  #define	JIT_OP_FLOAT64_TO_INT					0x0021
    66  #define	JIT_OP_FLOAT64_TO_UINT					0x0022
    67  #define	JIT_OP_FLOAT64_TO_LONG					0x0023
    68  #define	JIT_OP_FLOAT64_TO_ULONG					0x0024
    69  #define	JIT_OP_CHECK_FLOAT64_TO_INT				0x0025
    70  #define	JIT_OP_CHECK_FLOAT64_TO_UINT				0x0026
    71  #define	JIT_OP_CHECK_FLOAT64_TO_LONG				0x0027
    72  #define	JIT_OP_CHECK_FLOAT64_TO_ULONG				0x0028
    73  #define	JIT_OP_INT_TO_FLOAT64					0x0029
    74  #define	JIT_OP_UINT_TO_FLOAT64					0x002A
    75  #define	JIT_OP_LONG_TO_FLOAT64					0x002B
    76  #define	JIT_OP_ULONG_TO_FLOAT64					0x002C
    77  #define	JIT_OP_FLOAT64_TO_FLOAT32				0x002D
    78  #define	JIT_OP_NFLOAT_TO_INT					0x002E
    79  #define	JIT_OP_NFLOAT_TO_UINT					0x002F
    80  #define	JIT_OP_NFLOAT_TO_LONG					0x0030
    81  #define	JIT_OP_NFLOAT_TO_ULONG					0x0031
    82  #define	JIT_OP_CHECK_NFLOAT_TO_INT				0x0032
    83  #define	JIT_OP_CHECK_NFLOAT_TO_UINT				0x0033
    84  #define	JIT_OP_CHECK_NFLOAT_TO_LONG				0x0034
    85  #define	JIT_OP_CHECK_NFLOAT_TO_ULONG				0x0035
    86  #define	JIT_OP_INT_TO_NFLOAT					0x0036
    87  #define	JIT_OP_UINT_TO_NFLOAT					0x0037
    88  #define	JIT_OP_LONG_TO_NFLOAT					0x0038
    89  #define	JIT_OP_ULONG_TO_NFLOAT					0x0039
    90  #define	JIT_OP_NFLOAT_TO_FLOAT32				0x003A
    91  #define	JIT_OP_NFLOAT_TO_FLOAT64				0x003B
    92  #define	JIT_OP_FLOAT32_TO_NFLOAT				0x003C
    93  #define	JIT_OP_FLOAT64_TO_NFLOAT				0x003D
    94  #define	JIT_OP_IADD						0x003E
    95  #define	JIT_OP_IADD_OVF						0x003F
    96  #define	JIT_OP_IADD_OVF_UN					0x0040
    97  #define	JIT_OP_ISUB						0x0041
    98  #define	JIT_OP_ISUB_OVF						0x0042
    99  #define	JIT_OP_ISUB_OVF_UN					0x0043
   100  #define	JIT_OP_IMUL						0x0044
   101  #define	JIT_OP_IMUL_OVF						0x0045
   102  #define	JIT_OP_IMUL_OVF_UN					0x0046
   103  #define	JIT_OP_IDIV						0x0047
   104  #define	JIT_OP_IDIV_UN						0x0048
   105  #define	JIT_OP_IREM						0x0049
   106  #define	JIT_OP_IREM_UN						0x004A
   107  #define	JIT_OP_INEG						0x004B
   108  #define	JIT_OP_LADD						0x004C
   109  #define	JIT_OP_LADD_OVF						0x004D
   110  #define	JIT_OP_LADD_OVF_UN					0x004E
   111  #define	JIT_OP_LSUB						0x004F
   112  #define	JIT_OP_LSUB_OVF						0x0050
   113  #define	JIT_OP_LSUB_OVF_UN					0x0051
   114  #define	JIT_OP_LMUL						0x0052
   115  #define	JIT_OP_LMUL_OVF						0x0053
   116  #define	JIT_OP_LMUL_OVF_UN					0x0054
   117  #define	JIT_OP_LDIV						0x0055
   118  #define	JIT_OP_LDIV_UN						0x0056
   119  #define	JIT_OP_LREM						0x0057
   120  #define	JIT_OP_LREM_UN						0x0058
   121  #define	JIT_OP_LNEG						0x0059
   122  #define	JIT_OP_FADD						0x005A
   123  #define	JIT_OP_FSUB						0x005B
   124  #define	JIT_OP_FMUL						0x005C
   125  #define	JIT_OP_FDIV						0x005D
   126  #define	JIT_OP_FREM						0x005E
   127  #define	JIT_OP_FREM_IEEE					0x005F
   128  #define	JIT_OP_FNEG						0x0060
   129  #define	JIT_OP_DADD						0x0061
   130  #define	JIT_OP_DSUB						0x0062
   131  #define	JIT_OP_DMUL						0x0063
   132  #define	JIT_OP_DDIV						0x0064
   133  #define	JIT_OP_DREM						0x0065
   134  #define	JIT_OP_DREM_IEEE					0x0066
   135  #define	JIT_OP_DNEG						0x0067
   136  #define	JIT_OP_NFADD						0x0068
   137  #define	JIT_OP_NFSUB						0x0069
   138  #define	JIT_OP_NFMUL						0x006A
   139  #define	JIT_OP_NFDIV						0x006B
   140  #define	JIT_OP_NFREM						0x006C
   141  #define	JIT_OP_NFREM_IEEE					0x006D
   142  #define	JIT_OP_NFNEG						0x006E
   143  #define	JIT_OP_IAND						0x006F
   144  #define	JIT_OP_IOR						0x0070
   145  #define	JIT_OP_IXOR						0x0071
   146  #define	JIT_OP_INOT						0x0072
   147  #define	JIT_OP_ISHL						0x0073
   148  #define	JIT_OP_ISHR						0x0074
   149  #define	JIT_OP_ISHR_UN						0x0075
   150  #define	JIT_OP_LAND						0x0076
   151  #define	JIT_OP_LOR						0x0077
   152  #define	JIT_OP_LXOR						0x0078
   153  #define	JIT_OP_LNOT						0x0079
   154  #define	JIT_OP_LSHL						0x007A
   155  #define	JIT_OP_LSHR						0x007B
   156  #define	JIT_OP_LSHR_UN						0x007C
   157  #define	JIT_OP_BR						0x007D
   158  #define	JIT_OP_BR_IFALSE					0x007E
   159  #define	JIT_OP_BR_ITRUE						0x007F
   160  #define	JIT_OP_BR_IEQ						0x0080
   161  #define	JIT_OP_BR_INE						0x0081
   162  #define	JIT_OP_BR_ILT						0x0082
   163  #define	JIT_OP_BR_ILT_UN					0x0083
   164  #define	JIT_OP_BR_ILE						0x0084
   165  #define	JIT_OP_BR_ILE_UN					0x0085
   166  #define	JIT_OP_BR_IGT						0x0086
   167  #define	JIT_OP_BR_IGT_UN					0x0087
   168  #define	JIT_OP_BR_IGE						0x0088
   169  #define	JIT_OP_BR_IGE_UN					0x0089
   170  #define	JIT_OP_BR_LFALSE					0x008A
   171  #define	JIT_OP_BR_LTRUE						0x008B
   172  #define	JIT_OP_BR_LEQ						0x008C
   173  #define	JIT_OP_BR_LNE						0x008D
   174  #define	JIT_OP_BR_LLT						0x008E
   175  #define	JIT_OP_BR_LLT_UN					0x008F
   176  #define	JIT_OP_BR_LLE						0x0090
   177  #define	JIT_OP_BR_LLE_UN					0x0091
   178  #define	JIT_OP_BR_LGT						0x0092
   179  #define	JIT_OP_BR_LGT_UN					0x0093
   180  #define	JIT_OP_BR_LGE						0x0094
   181  #define	JIT_OP_BR_LGE_UN					0x0095
   182  #define	JIT_OP_BR_FEQ						0x0096
   183  #define	JIT_OP_BR_FNE						0x0097
   184  #define	JIT_OP_BR_FLT						0x0098
   185  #define	JIT_OP_BR_FLE						0x0099
   186  #define	JIT_OP_BR_FGT						0x009A
   187  #define	JIT_OP_BR_FGE						0x009B
   188  #define	JIT_OP_BR_FLT_INV					0x009C
   189  #define	JIT_OP_BR_FLE_INV					0x009D
   190  #define	JIT_OP_BR_FGT_INV					0x009E
   191  #define	JIT_OP_BR_FGE_INV					0x009F
   192  #define	JIT_OP_BR_DEQ						0x00A0
   193  #define	JIT_OP_BR_DNE						0x00A1
   194  #define	JIT_OP_BR_DLT						0x00A2
   195  #define	JIT_OP_BR_DLE						0x00A3
   196  #define	JIT_OP_BR_DGT						0x00A4
   197  #define	JIT_OP_BR_DGE						0x00A5
   198  #define	JIT_OP_BR_DLT_INV					0x00A6
   199  #define	JIT_OP_BR_DLE_INV					0x00A7
   200  #define	JIT_OP_BR_DGT_INV					0x00A8
   201  #define	JIT_OP_BR_DGE_INV					0x00A9
   202  #define	JIT_OP_BR_NFEQ						0x00AA
   203  #define	JIT_OP_BR_NFNE						0x00AB
   204  #define	JIT_OP_BR_NFLT						0x00AC
   205  #define	JIT_OP_BR_NFLE						0x00AD
   206  #define	JIT_OP_BR_NFGT						0x00AE
   207  #define	JIT_OP_BR_NFGE						0x00AF
   208  #define	JIT_OP_BR_NFLT_INV					0x00B0
   209  #define	JIT_OP_BR_NFLE_INV					0x00B1
   210  #define	JIT_OP_BR_NFGT_INV					0x00B2
   211  #define	JIT_OP_BR_NFGE_INV					0x00B3
   212  #define	JIT_OP_ICMP						0x00B4
   213  #define	JIT_OP_ICMP_UN						0x00B5
   214  #define	JIT_OP_LCMP						0x00B6
   215  #define	JIT_OP_LCMP_UN						0x00B7
   216  #define	JIT_OP_FCMPL						0x00B8
   217  #define	JIT_OP_FCMPG						0x00B9
   218  #define	JIT_OP_DCMPL						0x00BA
   219  #define	JIT_OP_DCMPG						0x00BB
   220  #define	JIT_OP_NFCMPL						0x00BC
   221  #define	JIT_OP_NFCMPG						0x00BD
   222  #define	JIT_OP_IEQ						0x00BE
   223  #define	JIT_OP_INE						0x00BF
   224  #define	JIT_OP_ILT						0x00C0
   225  #define	JIT_OP_ILT_UN						0x00C1
   226  #define	JIT_OP_ILE						0x00C2
   227  #define	JIT_OP_ILE_UN						0x00C3
   228  #define	JIT_OP_IGT						0x00C4
   229  #define	JIT_OP_IGT_UN						0x00C5
   230  #define	JIT_OP_IGE						0x00C6
   231  #define	JIT_OP_IGE_UN						0x00C7
   232  #define	JIT_OP_LEQ						0x00C8
   233  #define	JIT_OP_LNE						0x00C9
   234  #define	JIT_OP_LLT						0x00CA
   235  #define	JIT_OP_LLT_UN						0x00CB
   236  #define	JIT_OP_LLE						0x00CC
   237  #define	JIT_OP_LLE_UN						0x00CD
   238  #define	JIT_OP_LGT						0x00CE
   239  #define	JIT_OP_LGT_UN						0x00CF
   240  #define	JIT_OP_LGE						0x00D0
   241  #define	JIT_OP_LGE_UN						0x00D1
   242  #define	JIT_OP_FEQ						0x00D2
   243  #define	JIT_OP_FNE						0x00D3
   244  #define	JIT_OP_FLT						0x00D4
   245  #define	JIT_OP_FLE						0x00D5
   246  #define	JIT_OP_FGT						0x00D6
   247  #define	JIT_OP_FGE						0x00D7
   248  #define	JIT_OP_FLT_INV						0x00D8
   249  #define	JIT_OP_FLE_INV						0x00D9
   250  #define	JIT_OP_FGT_INV						0x00DA
   251  #define	JIT_OP_FGE_INV						0x00DB
   252  #define	JIT_OP_DEQ						0x00DC
   253  #define	JIT_OP_DNE						0x00DD
   254  #define	JIT_OP_DLT						0x00DE
   255  #define	JIT_OP_DLE						0x00DF
   256  #define	JIT_OP_DGT						0x00E0
   257  #define	JIT_OP_DGE						0x00E1
   258  #define	JIT_OP_DLT_INV						0x00E2
   259  #define	JIT_OP_DLE_INV						0x00E3
   260  #define	JIT_OP_DGT_INV						0x00E4
   261  #define	JIT_OP_DGE_INV						0x00E5
   262  #define	JIT_OP_NFEQ						0x00E6
   263  #define	JIT_OP_NFNE						0x00E7
   264  #define	JIT_OP_NFLT						0x00E8
   265  #define	JIT_OP_NFLE						0x00E9
   266  #define	JIT_OP_NFGT						0x00EA
   267  #define	JIT_OP_NFGE						0x00EB
   268  #define	JIT_OP_NFLT_INV						0x00EC
   269  #define	JIT_OP_NFLE_INV						0x00ED
   270  #define	JIT_OP_NFGT_INV						0x00EE
   271  #define	JIT_OP_NFGE_INV						0x00EF
   272  #define	JIT_OP_IS_FNAN						0x00F0
   273  #define	JIT_OP_IS_FINF						0x00F1
   274  #define	JIT_OP_IS_FFINITE					0x00F2
   275  #define	JIT_OP_IS_DNAN						0x00F3
   276  #define	JIT_OP_IS_DINF						0x00F4
   277  #define	JIT_OP_IS_DFINITE					0x00F5
   278  #define	JIT_OP_IS_NFNAN						0x00F6
   279  #define	JIT_OP_IS_NFINF						0x00F7
   280  #define	JIT_OP_IS_NFFINITE					0x00F8
   281  #define	JIT_OP_FACOS						0x00F9
   282  #define	JIT_OP_FASIN						0x00FA
   283  #define	JIT_OP_FATAN						0x00FB
   284  #define	JIT_OP_FATAN2						0x00FC
   285  #define	JIT_OP_FCEIL						0x00FD
   286  #define	JIT_OP_FCOS						0x00FE
   287  #define	JIT_OP_FCOSH						0x00FF
   288  #define	JIT_OP_FEXP						0x0100
   289  #define	JIT_OP_FFLOOR						0x0101
   290  #define	JIT_OP_FLOG						0x0102
   291  #define	JIT_OP_FLOG10						0x0103
   292  #define	JIT_OP_FPOW						0x0104
   293  #define	JIT_OP_FRINT						0x0105
   294  #define	JIT_OP_FROUND						0x0106
   295  #define	JIT_OP_FSIN						0x0107
   296  #define	JIT_OP_FSINH						0x0108
   297  #define	JIT_OP_FSQRT						0x0109
   298  #define	JIT_OP_FTAN						0x010A
   299  #define	JIT_OP_FTANH						0x010B
   300  #define	JIT_OP_FTRUNC						0x010C
   301  #define	JIT_OP_DACOS						0x010D
   302  #define	JIT_OP_DASIN						0x010E
   303  #define	JIT_OP_DATAN						0x010F
   304  #define	JIT_OP_DATAN2						0x0110
   305  #define	JIT_OP_DCEIL						0x0111
   306  #define	JIT_OP_DCOS						0x0112
   307  #define	JIT_OP_DCOSH						0x0113
   308  #define	JIT_OP_DEXP						0x0114
   309  #define	JIT_OP_DFLOOR						0x0115
   310  #define	JIT_OP_DLOG						0x0116
   311  #define	JIT_OP_DLOG10						0x0117
   312  #define	JIT_OP_DPOW						0x0118
   313  #define	JIT_OP_DRINT						0x0119
   314  #define	JIT_OP_DROUND						0x011A
   315  #define	JIT_OP_DSIN						0x011B
   316  #define	JIT_OP_DSINH						0x011C
   317  #define	JIT_OP_DSQRT						0x011D
   318  #define	JIT_OP_DTAN						0x011E
   319  #define	JIT_OP_DTANH						0x011F
   320  #define	JIT_OP_DTRUNC						0x0120
   321  #define	JIT_OP_NFACOS						0x0121
   322  #define	JIT_OP_NFASIN						0x0122
   323  #define	JIT_OP_NFATAN						0x0123
   324  #define	JIT_OP_NFATAN2						0x0124
   325  #define	JIT_OP_NFCEIL						0x0125
   326  #define	JIT_OP_NFCOS						0x0126
   327  #define	JIT_OP_NFCOSH						0x0127
   328  #define	JIT_OP_NFEXP						0x0128
   329  #define	JIT_OP_NFFLOOR						0x0129
   330  #define	JIT_OP_NFLOG						0x012A
   331  #define	JIT_OP_NFLOG10						0x012B
   332  #define	JIT_OP_NFPOW						0x012C
   333  #define	JIT_OP_NFRINT						0x012D
   334  #define	JIT_OP_NFROUND						0x012E
   335  #define	JIT_OP_NFSIN						0x012F
   336  #define	JIT_OP_NFSINH						0x0130
   337  #define	JIT_OP_NFSQRT						0x0131
   338  #define	JIT_OP_NFTAN						0x0132
   339  #define	JIT_OP_NFTANH						0x0133
   340  #define	JIT_OP_NFTRUNC						0x0134
   341  #define	JIT_OP_IABS						0x0135
   342  #define	JIT_OP_LABS						0x0136
   343  #define	JIT_OP_FABS						0x0137
   344  #define	JIT_OP_DABS						0x0138
   345  #define	JIT_OP_NFABS						0x0139
   346  #define	JIT_OP_IMIN						0x013A
   347  #define	JIT_OP_IMIN_UN						0x013B
   348  #define	JIT_OP_LMIN						0x013C
   349  #define	JIT_OP_LMIN_UN						0x013D
   350  #define	JIT_OP_FMIN						0x013E
   351  #define	JIT_OP_DMIN						0x013F
   352  #define	JIT_OP_NFMIN						0x0140
   353  #define	JIT_OP_IMAX						0x0141
   354  #define	JIT_OP_IMAX_UN						0x0142
   355  #define	JIT_OP_LMAX						0x0143
   356  #define	JIT_OP_LMAX_UN						0x0144
   357  #define	JIT_OP_FMAX						0x0145
   358  #define	JIT_OP_DMAX						0x0146
   359  #define	JIT_OP_NFMAX						0x0147
   360  #define	JIT_OP_ISIGN						0x0148
   361  #define	JIT_OP_LSIGN						0x0149
   362  #define	JIT_OP_FSIGN						0x014A
   363  #define	JIT_OP_DSIGN						0x014B
   364  #define	JIT_OP_NFSIGN						0x014C
   365  #define	JIT_OP_CHECK_NULL					0x014D
   366  #define	JIT_OP_CALL						0x014E
   367  #define	JIT_OP_CALL_TAIL					0x014F
   368  #define	JIT_OP_CALL_INDIRECT					0x0150
   369  #define	JIT_OP_CALL_INDIRECT_TAIL				0x0151
   370  #define	JIT_OP_CALL_VTABLE_PTR					0x0152
   371  #define	JIT_OP_CALL_VTABLE_PTR_TAIL				0x0153
   372  #define	JIT_OP_CALL_EXTERNAL					0x0154
   373  #define	JIT_OP_CALL_EXTERNAL_TAIL				0x0155
   374  #define	JIT_OP_RETURN						0x0156
   375  #define	JIT_OP_RETURN_INT					0x0157
   376  #define	JIT_OP_RETURN_LONG					0x0158
   377  #define	JIT_OP_RETURN_FLOAT32					0x0159
   378  #define	JIT_OP_RETURN_FLOAT64					0x015A
   379  #define	JIT_OP_RETURN_NFLOAT					0x015B
   380  #define	JIT_OP_RETURN_SMALL_STRUCT				0x015C
   381  #define	JIT_OP_IMPORT						0x015D
   382  #define	JIT_OP_THROW						0x015E
   383  #define	JIT_OP_RETHROW						0x015F
   384  #define	JIT_OP_LOAD_PC						0x0160
   385  #define	JIT_OP_LOAD_EXCEPTION_PC				0x0161
   386  #define	JIT_OP_ENTER_FINALLY					0x0162
   387  #define	JIT_OP_LEAVE_FINALLY					0x0163
   388  #define	JIT_OP_CALL_FINALLY					0x0164
   389  #define	JIT_OP_ENTER_FILTER					0x0165
   390  #define	JIT_OP_LEAVE_FILTER					0x0166
   391  #define	JIT_OP_CALL_FILTER					0x0167
   392  #define	JIT_OP_CALL_FILTER_RETURN				0x0168
   393  #define	JIT_OP_ADDRESS_OF_LABEL					0x0169
   394  #define	JIT_OP_COPY_LOAD_SBYTE					0x016A
   395  #define	JIT_OP_COPY_LOAD_UBYTE					0x016B
   396  #define	JIT_OP_COPY_LOAD_SHORT					0x016C
   397  #define	JIT_OP_COPY_LOAD_USHORT					0x016D
   398  #define	JIT_OP_COPY_INT						0x016E
   399  #define	JIT_OP_COPY_LONG					0x016F
   400  #define	JIT_OP_COPY_FLOAT32					0x0170
   401  #define	JIT_OP_COPY_FLOAT64					0x0171
   402  #define	JIT_OP_COPY_NFLOAT					0x0172
   403  #define	JIT_OP_COPY_STRUCT					0x0173
   404  #define	JIT_OP_COPY_STORE_BYTE					0x0174
   405  #define	JIT_OP_COPY_STORE_SHORT					0x0175
   406  #define	JIT_OP_ADDRESS_OF					0x0176
   407  #define	JIT_OP_INCOMING_REG					0x0177
   408  #define	JIT_OP_INCOMING_FRAME_POSN				0x0178
   409  #define	JIT_OP_OUTGOING_REG					0x0179
   410  #define	JIT_OP_RETURN_REG					0x017A
   411  #define	JIT_OP_RETRIEVE_FRAME_POINTER				0x017B
   412  #define	JIT_OP_PUSH_INT						0x017C
   413  #define	JIT_OP_PUSH_LONG					0x017D
   414  #define	JIT_OP_PUSH_FLOAT32					0x017E
   415  #define	JIT_OP_PUSH_FLOAT64					0x017F
   416  #define	JIT_OP_PUSH_NFLOAT					0x0180
   417  #define	JIT_OP_PUSH_STRUCT					0x0181
   418  #define	JIT_OP_POP_STACK					0x0182
   419  #define	JIT_OP_FLUSH_SMALL_STRUCT				0x0183
   420  #define	JIT_OP_SET_PARAM_INT					0x0184
   421  #define	JIT_OP_SET_PARAM_LONG					0x0185
   422  #define	JIT_OP_SET_PARAM_FLOAT32				0x0186
   423  #define	JIT_OP_SET_PARAM_FLOAT64				0x0187
   424  #define	JIT_OP_SET_PARAM_NFLOAT					0x0188
   425  #define	JIT_OP_SET_PARAM_STRUCT					0x0189
   426  #define	JIT_OP_PUSH_RETURN_AREA_PTR				0x018A
   427  #define	JIT_OP_LOAD_RELATIVE_SBYTE				0x018B
   428  #define	JIT_OP_LOAD_RELATIVE_UBYTE				0x018C
   429  #define	JIT_OP_LOAD_RELATIVE_SHORT				0x018D
   430  #define	JIT_OP_LOAD_RELATIVE_USHORT				0x018E
   431  #define	JIT_OP_LOAD_RELATIVE_INT				0x018F
   432  #define	JIT_OP_LOAD_RELATIVE_LONG				0x0190
   433  #define	JIT_OP_LOAD_RELATIVE_FLOAT32				0x0191
   434  #define	JIT_OP_LOAD_RELATIVE_FLOAT64				0x0192
   435  #define	JIT_OP_LOAD_RELATIVE_NFLOAT				0x0193
   436  #define	JIT_OP_LOAD_RELATIVE_STRUCT				0x0194
   437  #define	JIT_OP_STORE_RELATIVE_BYTE				0x0195
   438  #define	JIT_OP_STORE_RELATIVE_SHORT				0x0196
   439  #define	JIT_OP_STORE_RELATIVE_INT				0x0197
   440  #define	JIT_OP_STORE_RELATIVE_LONG				0x0198
   441  #define	JIT_OP_STORE_RELATIVE_FLOAT32				0x0199
   442  #define	JIT_OP_STORE_RELATIVE_FLOAT64				0x019A
   443  #define	JIT_OP_STORE_RELATIVE_NFLOAT				0x019B
   444  #define	JIT_OP_STORE_RELATIVE_STRUCT				0x019C
   445  #define	JIT_OP_ADD_RELATIVE					0x019D
   446  #define	JIT_OP_LOAD_ELEMENT_SBYTE				0x019E
   447  #define	JIT_OP_LOAD_ELEMENT_UBYTE				0x019F
   448  #define	JIT_OP_LOAD_ELEMENT_SHORT				0x01A0
   449  #define	JIT_OP_LOAD_ELEMENT_USHORT				0x01A1
   450  #define	JIT_OP_LOAD_ELEMENT_INT					0x01A2
   451  #define	JIT_OP_LOAD_ELEMENT_LONG				0x01A3
   452  #define	JIT_OP_LOAD_ELEMENT_FLOAT32				0x01A4
   453  #define	JIT_OP_LOAD_ELEMENT_FLOAT64				0x01A5
   454  #define	JIT_OP_LOAD_ELEMENT_NFLOAT				0x01A6
   455  #define	JIT_OP_STORE_ELEMENT_BYTE				0x01A7
   456  #define	JIT_OP_STORE_ELEMENT_SHORT				0x01A8
   457  #define	JIT_OP_STORE_ELEMENT_INT				0x01A9
   458  #define	JIT_OP_STORE_ELEMENT_LONG				0x01AA
   459  #define	JIT_OP_STORE_ELEMENT_FLOAT32				0x01AB
   460  #define	JIT_OP_STORE_ELEMENT_FLOAT64				0x01AC
   461  #define	JIT_OP_STORE_ELEMENT_NFLOAT				0x01AD
   462  #define	JIT_OP_MEMCPY						0x01AE
   463  #define	JIT_OP_MEMMOVE						0x01AF
   464  #define	JIT_OP_MEMSET						0x01B0
   465  #define	JIT_OP_ALLOCA						0x01B1
   466  #define	JIT_OP_MARK_OFFSET					0x01B2
   467  #define	JIT_OP_MARK_BREAKPOINT					0x01B3
   468  #define	JIT_OP_JUMP_TABLE					0x01B4
   469  #define	JIT_OP_NUM_OPCODES					0x01B5
   470  
   471  /*
   472   * Opcode information.
   473   */
   474  typedef struct jit_opcode_info jit_opcode_info_t;
   475  struct jit_opcode_info
   476  {
   477  	const char *name;
   478    int		flags;
   479  };
   480  #define	JIT_OPCODE_DEST_MASK			0x0000000F
   481  #define	JIT_OPCODE_DEST_EMPTY			0x00000000
   482  #define	JIT_OPCODE_DEST_INT				0x00000001
   483  #define	JIT_OPCODE_DEST_LONG			0x00000002
   484  #define	JIT_OPCODE_DEST_FLOAT32			0x00000003
   485  #define	JIT_OPCODE_DEST_FLOAT64			0x00000004
   486  #define	JIT_OPCODE_DEST_NFLOAT			0x00000005
   487  #define	JIT_OPCODE_DEST_ANY				0x00000006
   488  #define	JIT_OPCODE_SRC1_MASK			0x000000F0
   489  #define	JIT_OPCODE_SRC1_EMPTY			0x00000000
   490  #define	JIT_OPCODE_SRC1_INT				0x00000010
   491  #define	JIT_OPCODE_SRC1_LONG			0x00000020
   492  #define	JIT_OPCODE_SRC1_FLOAT32			0x00000030
   493  #define	JIT_OPCODE_SRC1_FLOAT64			0x00000040
   494  #define	JIT_OPCODE_SRC1_NFLOAT			0x00000050
   495  #define	JIT_OPCODE_SRC1_ANY				0x00000060
   496  #define	JIT_OPCODE_SRC2_MASK			0x00000F00
   497  #define	JIT_OPCODE_SRC2_EMPTY			0x00000000
   498  #define	JIT_OPCODE_SRC2_INT				0x00000100
   499  #define	JIT_OPCODE_SRC2_LONG			0x00000200
   500  #define	JIT_OPCODE_SRC2_FLOAT32			0x00000300
   501  #define	JIT_OPCODE_SRC2_FLOAT64			0x00000400
   502  #define	JIT_OPCODE_SRC2_NFLOAT			0x00000500
   503  #define	JIT_OPCODE_SRC2_ANY				0x00000600
   504  #define	JIT_OPCODE_IS_BRANCH			0x00001000
   505  #define	JIT_OPCODE_IS_CALL				0x00002000
   506  #define	JIT_OPCODE_IS_CALL_EXTERNAL		0x00004000
   507  #define	JIT_OPCODE_IS_REG				0x00008000
   508  #define	JIT_OPCODE_IS_ADDROF_LABEL		0x00010000
   509  #define JIT_OPCODE_IS_JUMP_TABLE		0x00020000
   510  #define	JIT_OPCODE_OPER_MASK			0x01F00000
   511  #define	JIT_OPCODE_OPER_NONE			0x00000000
   512  #define	JIT_OPCODE_OPER_ADD				0x00100000
   513  #define	JIT_OPCODE_OPER_SUB				0x00200000
   514  #define	JIT_OPCODE_OPER_MUL				0x00300000
   515  #define	JIT_OPCODE_OPER_DIV				0x00400000
   516  #define	JIT_OPCODE_OPER_REM				0x00500000
   517  #define	JIT_OPCODE_OPER_NEG				0x00600000
   518  #define	JIT_OPCODE_OPER_AND				0x00700000
   519  #define	JIT_OPCODE_OPER_OR				0x00800000
   520  #define	JIT_OPCODE_OPER_XOR				0x00900000
   521  #define	JIT_OPCODE_OPER_NOT				0x00A00000
   522  #define	JIT_OPCODE_OPER_EQ				0x00B00000
   523  #define	JIT_OPCODE_OPER_NE				0x00C00000
   524  #define	JIT_OPCODE_OPER_LT				0x00D00000
   525  #define	JIT_OPCODE_OPER_LE				0x00E00000
   526  #define	JIT_OPCODE_OPER_GT				0x00F00000
   527  #define	JIT_OPCODE_OPER_GE				0x01000000
   528  #define	JIT_OPCODE_OPER_SHL				0x01100000
   529  #define	JIT_OPCODE_OPER_SHR				0x01200000
   530  #define	JIT_OPCODE_OPER_SHR_UN			0x01300000
   531  #define	JIT_OPCODE_OPER_COPY			0x01400000
   532  #define	JIT_OPCODE_OPER_ADDRESS_OF		0x01500000
   533  #ifdef JIT_NATIVE_INT32
   534  #define	JIT_OPCODE_DEST_PTR				JIT_OPCODE_DEST_INT
   535  #define	JIT_OPCODE_SRC1_PTR				JIT_OPCODE_SRC1_INT
   536  #define	JIT_OPCODE_SRC2_PTR				JIT_OPCODE_SRC2_INT
   537  #else
   538  #define	JIT_OPCODE_DEST_PTR				JIT_OPCODE_DEST_LONG
   539  #define	JIT_OPCODE_SRC1_PTR				JIT_OPCODE_SRC1_LONG
   540  #define	JIT_OPCODE_SRC2_PTR				JIT_OPCODE_SRC2_LONG
   541  #endif
   542  JIT_EXPORT_DATA jit_opcode_info_t const jit_opcodes[JIT_OP_NUM_OPCODES];
   543  
   544  #include "jit/jit-opcode-compat.h"
   545  
   546  #ifdef	__cplusplus
   547  };
   548  #endif
   549  
   550  #endif /* _JIT_OPCODE_H */