libjit-sys 0.2.1

Just-In-Time Compilation in Rust using LibJIT bindings
Documentation
/* Automatically generated from ./jit-interp-opcodes.ops - DO NOT EDIT */

/*
 * jit-interp-opcode.h - List of interpreter specific opcodes for
 *			 JIT instructions.
 *
 * Copyright (C) 2004  Southern Storm Software, Pty Ltd.
 *
 * The libjit library is free software: you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation, either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * The libjit library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with the libjit library.  If not, see
 * <http://www.gnu.org/licenses/>.
 */

#ifndef	_JIT_INTERP_OPCODE_H
#define	_JIT_INTERP_OPCODE_H

#include <jit/jit-defs.h>

#ifdef	__cplusplus
extern	"C" {
#endif

#define	JIT_INTERP_OP_LDA_0_SBYTE				(JIT_OP_NUM_OPCODES + 0x0000)
#define	JIT_INTERP_OP_LDA_0_UBYTE				(JIT_OP_NUM_OPCODES + 0x0001)
#define	JIT_INTERP_OP_LDA_0_SHORT				(JIT_OP_NUM_OPCODES + 0x0002)
#define	JIT_INTERP_OP_LDA_0_USHORT				(JIT_OP_NUM_OPCODES + 0x0003)
#define	JIT_INTERP_OP_LDA_0_INT					(JIT_OP_NUM_OPCODES + 0x0004)
#define	JIT_INTERP_OP_LDA_0_LONG				(JIT_OP_NUM_OPCODES + 0x0005)
#define	JIT_INTERP_OP_LDA_0_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0006)
#define	JIT_INTERP_OP_LDA_0_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0007)
#define	JIT_INTERP_OP_LDA_0_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0008)
#define	JIT_INTERP_OP_LDAA_0					(JIT_OP_NUM_OPCODES + 0x0009)
#define	JIT_INTERP_OP_LDA_1_SBYTE				(JIT_OP_NUM_OPCODES + 0x000A)
#define	JIT_INTERP_OP_LDA_1_UBYTE				(JIT_OP_NUM_OPCODES + 0x000B)
#define	JIT_INTERP_OP_LDA_1_SHORT				(JIT_OP_NUM_OPCODES + 0x000C)
#define	JIT_INTERP_OP_LDA_1_USHORT				(JIT_OP_NUM_OPCODES + 0x000D)
#define	JIT_INTERP_OP_LDA_1_INT					(JIT_OP_NUM_OPCODES + 0x000E)
#define	JIT_INTERP_OP_LDA_1_LONG				(JIT_OP_NUM_OPCODES + 0x000F)
#define	JIT_INTERP_OP_LDA_1_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0010)
#define	JIT_INTERP_OP_LDA_1_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0011)
#define	JIT_INTERP_OP_LDA_1_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0012)
#define	JIT_INTERP_OP_LDAA_1					(JIT_OP_NUM_OPCODES + 0x0013)
#define	JIT_INTERP_OP_LDA_2_SBYTE				(JIT_OP_NUM_OPCODES + 0x0014)
#define	JIT_INTERP_OP_LDA_2_UBYTE				(JIT_OP_NUM_OPCODES + 0x0015)
#define	JIT_INTERP_OP_LDA_2_SHORT				(JIT_OP_NUM_OPCODES + 0x0016)
#define	JIT_INTERP_OP_LDA_2_USHORT				(JIT_OP_NUM_OPCODES + 0x0017)
#define	JIT_INTERP_OP_LDA_2_INT					(JIT_OP_NUM_OPCODES + 0x0018)
#define	JIT_INTERP_OP_LDA_2_LONG				(JIT_OP_NUM_OPCODES + 0x0019)
#define	JIT_INTERP_OP_LDA_2_FLOAT32				(JIT_OP_NUM_OPCODES + 0x001A)
#define	JIT_INTERP_OP_LDA_2_FLOAT64				(JIT_OP_NUM_OPCODES + 0x001B)
#define	JIT_INTERP_OP_LDA_2_NFLOAT				(JIT_OP_NUM_OPCODES + 0x001C)
#define	JIT_INTERP_OP_LDAA_2					(JIT_OP_NUM_OPCODES + 0x001D)
#define	JIT_INTERP_OP_STA_0_BYTE				(JIT_OP_NUM_OPCODES + 0x001E)
#define	JIT_INTERP_OP_STA_0_SHORT				(JIT_OP_NUM_OPCODES + 0x001F)
#define	JIT_INTERP_OP_STA_0_INT					(JIT_OP_NUM_OPCODES + 0x0020)
#define	JIT_INTERP_OP_STA_0_LONG				(JIT_OP_NUM_OPCODES + 0x0021)
#define	JIT_INTERP_OP_STA_0_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0022)
#define	JIT_INTERP_OP_STA_0_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0023)
#define	JIT_INTERP_OP_STA_0_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0024)
#define	JIT_INTERP_OP_LDL_0_SBYTE				(JIT_OP_NUM_OPCODES + 0x0025)
#define	JIT_INTERP_OP_LDL_0_UBYTE				(JIT_OP_NUM_OPCODES + 0x0026)
#define	JIT_INTERP_OP_LDL_0_SHORT				(JIT_OP_NUM_OPCODES + 0x0027)
#define	JIT_INTERP_OP_LDL_0_USHORT				(JIT_OP_NUM_OPCODES + 0x0028)
#define	JIT_INTERP_OP_LDL_0_INT					(JIT_OP_NUM_OPCODES + 0x0029)
#define	JIT_INTERP_OP_LDL_0_LONG				(JIT_OP_NUM_OPCODES + 0x002A)
#define	JIT_INTERP_OP_LDL_0_FLOAT32				(JIT_OP_NUM_OPCODES + 0x002B)
#define	JIT_INTERP_OP_LDL_0_FLOAT64				(JIT_OP_NUM_OPCODES + 0x002C)
#define	JIT_INTERP_OP_LDL_0_NFLOAT				(JIT_OP_NUM_OPCODES + 0x002D)
#define	JIT_INTERP_OP_LDLA_0					(JIT_OP_NUM_OPCODES + 0x002E)
#define	JIT_INTERP_OP_LDL_1_SBYTE				(JIT_OP_NUM_OPCODES + 0x002F)
#define	JIT_INTERP_OP_LDL_1_UBYTE				(JIT_OP_NUM_OPCODES + 0x0030)
#define	JIT_INTERP_OP_LDL_1_SHORT				(JIT_OP_NUM_OPCODES + 0x0031)
#define	JIT_INTERP_OP_LDL_1_USHORT				(JIT_OP_NUM_OPCODES + 0x0032)
#define	JIT_INTERP_OP_LDL_1_INT					(JIT_OP_NUM_OPCODES + 0x0033)
#define	JIT_INTERP_OP_LDL_1_LONG				(JIT_OP_NUM_OPCODES + 0x0034)
#define	JIT_INTERP_OP_LDL_1_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0035)
#define	JIT_INTERP_OP_LDL_1_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0036)
#define	JIT_INTERP_OP_LDL_1_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0037)
#define	JIT_INTERP_OP_LDLA_1					(JIT_OP_NUM_OPCODES + 0x0038)
#define	JIT_INTERP_OP_LDL_2_SBYTE				(JIT_OP_NUM_OPCODES + 0x0039)
#define	JIT_INTERP_OP_LDL_2_UBYTE				(JIT_OP_NUM_OPCODES + 0x003A)
#define	JIT_INTERP_OP_LDL_2_SHORT				(JIT_OP_NUM_OPCODES + 0x003B)
#define	JIT_INTERP_OP_LDL_2_USHORT				(JIT_OP_NUM_OPCODES + 0x003C)
#define	JIT_INTERP_OP_LDL_2_INT					(JIT_OP_NUM_OPCODES + 0x003D)
#define	JIT_INTERP_OP_LDL_2_LONG				(JIT_OP_NUM_OPCODES + 0x003E)
#define	JIT_INTERP_OP_LDL_2_FLOAT32				(JIT_OP_NUM_OPCODES + 0x003F)
#define	JIT_INTERP_OP_LDL_2_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0040)
#define	JIT_INTERP_OP_LDL_2_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0041)
#define	JIT_INTERP_OP_LDLA_2					(JIT_OP_NUM_OPCODES + 0x0042)
#define	JIT_INTERP_OP_STL_0_BYTE				(JIT_OP_NUM_OPCODES + 0x0043)
#define	JIT_INTERP_OP_STL_0_SHORT				(JIT_OP_NUM_OPCODES + 0x0044)
#define	JIT_INTERP_OP_STL_0_INT					(JIT_OP_NUM_OPCODES + 0x0045)
#define	JIT_INTERP_OP_STL_0_LONG				(JIT_OP_NUM_OPCODES + 0x0046)
#define	JIT_INTERP_OP_STL_0_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0047)
#define	JIT_INTERP_OP_STL_0_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0048)
#define	JIT_INTERP_OP_STL_0_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0049)
#define	JIT_INTERP_OP_LDC_0_INT					(JIT_OP_NUM_OPCODES + 0x004A)
#define	JIT_INTERP_OP_LDC_1_INT					(JIT_OP_NUM_OPCODES + 0x004B)
#define	JIT_INTERP_OP_LDC_2_INT					(JIT_OP_NUM_OPCODES + 0x004C)
#define	JIT_INTERP_OP_LDC_0_LONG				(JIT_OP_NUM_OPCODES + 0x004D)
#define	JIT_INTERP_OP_LDC_1_LONG				(JIT_OP_NUM_OPCODES + 0x004E)
#define	JIT_INTERP_OP_LDC_2_LONG				(JIT_OP_NUM_OPCODES + 0x004F)
#define	JIT_INTERP_OP_LDC_0_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0050)
#define	JIT_INTERP_OP_LDC_1_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0051)
#define	JIT_INTERP_OP_LDC_2_FLOAT32				(JIT_OP_NUM_OPCODES + 0x0052)
#define	JIT_INTERP_OP_LDC_0_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0053)
#define	JIT_INTERP_OP_LDC_1_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0054)
#define	JIT_INTERP_OP_LDC_2_FLOAT64				(JIT_OP_NUM_OPCODES + 0x0055)
#define	JIT_INTERP_OP_LDC_0_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0056)
#define	JIT_INTERP_OP_LDC_1_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0057)
#define	JIT_INTERP_OP_LDC_2_NFLOAT				(JIT_OP_NUM_OPCODES + 0x0058)
#define	JIT_INTERP_OP_LDR_0_INT					(JIT_OP_NUM_OPCODES + 0x0059)
#define	JIT_INTERP_OP_LDR_0_LONG				(JIT_OP_NUM_OPCODES + 0x005A)
#define	JIT_INTERP_OP_LDR_0_FLOAT32				(JIT_OP_NUM_OPCODES + 0x005B)
#define	JIT_INTERP_OP_LDR_0_FLOAT64				(JIT_OP_NUM_OPCODES + 0x005C)
#define	JIT_INTERP_OP_LDR_0_NFLOAT				(JIT_OP_NUM_OPCODES + 0x005D)
#define	JIT_INTERP_OP_POP					(JIT_OP_NUM_OPCODES + 0x005E)
#define	JIT_INTERP_OP_POP_2					(JIT_OP_NUM_OPCODES + 0x005F)
#define	JIT_INTERP_OP_POP_3					(JIT_OP_NUM_OPCODES + 0x0060)
#define	JIT_INTERP_OP_IMPORT_LOCAL				(JIT_OP_NUM_OPCODES + 0x0061)
#define	JIT_INTERP_OP_IMPORT_ARG				(JIT_OP_NUM_OPCODES + 0x0062)
#define	JIT_INTERP_OP_END_MARKER				(JIT_OP_NUM_OPCODES + 0x0063)
#define	JIT_INTERP_OP_NUM_OPCODES				0x0064


/*
 * Opcode version.  Should be increased whenever new opcodes
 * are added to this list or the public list in "jit-opcode.h".
 * This value is written to ELF binaries, to ensure that code
 * for one version of libjit is not inadvertantly used in another.
 */
#define	JIT_OPCODE_VERSION					0

/*
 * Additional opcode definition flags.
 */
#define	JIT_OPCODE_INTERP_ARGS_MASK			0x7E000000
#define	JIT_OPCODE_NINT_ARG					0x02000000
#define	JIT_OPCODE_NINT_ARG_TWO				0x04000000
#define	JIT_OPCODE_CONST_LONG				0x06000000
#define	JIT_OPCODE_CONST_FLOAT32			0x08000000
#define	JIT_OPCODE_CONST_FLOAT64			0x0A000000
#define	JIT_OPCODE_CONST_NFLOAT				0x0C000000
#define	JIT_OPCODE_CALL_INDIRECT_ARGS		0x0E000000

extern jit_opcode_info_t const _jit_interp_opcodes[JIT_INTERP_OP_NUM_OPCODES];

#ifdef	__cplusplus
};
#endif

#endif /* _JIT_INTERP_OPCODE_H */