/* 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.
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 <mach/ppc/asm.h>
-
-
/* define register names compatible with Linux names **************************/
#define fr0 f0
/* register defines ***********************************************************/
+#define zero r0
#define sp r1
+#define t0 r2
+
#define a0 r3
#define a1 r4
#define a2 r5
#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
#define v0 a0
#define v1 a1
-#define itmp1 r11
-#define itmp2 r12
-#define itmp3 r0
-
#define xptr itmp1
#define xpc itmp2
#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
/* 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 */