31 #include <sys/types.h>
47 #define FLT_NAN 0x7fc00000
48 #define FLT_POSINF 0x7f800000
49 #define FLT_NEGINF 0xff800000
53 #define DBL_NAN 0x7ff8000000000000LL
54 #define DBL_POSINF 0x7ff0000000000000LL
55 #define DBL_NEGINF 0xfff0000000000000LL
78 #define BUILTINTABLE_FLAG_STUB 0x0001
79 #define BUILTINTABLE_FLAG_EXCEPTION 0x0002
124 #define LOCK_monitor_enter (functionptr) lock_monitor_enter
125 #if defined(__X86_64__)
126 # define EMIT_FASTPATH_monitor_enter (functionptr) emit_fastpath_monitor_enter
128 # define EMIT_FASTPATH_monitor_enter (functionptr) NULL
132 #define LOCK_monitor_exit (functionptr) lock_monitor_exit
133 #if defined(__X86_64__)
134 # define EMIT_FASTPATH_monitor_exit (functionptr) emit_fastpath_monitor_exit
136 # define EMIT_FASTPATH_monitor_exit (functionptr) NULL
146 #define BUILTIN_arrayinstanceof (functionptr) builtin_fast_arrayinstanceof
148 #define BUILTIN_arraycheckcast (functionptr) builtin_fast_arraycheckcast
153 #define BUILTIN_FAST_canstore (functionptr) builtin_fast_canstore
163 #define BUILTIN_new (functionptr) builtin_java_new
165 #if defined(ENABLE_TLH)
166 #define BUILTIN_tlh_new (functionptr) builtin_tlh_new
170 #if defined(ENABLE_ESCAPE_REASON)
171 #define BUILTIN_escape_reason_new (functionptr)builtin_escape_reason_new
176 #define BUILTIN_FAST_new (functionptr) builtin_fast_new
179 #define BUILTIN_newarray (functionptr) builtin_java_newarray
182 #define BUILTIN_newarray_boolean (functionptr) builtin_newarray_boolean
184 #define BUILTIN_newarray_char (functionptr) builtin_newarray_char
186 #define BUILTIN_newarray_float (functionptr) builtin_newarray_float
188 #define BUILTIN_newarray_double (functionptr) builtin_newarray_double
190 #define BUILTIN_newarray_byte (functionptr) builtin_newarray_byte
192 #define BUILTIN_newarray_short (functionptr) builtin_newarray_short
194 #define BUILTIN_newarray_int (functionptr) builtin_newarray_int
196 #define BUILTIN_newarray_long (functionptr) builtin_newarray_long
201 #define BUILTIN_multianewarray (functionptr) builtin_multianewarray
203 #if defined(TRACE_ARGS_NUM)
204 void builtin_verbosecall_enter(
s8 a0,
s8 a1,
222 #define BUILTIN_idiv (functionptr) builtin_idiv
224 #define BUILTIN_irem (functionptr) builtin_irem
227 #define BUILTIN_ladd (functionptr) builtin_ladd
229 #define BUILTIN_lsub (functionptr) builtin_lsub
231 #define BUILTIN_lmul (functionptr) builtin_lmul
234 #define BUILTIN_ldiv (functionptr) builtin_ldiv
236 #define BUILTIN_lrem (functionptr) builtin_lrem
239 #define BUILTIN_lshl (functionptr) builtin_lshl
241 #define BUILTIN_lshr (functionptr) builtin_lshr
243 #define BUILTIN_lushr (functionptr) builtin_lushr
245 #define BUILTIN_land (functionptr) builtin_land
247 #define BUILTIN_lor (functionptr) builtin_lor
249 #define BUILTIN_lxor (functionptr) builtin_lxor
251 #define BUILTIN_lneg (functionptr) builtin_lneg
253 #define BUILTIN_lcmp (functionptr) builtin_lcmp
256 #define BUILTIN_fadd (functionptr) builtin_fadd
258 #define BUILTIN_fsub (functionptr) builtin_fsub
260 #define BUILTIN_fmul (functionptr) builtin_fmul
262 #define BUILTIN_fdiv (functionptr) builtin_fdiv
264 #define BUILTIN_fneg (functionptr) builtin_fneg
266 #define BUILTIN_fcmpl (functionptr) builtin_fcmpl
268 #define BUILTIN_fcmpg (functionptr) builtin_fcmpg
270 #define BUILTIN_frem (functionptr) builtin_frem
273 #define BUILTIN_dadd (functionptr) builtin_dadd
275 #define BUILTIN_dsub (functionptr) builtin_dsub
277 #define BUILTIN_dmul (functionptr) builtin_dmul
279 #define BUILTIN_ddiv (functionptr) builtin_ddiv
281 #define BUILTIN_dneg (functionptr) builtin_dneg
283 #define BUILTIN_dcmpl (functionptr) builtin_dcmpl
285 #define BUILTIN_dcmpg (functionptr) builtin_dcmpg
287 #define BUILTIN_drem (functionptr) builtin_drem
290 #define BUILTIN_i2f (functionptr) builtin_i2f
292 #define BUILTIN_i2d (functionptr) builtin_i2d
294 #define BUILTIN_l2f (functionptr) builtin_l2f
296 #define BUILTIN_l2d (functionptr) builtin_l2d
299 #define BUILTIN_f2i (functionptr) builtin_f2i
303 #define BUILTIN_f2l (functionptr) builtin_f2l
308 #define BUILTIN_f2d (functionptr) builtin_f2d
311 #define BUILTIN_d2i (functionptr) builtin_d2i
315 #define BUILTIN_d2l (functionptr) builtin_d2l
320 #define BUILTIN_d2f (functionptr) builtin_d2f
323 #define BUILTIN_clone (functionptr) builtin_clone
327 #define BUILTIN_arraycopy (functionptr) builtin_arraycopy
331 #define BUILTIN_currenttimemillis (functionptr) builtin_currenttimemillis
333 #if defined(ENABLE_CYCLES_STATS)
334 void builtin_print_cycles_stats(FILE *file);
339 #endif // _BUILTIN_HPP
double builtin_drem(double a, double b)
bool builtin_instanceof(java_handle_t *o, classinfo *c)
java_handle_chararray_t * builtin_newarray_char(int32_t size)
s4 asm_builtin_f2i(float a)
bool builtintable_replace_function(void *iptr_)
float builtin_fsub(float a, float b)
s8 builtin_lmul(s8 a, s8 b)
s4 builtin_dcmpl(double a, double b)
bool builtin_fast_canstore(java_objectarray_t *oa, java_object_t *o)
s8 asm_builtin_d2l(double a)
bool builtin_checkcast(java_handle_t *o, classinfo *c)
double builtin_f2d(float a)
s4 builtin_idiv(s4 a, s4 b)
s4 builtin_irem(s4 a, s4 b)
double builtin_dneg(double a)
s8 builtin_lushr(s8 a, s4 b)
java_object_t * builtin_fast_new(classinfo *c)
s4 builtin_dcmpg(double a, double b)
double builtin_ddiv(double a, double b)
s4 asm_builtin_d2i(double a)
s4 builtin_lcmp(s8 a, s8 b)
java_handle_booleanarray_t * builtin_newarray_boolean(int32_t size)
bool builtin_fast_arraycheckcast(java_object_t *o, classinfo *targetclass)
s8 builtin_lxor(s8 a, s8 b)
java_object_t * builtin_retrieve_exception(void)
java_handle_floatarray_t * builtin_newarray_float(int32_t size)
JNIEnv jthread jobject jclass jlong size
double builtin_dmul(double a, double b)
java_handle_t * builtin_new(classinfo *c)
java_handle_bytearray_t * builtin_newarray_byte(int32_t size)
void(* functionptr)(void)
java_handle_shortarray_t * builtin_newarray_short(int32_t size)
java_handle_intarray_t * builtin_newarray_int(int32_t size)
float builtin_fdiv(float a, float b)
JNIEnv jthread jmethodID jlocation jobject exception
builtintable_entry * builtintable_get_internal(functionptr fp)
#define builtin_throw_exception
s8 builtin_lsub(s8 a, s8 b)
float builtin_d2f(double a)
s8 asm_builtin_f2l(float a)
bool builtin_fast_arrayinstanceof(java_object_t *o, classinfo *targetclass)
s8 builtin_nanotime(void)
s8 builtin_lor(s8 a, s8 b)
s4 builtin_fcmpg(float a, float b)
bool builtin_arrayinstanceof(java_handle_t *h, classinfo *targetclass)
float builtin_fneg(float a)
s8 builtin_lshr(s8 a, s4 b)
functionptr emit_fastpath
s8 builtin_lrem(s8 a, s8 b)
double builtin_dadd(double a, double b)
bool builtin_canstore(java_handle_objectarray_t *oa, java_handle_t *o)
s8 builtin_ladd(s8 a, s8 b)
s8 builtin_lshl(s8 a, s4 b)
s8 builtin_ldiv(s8 a, s8 b)
java_handle_t * builtin_java_new(java_handle_t *clazz)
java_handle_doublearray_t * builtin_newarray_double(int32_t size)
void builtin_verbosecall_exit(s8 l, double d, float f, methodinfo *m)
double builtin_dsub(double a, double b)
void builtin_arraycopy(java_handle_t *src, s4 srcStart, java_handle_t *dest, s4 destStart, s4 len)
java_handle_objectarray_t * builtin_multianewarray(int n, java_handle_t *arrayclazz, long *dims)
s8 builtin_land(s8 a, s8 b)
java_handle_longarray_t * builtin_newarray_long(int32_t size)
s8 builtin_currenttimemillis(void)
s4 builtin_fcmpl(float a, float b)
java_handle_t * builtin_clone(void *env, java_handle_t *o)
float builtin_fmul(float a, float b)
java_handle_array_t * builtin_java_newarray(int32_t size, java_handle_t *arrayclazz)
builtintable_entry * builtintable_get_automatic(s4 opcode)
float builtin_fadd(float a, float b)
float builtin_frem(float a, float b)