58 uint64_t *arg_regs, uint64_t *
stack)
69 #if (SIZEOF_VOID_P == 8)
70 ret.
l = (int64_t)stack[pd->
index];
72 ret.
l = *(int32_t *)(stack + pd->
index);
75 #if (SIZEOF_VOID_P == 8)
78 ret.
l = *(int32_t *)(arg_regs + index);
84 ret.
l = (int64_t)stack[pd->
index];
86 ret.
l = (int64_t)arg_regs[index];
91 ret.
l = (int64_t)stack[pd->
index];
93 ret.
l = (int64_t)arg_regs[index];
98 ret.
l = (int64_t)stack[pd->
index];
100 ret.
l = (int64_t)arg_regs[index];
121 uint64_t *arg_regs, uint64_t *
stack,
131 #if (SIZEOF_VOID_P == 8)
132 stack[pd->
index] = param.
l;
137 arg_regs[
index] = param.
l;
160 #if (SIZEOF_VOID_P == 8)
161 ret.
l = return_regs[0];
163 ret.
l = *(int32_t *)return_regs;
167 ret.
l = *(int64_t *)return_regs;
170 ret.
l = *(int64_t *)return_regs;
173 ret.
l = *(int64_t *)return_regs;
195 #if (SIZEOF_VOID_P == 8)
196 return_regs[0] = ret.
l;
221 array[
index] = (int64_t) value;
225 #if SIZEOF_VOID_P == 8
226 array[
index] = (int64_t) value;
228 # if WORDS_BIGENDIAN == 1
229 array[
index] = ((int64_t) value) << 32;
231 array[
index] = (int64_t) value;
249 #if SIZEOF_VOID_P == 8
255 array[
index] = value;
261 array[
index] = value & 0x00000000ffffffff;
264 array[
index] = value >> 32;
268 array[
index] = value;
286 #if defined(SUPPORT_PASS_FLOATARGS_IN_INTREGS)
291 #if WORDS_BIGENDIAN == 1 && !defined(__POWERPC__) && !defined(__POWERPC64__) && !defined(__S390__)
292 array[
index] = value >> 32;
294 array[
index] = value;
299 #if defined(__SPARC_64__)
300 array[
index] = value >> 32;
302 array[
index] = value;
320 #if SIZEOF_VOID_P != 8 && defined(SUPPORT_PASS_FLOATARGS_IN_INTREGS)
322 array[
index] = value & 0x00000000ffffffff;
325 array[
index] = value >> 32;
328 array[
index] = value;
333 array[
index] = value;
358 array[
index] = (uint64_t) (intptr_t) value;
362 #if SIZEOF_VOID_P == 8
363 array[
index] = (uint64_t) (intptr_t) value;
365 # if WORDS_BIGENDIAN == 1
366 array[
index] = ((uint64_t) (intptr_t) value) << 32;
368 array[
index] = (uint64_t) (intptr_t) value;
418 value.
i = va_arg(ap, int32_t);
423 value.
l = va_arg(ap, int64_t);
428 #if defined(__ALPHA__) || defined(__POWERPC__) || defined(__POWERPC64__)
433 value.
d = (double) va_arg(ap,
double);
435 value.
f = (float) va_arg(ap,
double);
437 value.
f = (float) va_arg(ap,
double);
443 value.
d = va_arg(ap,
double);
448 value.
a = va_arg(ap,
void*);
503 for (j = 0; i < md->
paramcount; i++, j++, pd++, td++) {
578 array = (uint64_t *)(-1);
595 for (j = 0; i < md->
paramcount; i++, j++, pd++, td++) {
665 os::abort(
"argument_vmarray_from_objectarray: invalid type %d",
759 os::abort(
"argument_vmarray_from_objectarray: invalid type %d", td->
type);
bool builtin_instanceof(java_handle_t *o, classinfo *c)
static void argument_vmarray_store_adr(uint64_t *array, paramdesc *pd, java_handle_t *h)
imm_union argument_jitreturn_load(methoddesc *md, uint64_t *return_regs)
imm_union argument_jitarray_load(methoddesc *md, int32_t index, uint64_t *arg_regs, uint64_t *stack)
static void unimplemented()
uint64_t * argument_vmarray_from_jvalue(methodinfo *m, java_handle_t *o, const jvalue *args)
Actual implementation of access class for Java Object arrays.
T get_element(int32_t index)
void argument_jitarray_store(methoddesc *md, int32_t index, uint64_t *arg_regs, uint64_t *stack, imm_union param)
static void argument_vmarray_store_dbl(uint64_t *array, paramdesc *pd, uint64_t value)
static imm_union unbox(java_handle_t *o)
Unbox a primitive of the given type.
bool resolve_class_from_typedesc(typedesc *d, bool checkaccess, bool link, classinfo **result)
static void argument_vmarray_store_int(uint64_t *array, paramdesc *pd, int32_t value)
uint64_t * argument_vmarray_from_valist(methodinfo *m, java_handle_t *o, va_list ap)
#define LLNI_class_get(obj, variable)
static int get_type_by_wrapperclass(classinfo *c)
Returns the primitive type of the given wrapper-class.
alloc::list< PassInfo::IDTy >::type & stack
void argument_jitreturn_store(methoddesc *md, uint64_t *return_regs, imm_union ret)
bool builtin_arrayinstanceof(java_handle_t *h, classinfo *targetclass)
static void * allocate(size_t size)
static void shouldnotreach()
uint64_t * argument_vmarray_from_objectarray(methodinfo *m, java_handle_t *o, java_handle_objectarray_t *params)
static void argument_vmarray_store_flt(uint64_t *array, paramdesc *pd, uint64_t value)
static void argument_vmarray_store_lng(uint64_t *array, paramdesc *pd, int64_t value)
PrimitiveType primitivetype