* src/vm/jit/arm/arch.h: Removed HAS_4BYTE_STACKSLOT, ALIGN_LONGS_IN_MEMORY and
authormichi <none@none>
Thu, 21 Jun 2007 11:55:56 +0000 (11:55 +0000)
committermichi <none@none>
Thu, 21 Jun 2007 11:55:56 +0000 (11:55 +0000)
ALIGN_DOUBLES_IN_MEMORY.

* src/vm/jit/arm/md-abi.c (md_param_alloc): Changed to 8-byte stackslots and
set pd->index correctly.

* src/vm/jit/arm/codegen.c: Changed to 8-byte stackslots (spilled regs and
arguments only).

* src/vm/jit/arm/asmpart.S (asm_vm_call_method): Reimplemented to fit new
argument passing. Changed to 8-byte stackslots.

* src/vm/vm.c (vm_array_store_flt, vm_array_store_dbl)
[SUPPORT_PASS_FLOATARGS_IN_INTREGS]: Fixed.

* src/vm/vm.c: Added ARM ifdefs.
* src/vm/vm.h: Added ARM ifdefs.
* src/native/jni.c: Added ARM ifdefs.

src/native/jni.c
src/vm/jit/arm/arch.h
src/vm/jit/arm/asmpart.S
src/vm/jit/arm/codegen.c
src/vm/jit/arm/md-abi.c
src/vm/vm.c
src/vm/vm.h

index 33944fe479891f40d99a633cc03d0350cec62b70..1148b7153cd4b41da85bbb14f2a387ae5f5b7b28 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: jni.c 8106 2007-06-19 22:50:17Z twisti $
+   $Id: jni.c 8127 2007-06-21 11:55:56Z michi $
 
 */
 
