* src/vm/jit/x86_64/asmpart.S (asm_abstractmethoderror): Keep stack aligned.
authorStefan Ring <stefan@complang.tuwien.ac.at>
Fri, 24 Feb 2012 06:48:53 +0000 (07:48 +0100)
committerStefan Ring <stefan@complang.tuwien.ac.at>
Fri, 24 Feb 2012 06:48:53 +0000 (07:48 +0100)
src/vm/jit/x86_64/asmpart.S

index e72711d14ba9788a007f937a30100bf510d4f696..bfeb1e0fe8f44a5a13750c4689f357f194b87d43 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/jit/x86_64/asmpart.S - Java-C interface functions for x86_64
 
 /* src/vm/jit/x86_64/asmpart.S - Java-C interface functions for x86_64
 
-   Copyright (C) 1996-2005, 2006, 2007, 2008
+   Copyright (C) 1996-2012
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 
    This file is part of CACAO.
    CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
 
    This file is part of CACAO.
@@ -314,12 +314,14 @@ noflt:
 *******************************************************************************/
 
 asm_abstractmethoderror:
 *******************************************************************************/
 
 asm_abstractmethoderror:
+       sub     $8,sp                       /* keep stack aligned                 */
        mov     sp,a0                       /* pass java sp                       */
        mov     sp,a0                       /* pass java sp                       */
-       add     $1*8,a0
-       mov     0*8(sp),a1                  /* pass exception address             */
+       add     $2*8,a0
+       mov     1*8(sp),a1                  /* pass exception address             */
        sub     $3,a1
        call    exceptions_asm_new_abstractmethoderror@PLT
                                            /* exception pointer is return value  */
        sub     $3,a1
        call    exceptions_asm_new_abstractmethoderror@PLT
                                            /* exception pointer is return value  */
+       pop     xpc                         /* dummy pop                          */
        pop     xpc                         /* get exception address              */
        sub     $3,xpc                      /* exception address is ra - 3        */
        jmp     L_asm_handle_exception
        pop     xpc                         /* get exception address              */
        sub     $3,xpc                      /* exception address is ra - 3        */
        jmp     L_asm_handle_exception