From: twisti Date: Wed, 28 Jun 2006 21:52:26 +0000 (+0000) Subject: * src/vm/jit/powerpc/asmpart.S (asm_abstractmethoderror): New X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=89999c636117e481596325f945039606e0061d81;p=cacao.git * src/vm/jit/powerpc/asmpart.S (asm_abstractmethoderror): New function. --- diff --git a/src/vm/jit/powerpc/asmpart.S b/src/vm/jit/powerpc/asmpart.S index 2732470a9..86417c620 100644 --- a/src/vm/jit/powerpc/asmpart.S +++ b/src/vm/jit/powerpc/asmpart.S @@ -31,7 +31,7 @@ Changes: Christian Thalinger Edwin Steiner - $Id: asmpart.S 5038 2006-06-19 22:22:34Z twisti $ + $Id: asmpart.S 5060 2006-06-28 21:52:26Z twisti $ */ @@ -66,6 +66,8 @@ .globl asm_handle_nat_exception .globl asm_handle_exception + .globl asm_abstractmethoderror + .globl asm_wrapper_patcher .globl asm_replacement_out @@ -974,6 +976,29 @@ ex_flt2: b L_asm_handle_exception_stack_loop +/* asm_abstractmethoderror ***************************************************** + + Creates and throws an AbstractMethodError. + +*******************************************************************************/ + +asm_abstractmethoderror: + mflr r0 + stw r0,LA_LR_OFFSET(sp) + stwu sp,-LA_SIZE_ALIGNED(sp) /* preserve linkage area */ + addi a0,sp,LA_SIZE_ALIGNED /* pass java sp */ + mr a1,r0 /* pass exception address */ + bl exceptions_asm_new_abstractmethoderror + lwz r0,LA_SIZE_ALIGNED+LA_LR_OFFSET(sp) + mtlr r0 /* restore return address */ + addi sp,sp,LA_SIZE_ALIGNED + + mr xptr,v0 /* get exception pointer */ + mr xpc,r0 /* we can't use r0 directly in addi */ + addi xpc,xpc,-4 /* exception address is ra - 4 */ + b L_asm_handle_nat_exception + + /* asm_wrapper_patcher ********************************************************* XXX