@@ -773,7 +773,7 @@ static void _Jv_jni_CallVoidMethodA(java_objectheader *o, vftbl_t *vftbl,
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__ARM__)
 java_objectheader *_Jv_jni_invokeNative(methodinfo *m, java_objectheader *o,
                                                                                java_objectarray *params)
 {
index 70264ab5e13c953b476390e34b76d5974a5eb8e8..8e1d70d1f14cb083faaf8c7e056ee4af67f36089 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: arch.h 7695 2007-04-12 19:49:34Z twisti $
+   $Id: arch.h 8127 2007-06-21 11:55:56Z michi $
 
 */
 
 #endif
 
 
-#define HAS_4BYTE_STACKSLOT
 #define SUPPORT_COMBINE_INTEGER_REGISTERS
 #define SUPPORT_PASS_FLOATARGS_IN_INTREGS
 
-#define ALIGN_LONGS_IN_MEMORY       /* Align Longs and/or Doubles at          */
-#define ALIGN_DOUBLES_IN_MEMORY     /* 2*Stackslotsize relativ to stackframe  */
-/* Memory Positions for not Interface Stackslots (allocate_scratch_registers) */
-/* are not properly aligned in case HAS_4_BYTE_STACKSLOT is not defined!      */
-/* For HAS_4_BYTE_STACKSLOT archs no distinction is made between long and     */
-/* define SUPPORT_COMBINE_INTEGER_REGISTERS                                   */
-
 
 /* branches *******************************************************************/
 
index 934ba993e72b7e5bc4a80e19a1a9ec51f6d2c6c6..99e16a9f3ea7ead2887203a86e5a1eebc3b8f97e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: asmpart.S 7932 2007-05-22 07:00:57Z michi $
+   $Id: asmpart.S 8127 2007-06-21 11:55:56Z michi $
 
 */
 
@@ -70,9 +70,6 @@ asm_exceptionptr:
        .word _no_threads_exceptionptr
 #endif
 
-asm_jitcompilerptr:
-       .word asm_call_jit_compiler
-
 asm_criticalsections:
 #if defined(ENABLE_THREADS)
        .word _crit_begin
@@ -114,77 +111,45 @@ asm_vm_call_method_long:
 /* asm_vm_call_method_float:
 asm_vm_call_method_double: */
        SAVE_SCRATCH_REGISTERS            /* save our personal scratch regs   */
-       stmfd sp!, {v1}                   /* V1 is used to recompute SP ...   */
-       mov   v1, #0                      /* ... when using stack arguments   */
-       ldr   ip, asm_jitcompilerptr
-       str   ip, [sp, #-4]!              /* store fake address               */
-       mov   mptr, sp                    /* set method pointer               */
+       stmfd sp!, {v1}                   /* V1 is used to remember SP        */
+       str   a0, [sp, #-4]!              /* store methods entrypoint         */
 
-       mov   itmp1, a0                   /* pass methodinfo* via ITMP1       */
+       mov   v1, sp                      /* remember SP                      */
 
-       cmp   a1, #0                      /* do we have arguments?            */
-       ble   asm_calljava_copyfinish     /* no -> do not care :-)            */
+       mov   itmp1, a1                   /* address of data structure        */
+       mov   itmp3, a2                   /* stack argument count             */
 
-       /* REMEMBER: stack space for arguments is reserved here! */
-       /* TODO: we possibly reserve to much here */
-       mov   v1, a1, lsl #3              /* how much stack do we alloc?      */
-       sub   sp, sp, v1                  /* allocate stack for arguments!    */
+       ldr   a0, [itmp1], #8             /* load argument registers          */
+       ldr   a1, [itmp1], #8
+       ldr   a2, [itmp1], #8
+       ldr   a3, [itmp1], #8
+
+       cmp   itmp3, #0                   /* do we have stack arguments?      */
+       ble   asm_calljava_copyfinish     /* no -> do not care :-)            */
 
-       mov   itmp3, #0                   /* stack position                   */
+       mov   itmp2, #0
+       sub   sp, sp, itmp3, lsl #3       /* create stackframe for arguments  */
 asm_calljava_copyloop:                /* reorder stack arguments!         */
-#if defined(__ARMEL__)
-       ldr   ip, [a2,#offvmargtype]      /* align 2_WORD_TYPEs               */
-       tst   ip, #1
-       tstne itmp3, #4
-       addne itmp3, itmp3, #4
-       ldr   ip, [a2,#offvmargdata]      /* get LOW word of argument         */
-       str   ip, [sp, itmp3]
-       add   itmp3, itmp3, #4
-       ldr   ip, [a2,#offvmargtype]      /* is it a 2_WORD_TYPE?             */
-       tst   ip, #1
-       ldrne ip, [a2,#offvmargdata + 4]  /* yes -> get HIGH word of argument */
-       strne ip, [sp, itmp3]
-       addne itmp3, itmp3, #4
-#else /* defined(__ARMEB__) */
-       ldr   ip, [a2,#offvmargtype + 4]  /* get our item type (it is u8)    */
-       tst   ip, #1                      /* align 2_WORD_TYPEs               */
-       tstne itmp3, #4
-       addne itmp3, itmp3, #4
-       teq   ip, #2                      /* is it a TYPE_FLOAT?              */
-       ldreq ip, [a2,#offvmargdata]      /* yes -> get LOW word of float     */
-       streq ip, [sp, itmp3]
-       addeq itmp3, itmp3, #4
-       beq   asm_calljava_copydone
-       tst   ip, #1                      /* is it a 2_WORD_TYPE?             */
-       ldrne ip, [a2,#offvmargdata]      /* yes -> get HIGH word of argument */
-       strne ip, [sp, itmp3]
-       addne itmp3, itmp3, #4
-       ldr   ip, [a2,#offvmargdata + 4]  /* get LOW word of argument         */
-       str   ip, [sp, itmp3]
-       add   itmp3, itmp3, #4
-asm_calljava_copydone:
-#endif
-       add   a2, a2, #sizevmarg          /* next argument block              */
-       subs  a1, a1, #1
+       ldr   ip, [itmp1], #4             /* load argument                    */
+       str   ip, [sp, itmp2]             /* store argument on stack          */
+       add   itmp2, itmp2, #4            /* next stackslot                   */
+       ldr   ip, [itmp1], #4             /* load argument                    */
+       str   ip, [sp, itmp2]             /* store argument on stack          */
+       add   itmp2, itmp2, #4            /* next stackslot                   */
+       subs  itmp3, itmp3, #1            /* next argument                    */
        bgt   asm_calljava_copyloop
 
-       /* REMEMBER: first four args are passed in regs, take them out again  */
-       ldmfd sp, {a0, a1, a2, a3}        /* load first four args to register */
-       cmp   v1, #16                     /* do we have four arguments?       */
-       addlt sp, sp, v1
-       movlt v1, #0
-       addge sp, sp, #16
-       subge v1, v1, #16
-
 asm_calljava_copyfinish:
+       mov   mptr, v1                    /* set method pointer               */
+
        /* REMEMBER: do the method call just like in java! */
        ldr   ip, [mptr]                  /* fake virtual function call       */
-       mov   lr, pc 
-       mov   pc, ip 
-fake2:
-       sub   ip, pc, #(fake2 - asm_vm_call_method)+8
+       mov   lr, pc
+       mov   pc, ip
+fake:
+       sub   ip, pc, #(fake - asm_vm_call_method)+8
 
-       add   sp, sp, v1                  /* free stack arguments!            */
+       mov   sp, v1                      /* restore SP                       */
        add   sp, sp, #4                  /* free fake address                */
        ldmfd sp!, {v1}
        RESTORE_SCRATCH_REGS_AND_RETURN   /* return to caller, restore regs   */
@@ -194,7 +159,7 @@ asm_vm_call_method_exception_handler:
        bl    builtin_throw_exception     /* throw the exception              */
        mov   res1, #0                    /* return NULL                      */
        mov   res2, #0                    /* return NULL                      */
-       add   sp, sp, v1                  /* free stack arguments!            */
+       mov   sp, v1                      /* restore SP                       */
        add   sp, sp, #4                  /* free fake address                */
        ldmfd sp!, {v1}
        RESTORE_SCRATCH_REGS_AND_RETURN   /* return to caller, restore regs   */
index 9de8ea042e5c7ed0683e1bd196cd61816774e375..7b9c15d1f560ca1e1c7e681805b48a27a67e2296 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: codegen.c 8123 2007-06-20 23:50:55Z michi $
+   $Id: codegen.c 8127 2007-06-21 11:55:56Z michi $
 
 */
 
@@ -120,7 +120,8 @@ bool codegen_emit(jitdata *jd)
 
        savedregs_num = (jd->isleafmethod) ? 0 : 1;       /* space to save the LR */
        savedregs_num += (INT_SAV_CNT - rd->savintreguse);
-       savedregs_num += (FLT_SAV_CNT - rd->savfltreguse);
+       /*savedregs_num += (FLT_SAV_CNT - rd->savfltreguse);*/
+       assert((FLT_SAV_CNT - rd->savfltreguse) == 0);
 
        spilledregs_num = rd->memuse;
 
@@ -129,7 +130,7 @@ bool codegen_emit(jitdata *jd)
                spilledregs_num++;
 #endif
 
-       cd->stackframesize = (spilledregs_num + savedregs_num) * 4;
+       cd->stackframesize = spilledregs_num * 8 + savedregs_num * 4;
 
        /* XXX QUICK FIX: We shouldn't align the stack in Java code, but
           only in native stubs. */
@@ -151,7 +152,7 @@ bool codegen_emit(jitdata *jd)
        */
 
        if (checksync && (m->flags & ACC_SYNCHRONIZED))
-               (void) dseg_add_unique_s4(cd, (rd->memuse + 1) * 4);/* IsSync         */
+               (void) dseg_add_unique_s4(cd, rd->memuse * 8 + 4);/* IsSync         */
        else
 #endif
                (void) dseg_add_unique_s4(cd, 0);                  /* IsSync          */
@@ -278,12 +279,12 @@ bool codegen_emit(jitdata *jd)
        if (checksync && (m->flags & ACC_SYNCHRONIZED)) {
                /* stack offset for monitor argument */
 
-               s1 = rd->memuse;
+               s1 = rd->memuse * 8;
 
 # if !defined(NDEBUG)
                if (JITDATA_HAS_FLAG_VERBOSECALL(jd)) {
                        M_STMFD(BITMASK_ARGS, REG_SP);
-                       s1 += 4;
+                       s1 += 4 * 4;
                }
 # endif
 
@@ -297,7 +298,7 @@ bool codegen_emit(jitdata *jd)
                        emit_nullpointer_check_force(cd, iptr, REG_A0);
                }
 
-               M_STR(REG_A0, REG_SP, s1 * 4);
+               M_STR(REG_A0, REG_SP, s1);
                disp = dseg_add_functionptr(cd, LOCK_monitor_enter);
                M_DSEG_BRANCH(disp);
                s1 = (s4) (cd->mcodeptr - cd->mcodebase);
@@ -2121,7 +2122,7 @@ bool codegen_emit(jitdata *jd)
                        if (checksync && (m->flags & ACC_SYNCHRONIZED)) {
                                /* stack offset for monitor argument */
 
-                               s1 = rd->memuse;
+                               s1 = rd->memuse * 8;
 
                                /* we need to save the proper return value */
 
@@ -2132,11 +2133,11 @@ bool codegen_emit(jitdata *jd)
                                case ICMD_FRETURN: /* XXX TWISTI: is that correct? */
                                case ICMD_DRETURN:
                                        M_STMFD(BITMASK_RESULT, REG_SP);
-                                       s1 += 2;
+                                       s1 += 2 * 4;
                                        break;
                                }
 
-                               M_LDR(REG_A0, REG_SP, s1 * 4);
+                               M_LDR(REG_A0, REG_SP, s1);
                                disp = dseg_add_functionptr(cd, LOCK_monitor_exit);
                                M_DSEG_BRANCH(disp);
 
@@ -2925,12 +2926,11 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
 
        /* calculate stackframe size */
 
-       cd->stackframesize = ( 
-               1 +                                                /* return address  */
-               sizeof(stackframeinfo) / SIZEOF_VOID_P +           /* stackframeinfo  */
-               sizeof(localref_table) / SIZEOF_VOID_P +           /* localref_table  */
-               nmd->memuse                                        /* stack arguments */
-               ) * 4;
+       cd->stackframesize =
+               4 +                                                /* return address  */
+               sizeof(stackframeinfo) +                           /* stackframeinfo  */
+               sizeof(localref_table) +                           /* localref_table  */
+               nmd->memuse * 4;                                   /* stack arguments */
 
        /* align stack to 8-byte */
 
index 3f59b7b0b15f2b759fd2f105dbb17c30c0295ab6..0abca2ad64b8f80f23ec256dfe1b3fd576cbe80b 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-abi.c 8123 2007-06-20 23:50:55Z michi $
+   $Id: md-abi.c 8127 2007-06-21 11:55:56Z michi $
 
 */
 
@@ -150,12 +150,14 @@ void md_param_alloc(methoddesc *md)
                case TYPE_FLT:
                        if (reguse < INT_ARG_CNT) {
                                pd->inmemory = false;
+                               pd->index    = reguse;
                                pd->regoff   = abi_registers_integer_argument[reguse];
                                reguse++;
                        }
                        else {
                                pd->inmemory = true;
-                               pd->regoff   = stacksize * 4;
+                               pd->index    = stacksize;
+                               pd->regoff   = stacksize * 8;
                                stacksize++;
                        }
                        break;
@@ -169,10 +171,12 @@ void md_param_alloc(methoddesc *md)
                        if (reguse < INT_ARG_CNT) {
                                pd->inmemory = false;
 #if defined(__ARMEL__)
+                               pd->index    = PACK_REGS(reguse, reguse + 1);
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse],
                                                          abi_registers_integer_argument[reguse + 1]);
 #else
+                               pd->index    = PACK_REGS(reguse + 1, reguse);
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse + 1],
                                                          abi_registers_integer_argument[reguse]);
@@ -181,11 +185,13 @@ void md_param_alloc(methoddesc *md)
                        }
                        else {
 
-                               ALIGN_2(stacksize);
+                               /*ALIGN_2(stacksize);*/
 
                                pd->inmemory  = true;
-                               pd->regoff    = stacksize * 4;
-                               stacksize    += 2;
+                               pd->index     = stacksize;
+                               pd->regoff    = stacksize * 8;
+                               /*stacksize    += 2;*/
+                               stacksize++;
                        }
                        break;
                }
@@ -242,11 +248,13 @@ void md_param_alloc_native(methoddesc *md)
                case TYPE_FLT:
                        if (reguse < INT_ARG_CNT) {
                                pd->inmemory = false;
+                               pd->index    = -1;
                                pd->regoff   = abi_registers_integer_argument[reguse];
                                reguse++;
                        }
                        else {
                                pd->inmemory = true;
+                               pd->index    = -1;
                                pd->regoff   = stacksize * 4;
                                stacksize++;
                        }
@@ -260,10 +268,12 @@ void md_param_alloc_native(methoddesc *md)
 #endif
                                pd->inmemory = false;
 #if defined(__ARMEL__)
+                               pd->index    = -1;
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse],
                                                          abi_registers_integer_argument[reguse + 1]);
 #else
+                               pd->index    = -1;
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse + 1],
                                                          abi_registers_integer_argument[reguse]);
@@ -274,10 +284,12 @@ void md_param_alloc_native(methoddesc *md)
                        else if (reguse < INT_ARG_CNT) {
                                pd->inmemory = false;
 # if defined(__ARMEL__)
+                               pd->index    = -1;
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse],
                                                          abi_registers_integer_argument[INT_ARG_CNT]);
 # else
+                               pd->index    = -1;
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[INT_ARG_CNT],
                                                          abi_registers_integer_argument[reguse]);
