X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fjit%2Fpowerpc%2Fdarwin%2Fmd-asm.h;h=04947e59e3067c854d1351ce012d97a496413cc6;hb=9f859ad50d3d5d98c185d40b86b2179bc4dc9aeb;hp=1f4165a8b670ae557fe1b50ab663df38f6e99c1a;hpb=d67aec0abd0d90cb4bcb05f9af483c8b058f2729;p=cacao.git diff --git a/src/vm/jit/powerpc/darwin/md-asm.h b/src/vm/jit/powerpc/darwin/md-asm.h index 1f4165a8b..04947e59e 100644 --- a/src/vm/jit/powerpc/darwin/md-asm.h +++ b/src/vm/jit/powerpc/darwin/md-asm.h @@ -1,9 +1,9 @@ /* src/vm/jit/powerpc/darwin/md-asm.h - assembler defines for PowerPC Darwin ABI - Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates, - R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner, - C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger, - Institut f. Computersprachen - TU Wien + Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel, + C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring, + E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, + J. Wenninger, Institut f. Computersprachen - TU Wien This file is part of CACAO. @@ -19,26 +19,21 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. - Contact: cacao@complang.tuwien.ac.at + Contact: cacao@cacaojvm.org Authors: Christian Thalinger Changes: - $Id: md-asm.h 2539 2005-05-31 15:55:54Z twisti $ - */ #ifndef _MD_ASM_H #define _MD_ASM_H -#include - - /* define register names compatible with Linux names **************************/ #define fr0 f0 @@ -77,8 +72,11 @@ /* register defines ***********************************************************/ +#define zero r0 #define sp r1 +#define t0 r2 + #define a0 r3 #define a1 r4 #define a2 r5 @@ -88,12 +86,14 @@ #define a6 r9 #define a7 r10 +#define itmp1 r11 +#define itmp2 r12 #define pv r13 #define s0 r14 #define s1 r15 -#define t0 r16 +#define itmp3 r16 #define t1 r17 #define t2 r18 #define t3 r19 @@ -114,10 +114,6 @@ #define v0 a0 #define v1 a1 -#define itmp1 r11 -#define itmp2 r12 -#define itmp3 r0 - #define xptr itmp1 #define xpc itmp2 @@ -125,44 +121,44 @@ #define mptrn 12 -#define ftmp3 fr0 - -#define fa0 fr1 -#define fa1 fr2 -#define fa2 fr3 -#define fa3 fr4 -#define fa4 fr5 -#define fa5 fr6 -#define fa6 fr7 - -#define fa7 fr8 -#define fa8 fr9 -#define fa9 fr10 -#define fa10 fr11 -#define fa11 fr12 -#define fa12 fr13 - -#define fs0 fr14 -#define fs1 fr15 - -#define ftmp1 fr16 -#define ftmp2 fr17 - -#define ft0 fr18 -#define ft1 fr19 -#define ft2 fr20 -#define ft3 fr21 -#define ft4 fr22 -#define ft5 fr23 - -#define fs2 fr24 -#define fs3 fr25 -#define fs4 fr26 -#define fs5 fr27 -#define fs6 fr28 -#define fs7 fr29 -#define fs8 fr30 -#define fs9 fr31 +#define ftmp3 f0 + +#define fa0 f1 +#define fa1 f2 +#define fa2 f3 +#define fa3 f4 +#define fa4 f5 +#define fa5 f6 +#define fa6 f7 + +#define fa7 f8 +#define fa8 f9 +#define fa9 f10 +#define fa10 f11 +#define fa11 f12 +#define fa12 f13 + +#define fs0 f14 +#define fs1 f15 + +#define ftmp1 f16 +#define ftmp2 f17 + +#define ft0 f18 +#define ft1 f19 +#define ft2 f20 +#define ft3 f21 +#define ft4 f22 +#define ft5 f23 + +#define fs2 f24 +#define fs3 f25 +#define fs4 f26 +#define fs5 f27 +#define fs6 f28 +#define fs7 f29 +#define fs8 f30 +#define fs9 f31 #define fv0 fa0 @@ -222,72 +218,59 @@ /* internal defines ***********************************************************/ -#define asm_calljavafunction _asm_calljavafunction -#define asm_calljavafunction_int _asm_calljavafunction_int +#define asm_vm_call_method _asm_vm_call_method +#define asm_vm_call_method_int _asm_vm_call_method_int +#define asm_vm_call_method_long _asm_vm_call_method_long +#define asm_vm_call_method_float _asm_vm_call_method_float +#define asm_vm_call_method_double _asm_vm_call_method_double +#define asm_vm_call_method_end _asm_vm_call_method_end -#define asm_calljavafunction2 _asm_calljavafunction2 -#define asm_calljavafunction2int _asm_calljavafunction2int -#define asm_calljavafunction2long _asm_calljavafunction2long -#define asm_calljavafunction2float _asm_calljavafunction2float -#define asm_calljavafunction2double _asm_calljavafunction2double +#define asm_vm_call_method_exception_handler _asm_vm_call_method_exception_handler + +#define jumptable_int _jumptable_int +#define jumptable_long _jumptable_long #define asm_call_jit_compiler _asm_call_jit_compiler #define asm_handle_nat_exception _asm_handle_nat_exception #define asm_handle_exception _asm_handle_exception -#define asm_handle_nullptr_exception _asm_handle_nullptr_exception -#define asm_wrapper_patcher _asm_wrapper_patcher +#define asm_abstractmethoderror _asm_abstractmethoderror -#define asm_builtin_arraycheckcast _asm_builtin_arraycheckcast -#define asm_builtin_aastore _asm_builtin_aastore +#define asm_patcher_wrapper _asm_patcher_wrapper -#define asm_builtin_idiv _asm_builtin_idiv -#define asm_builtin_irem _asm_builtin_irem -#define asm_builtin_ldiv _asm_builtin_ldiv -#define asm_builtin_lrem _asm_builtin_lrem +#define asm_replacement_out _asm_replacement_out +#define asm_replacement_in _asm_replacement_in #define asm_cacheflush _asm_cacheflush -#define asm_initialize_thread_stack _asm_initialize_thread_stack -#define asm_perform_threadswitch _asm_perform_threadswitch -#define asm_switchstackandcall _asm_switchstackandcall -#define asm_criticalsections _asm_criticalsections -#define asm_getclassvalues_atomic _asm_getclassvalues_atomic /* external defines ***********************************************************/ -#define builtin_asm_get_exceptionptrptr _builtin_asm_get_exceptionptrptr -#define builtin_canstore _builtin_canstore -#define builtin_arraycheckcast _builtin_arraycheckcast -#define builtin_ldiv _builtin_ldiv -#define builtin_lrem _builtin_lrem - -#if defined(USE_THREADS) -#define builtin_monitorexit _builtin_monitorexit -#endif - -#define builtin_throw_exception _builtin_throw_exception -#define builtin_trace_exception _builtin_trace_exception -#define initialize_class _initialize_class -#define link_class _link_class -#define load_class_bootstrap _load_class_bootstrap -#define jit_compile _jit_compile -#define new_arithmeticexception _new_arithmeticexception -#define new_arrayindexoutofboundsexception _new_arrayindexoutofboundsexception -#define new_arraystoreexception _new_arraystoreexception -#define new_classcastexception _new_classcastexception -#define new_nullpointerexception _new_nullpointerexception - -#if !defined(USE_THREADS) || !defined(NATIVE_THREADS) -#if 0 -#define _exceptionptr __exceptionptr -#endif - -_exceptionptr: - .globl __exceptionptr -#endif +#define exceptions_get_and_clear_exception \ + L_exceptions_get_and_clear_exception$stub + +#define builtin_throw_exception L_builtin_throw_exception$stub + +#define md_codegen_get_pv_from_pc L_md_codegen_get_pv_from_pc$stub +#define exceptions_handle_exception L_exceptions_handle_exception$stub + +#define jit_asm_compile L_jit_asm_compile$stub + +#define exceptions_asm_new_abstractmethoderror \ + L_exceptions_asm_new_abstractmethoderror$stub + +#define patcher_wrapper L_patcher_wrapper$stub + +#define replace_me L_replace_me$stub +#define replace_build_execution_state L_replace_build_execution_state$stub +#define replace_free_safestack L_replace_free_safestack$stub + +#define stacktrace_create_extern_stackframeinfo \ + L_stacktrace_create_extern_stackframeinfo$stub +#define stacktrace_remove_stackframeinfo \ + L_stacktrace_remove_stackframeinfo$stub #endif /* _MD_ASM_H */