* Removed all Id tags.
[cacao.git] / src / vm / jit / abi.h
index 11b120fdede4ec2462a1f028359a77366501b34c..99ed02b6d1154192e20578e329a606f2c43ff1e2 100644 (file)
@@ -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
    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 */