From: michi Date: Tue, 22 May 2007 07:00:57 +0000 (+0000) Subject: * src/vm/jit/arm/md-abi.c (md_param_alloc): Align stack arguments as well. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=4cd9a0e125ef083b1a2a757b375131bfecbce1e4;p=cacao.git * src/vm/jit/arm/md-abi.c (md_param_alloc): Align stack arguments as well. * src/vm/jit/arm/asmpart.S (asm_vm_call_method): Use EABI internally. --- diff --git a/src/vm/jit/arm/asmpart.S b/src/vm/jit/arm/asmpart.S index b88d6bf22..934ba993e 100644 --- a/src/vm/jit/arm/asmpart.S +++ b/src/vm/jit/arm/asmpart.S @@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - $Id: asmpart.S 7766 2007-04-19 13:24:48Z michi $ + $Id: asmpart.S 7932 2007-05-22 07:00:57Z michi $ */ @@ -133,6 +133,10 @@ asm_vm_call_method_double: */ mov itmp3, #0 /* stack position */ 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 @@ -143,6 +147,9 @@ asm_calljava_copyloop: /* reorder stack arguments! */ 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] diff --git a/src/vm/jit/arm/md-abi.c b/src/vm/jit/arm/md-abi.c index 7e40d0672..ed6eee2a6 100644 --- a/src/vm/jit/arm/md-abi.c +++ b/src/vm/jit/arm/md-abi.c @@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - $Id: md-abi.c 7931 2007-05-21 14:42:28Z twisti $ + $Id: md-abi.c 7932 2007-05-22 07:00:57Z michi $ */ @@ -180,6 +180,9 @@ void md_param_alloc(methoddesc *md) reguse += 2; } else { + + ALIGN_2(stacksize); + pd->inmemory = true; pd->regoff = stacksize; stacksize += 2;