/* src/vm/jit/i386/darwin/md-asm.h - assembler defines for i386 Darwin ABI 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. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Contact: cacao@cacaojvm.org Authors: Christian Thalinger Changes: $Id: md-asm.h 4357 2006-01-22 23:33:38Z twisti $ */ #ifndef _MD_ASM_H #define _MD_ASM_H /* register defines ***********************************************************/ #define v0 %eax #define itmp1 v0 #define itmp2 %ecx #define itmp3 %edx #define t0 %ebx #define sp %esp #define s0 %ebp #define s1 %esi #define s2 %edi #define bp s0 #define itmp1b %al #define xptr itmp1 #define xpc itmp2 #define mptr itmp2 /* save and restore macros ****************************************************/ #define SAVE_ARGUMENT_REGISTERS(off) \ /* no argument registers */ #define SAVE_TEMPORARY_REGISTERS(off) \ mov t0,(0+(off))*4(sp) ; #define RESTORE_ARGUMENT_REGISTERS(off) \ /* no argument registers */ #define RESTORE_TEMPORARY_REGISTERS(off) \ mov (0+(off))*4(sp),t0 ; /* defines for darwin's old gnu assembler *************************************/ #define asm_md_init _asm_md_init #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_vm_call_method_exception_handler _asm_vm_call_method_exception_handler #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_abstractmethoderror _asm_abstractmethoderror #define asm_patcher_wrapper _asm_patcher_wrapper #define asm_replacement_out _asm_replacement_out #define asm_replacement_in _asm_replacement_in #define asm_builtin_f2i _asm_builtin_f2i #define asm_builtin_f2l _asm_builtin_f2l #define asm_builtin_d2i _asm_builtin_d2i #define asm_builtin_d2l _asm_builtin_d2l #define asm_criticalsections _asm_criticalsections #define asm_getclassvalues_atomic _asm_getclassvalues_atomic /* external defines ***********************************************************/ #define exceptions_get_and_clear_exception _exceptions_get_and_clear_exception #define builtin_throw_exception _builtin_throw_exception #define codegen_get_pv_from_pc _codegen_get_pv_from_pc #define exceptions_handle_exception _exceptions_handle_exception #define jit_asm_compile _jit_asm_compile #define exceptions_asm_new_abstractmethoderror \ _exceptions_asm_new_abstractmethoderror #define patcher_wrapper _patcher_wrapper #define replace_me _replace_me #define abort _abort #define builtin_f2i _builtin_f2i #define builtin_f2l _builtin_f2l #define builtin_d2i _builtin_d2i #define builtin_d2l _builtin_d2l #endif /* _MD_ASM_H */ /* * These are local overrides for various environment variables in Emacs. * Please do not remove this and leave it at the end of the file, where * Emacs will automagically detect them. * --------------------------------------------------------------------- * Local variables: * mode: c * indent-tabs-mode: t * c-basic-offset: 4 * tab-width: 4 * End: */