@@ -291,6 +303,7 @@ void md_param_alloc_native(methoddesc *md)
                                ALIGN_2(stacksize);
 #endif
                                pd->inmemory  = true;
+                               pd->index     = -1;
                                pd->regoff    = stacksize * 4;
                                reguse        = INT_ARG_CNT;
                                stacksize    += 2;
index 824057f54baaeedcb938411e519309e4232b3ebb..37f1e891b3be0b683f93aaab482f63fb99b41f75 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: vm.c 8120 2007-06-20 22:11:24Z twisti $
+   $Id: vm.c 8127 2007-06-21 11:55:56Z michi $
 
 */
 
@@ -2392,7 +2392,11 @@ static void vm_array_store_flt(uint64_t *array, paramdesc *pd, uint64_t value)
        int32_t index;
 
        if (!pd->inmemory) {
+#if defined(SUPPORT_PASS_FLOATARGS_IN_INTREGS)
+               index        = pd->index;
+#else
                index        = INT_ARG_CNT + pd->index;
+#endif
 #if WORDS_BIGENDIAN == 1 && !defined(__POWERPC64__)
                array[index] = value >> 32;
 #else
@@ -2421,12 +2425,22 @@ static void vm_array_store_dbl(uint64_t *array, paramdesc *pd, uint64_t value)
 {
        int32_t index;
 
-       if (!pd->inmemory)
-               index = INT_ARG_CNT + pd->index;
-       else
-               index = ARG_CNT + pd->index;
+       if (!pd->inmemory) {
+#if SIZEOF_VOID_P != 8 && defined(SUPPORT_PASS_FLOATARGS_IN_INTREGS)
+               index        = GET_LOW_REG(pd->index);
+               array[index] = value & 0x00000000ffffffff;
 
-       array[index] = value;
+               index        = GET_HIGH_REG(pd->index);
+               array[index] = value >> 32;
+#else
+               index        = INT_ARG_CNT + pd->index;
+               array[index] = value;
+#endif
+       }
+       else {
+               index        = ARG_CNT + pd->index;
+               array[index] = value;
+       }
 }
 
 
@@ -2473,7 +2487,7 @@ static void vm_array_store_adr(uint64_t *array, paramdesc *pd, void *value)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 static void vm_vmargs_from_valist(methodinfo *m, java_objectheader *o,
                                                                  vm_arg *vmargs, va_list ap)
 {
@@ -2609,7 +2623,7 @@ uint64_t *vm_array_from_valist(methodinfo *m, java_objectheader *o, va_list ap)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 static void vm_vmargs_from_jvalue(methodinfo *m, java_objectheader *o,
                                                                  vm_arg *vmargs, jvalue *args)
 {
@@ -2739,7 +2753,7 @@ static uint64_t *vm_array_from_jvalue(methodinfo *m, java_objectheader *o,
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 bool vm_vmargs_from_objectarray(methodinfo *m, java_objectheader *o,
                                                                vm_arg *vmargs, java_objectarray *params)
 {
@@ -3142,7 +3156,7 @@ java_objectheader *vm_call_method(methodinfo *m, java_objectheader *o, ...)
 java_objectheader *vm_call_method_valist(methodinfo *m, java_objectheader *o,
                                                                                 va_list ap)
 {
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
        s4                 vmargscount;
        vm_arg            *vmargs;
        java_objectheader *ro;
@@ -3209,7 +3223,7 @@ java_objectheader *vm_call_method_valist(methodinfo *m, java_objectheader *o,
 java_objectheader *vm_call_method_jvalue(methodinfo *m, java_objectheader *o,
                                                                                 jvalue *args)
 {
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
        s4                 vmargscount;
        vm_arg            *vmargs;
        java_objectheader *ro;
@@ -3273,7 +3287,7 @@ java_objectheader *vm_call_method_jvalue(methodinfo *m, java_objectheader *o,
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 java_objectheader *vm_call_method_vmarg(methodinfo *m, s4 vmargscount,
                                                                                vm_arg *vmargs)
 {
@@ -3333,7 +3347,7 @@ java_objectheader *vm_call_array(methodinfo *m, uint64_t *array)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 s4 vm_call_method_int_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs)
 {
        s4 i;
@@ -3412,7 +3426,7 @@ s4 vm_call_method_int(methodinfo *m, java_objectheader *o, ...)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 s4 vm_call_method_int_valist(methodinfo *m, java_objectheader *o, va_list ap)
 {
        s4      vmargscount;
@@ -3481,7 +3495,7 @@ int32_t vm_call_method_int_valist(methodinfo *m, java_objectheader *o, va_list a
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 s4 vm_call_method_int_jvalue(methodinfo *m, java_objectheader *o, jvalue *args)
 {
        s4      vmargscount;
@@ -3550,7 +3564,7 @@ int32_t vm_call_method_int_jvalue(methodinfo *m, java_objectheader *o, jvalue *a
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 s8 vm_call_method_long_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs)
 {
        s8 l;
@@ -3629,7 +3643,7 @@ s8 vm_call_method_long(methodinfo *m, java_objectheader *o, ...)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 s8 vm_call_method_long_valist(methodinfo *m, java_objectheader *o, va_list ap)
 {
        s4      vmargscount;
@@ -3698,7 +3712,7 @@ int64_t vm_call_method_long_valist(methodinfo *m, java_objectheader *o, va_list
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 s8 vm_call_method_long_jvalue(methodinfo *m, java_objectheader *o, jvalue *args)
 {
        s4      vmargscount;
@@ -3767,7 +3781,7 @@ int64_t vm_call_method_long_jvalue(methodinfo *m, java_objectheader *o, jvalue *
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 float vm_call_method_float_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs)
 {
        float f;
@@ -3847,7 +3861,7 @@ float vm_call_method_float(methodinfo *m, java_objectheader *o, ...)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 float vm_call_method_float_valist(methodinfo *m, java_objectheader *o,
                                                                  va_list ap)
 {
@@ -3916,7 +3930,7 @@ float vm_call_method_float_valist(methodinfo *m, java_objectheader *o, va_list a
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 float vm_call_method_float_jvalue(methodinfo *m, java_objectheader *o,
                                                                  jvalue *args)
 {
@@ -3986,7 +4000,7 @@ float vm_call_method_float_jvalue(methodinfo *m, java_objectheader *o, jvalue *a
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 double vm_call_method_double_vmarg(methodinfo *m, s4 vmargscount,
                                                                   vm_arg *vmargs)
 {
@@ -4068,7 +4082,7 @@ double vm_call_method_double(methodinfo *m, java_objectheader *o, ...)
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 double vm_call_method_double_valist(methodinfo *m, java_objectheader *o,
                                                                        va_list ap)
 {
@@ -4138,7 +4152,7 @@ double vm_call_method_double_valist(methodinfo *m, java_objectheader *o, va_list
 
 *******************************************************************************/
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 double vm_call_method_double_jvalue(methodinfo *m, java_objectheader *o,
                                                                        jvalue *args)
 {
index ef976a2dbfe591da469bca21fd362912dc5e9254..7379ab5f76dbc2972abf2fdf91898e8390a9303a 100644 (file)
@@ -104,7 +104,7 @@ void vm_exit_handler(void);
 void vm_abort(const char *text, ...);
 
 /* Java method calling functions */
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 bool vm_vmargs_from_objectarray(methodinfo *m, java_objectheader *o,
                                                                vm_arg *vmargs, java_objectarray *params);
 #else
@@ -118,7 +118,7 @@ java_objectheader *vm_call_method_valist(methodinfo *m, java_objectheader *o,
 java_objectheader *vm_call_method_jvalue(methodinfo *m, java_objectheader *o,
                                                                                 jvalue *args);
 
-#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__)
+#if !defined(__MIPS__) && !defined(__X86_64__) && !defined(__POWERPC64__) && !defined(__SPARC_64__) && !defined(__ARM__)
 java_objectheader *vm_call_method_vmarg(methodinfo *m, s4 vmargscount,
                                                                                vm_arg *vmargs);
 s4 vm_call_method_int_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs);