X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fjit%2Fabi.h;h=99ed02b6d1154192e20578e329a606f2c43ff1e2;hb=9f859ad50d3d5d98c185d40b86b2179bc4dc9aeb;hp=11b120fdede4ec2462a1f028359a77366501b34c;hpb=ad92477479aeed17382996ab43a7ca0dfab2ba93;p=cacao.git diff --git a/src/vm/jit/abi.h b/src/vm/jit/abi.h index 11b120fde..99ed02b6d 100644 --- a/src/vm/jit/abi.h +++ b/src/vm/jit/abi.h @@ -1,6 +1,6 @@ /* src/vm/jit/abi.h - common ABI defines - Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel, + Copyright (C) 1996-2005, 2006, 2007 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 @@ -22,25 +22,54 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - Contact: cacao@cacaojvm.org +*/ - Authors: Christian Thalinger - Changes: +#ifndef _ABI_H +#define _ABI_H - $Id: abi.h 4357 2006-01-22 23:33:38Z twisti $ +#include "config.h" +#include "vm/types.h" -*/ +#include "vm/jit/abi-asm.h" +#include "vm/jit/jit.h" +#include "arch.h" -#ifndef _ABI_H -#define _ABI_H +/* ABI externs ****************************************************************/ + +extern s4 nregdescint[]; +extern char *regs[]; +extern s4 nregdescfloat[]; + +#if defined(HAS_ADDRESS_REGISTER_FILE) +extern s4 nregdescadr[]; + +extern const char *abi_registers_address_name[]; +extern const s4 abi_registers_address_argument[]; +extern const s4 abi_registers_address_saved[]; +extern const s4 abi_registers_address_temporary[]; +#endif + +extern const char *abi_registers_integer_name[]; +extern const s4 abi_registers_integer_argument[]; +extern const s4 abi_registers_integer_saved[]; +extern const s4 abi_registers_integer_temporary[]; + +extern const char *abi_registers_float_name[]; +extern const s4 abi_registers_float_argument[]; +extern const s4 abi_registers_float_saved[]; +extern const s4 abi_registers_float_temporary[]; + + +/* function prototypes ********************************************************/ -/* some count defines for asmpart.S *******************************************/ +/* machine dependent descriptor function */ +void md_param_alloc(methoddesc *md); +void md_param_alloc_native(methoddesc *md); -#define SAV_CNT (INT_SAV_CNT + FLT_SAV_CNT) -#define ARG_CNT (INT_ARG_CNT + FLT_ARG_CNT) -#define TMP_CNT (INT_TMP_CNT + FLT_TMP_CNT) +/* machine dependent return value handling function */ +void md_return_alloc(jitdata *jd, stackptr stackslot); #endif /* _ABI_H */