Alien-LibJIT

 view release on metacpan or  search on metacpan

libjit/jit/jit-interp-opcodes.ops  view on Meta::CPAN

	op_def("stl_0_short") { "JIT_OPCODE_NINT_ARG" }
	op_def("stl_0_int") { "JIT_OPCODE_NINT_ARG" }
	op_def("stl_0_long") { "JIT_OPCODE_NINT_ARG" }
	op_def("stl_0_float32") { "JIT_OPCODE_NINT_ARG" }
	op_def("stl_0_float64") { "JIT_OPCODE_NINT_ARG" }
	op_def("stl_0_nfloat") { "JIT_OPCODE_NINT_ARG" }
	/*
	 * Load constant values.
	 */
	op_def("ldc_0_int") { "JIT_OPCODE_NINT_ARG" }
	op_def("ldc_1_int") { "JIT_OPCODE_NINT_ARG" }
	op_def("ldc_2_int") { "JIT_OPCODE_NINT_ARG" }
	op_def("ldc_0_long") { "JIT_OPCODE_CONST_LONG" }
	op_def("ldc_1_long") { "JIT_OPCODE_CONST_LONG" }
	op_def("ldc_2_long") { "JIT_OPCODE_CONST_LONG" }
	op_def("ldc_0_float32") { "JIT_OPCODE_CONST_FLOAT32" }
	op_def("ldc_1_float32") { "JIT_OPCODE_CONST_FLOAT32" }
	op_def("ldc_2_float32") { "JIT_OPCODE_CONST_FLOAT32" }
	op_def("ldc_0_float64") { "JIT_OPCODE_CONST_FLOAT64" }
	op_def("ldc_1_float64") { "JIT_OPCODE_CONST_FLOAT64" }
	op_def("ldc_2_float64") { "JIT_OPCODE_CONST_FLOAT64" }
	op_def("ldc_0_nfloat") { "JIT_OPCODE_CONST_NFLOAT" }
	op_def("ldc_1_nfloat") { "JIT_OPCODE_CONST_NFLOAT" }
	op_def("ldc_2_nfloat") { "JIT_OPCODE_CONST_NFLOAT" }
	/*
	 * Load return value.
	 */
	op_def("ldr_0_int") { }
	op_def("ldr_0_long") { }
	op_def("ldr_0_float32") { }
	op_def("ldr_0_float64") { }
	op_def("ldr_0_nfloat") { }
	/*
	 * Stack management.
	 */
	op_def("pop") { }
	op_def("pop_2") { }
	op_def("pop_3") { }
	/*
	 * Nested function call handling.
	 */
	op_def("import_local") { "JIT_OPCODE_NINT_ARG_TWO" }
	op_def("import_arg") { "JIT_OPCODE_NINT_ARG_TWO" }
	/*
	 * Marker opcode for the end of a function.
	 */
	op_def("end_marker") { }
}

%[

/*
 * 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 */
%]

%{
#endif /* defined(JIT_BACKEND_INTERP) */
%}



( run in 1.219 second using v1.01-cache-2.11-cpan-796a6f069b2 )