-/* asmpart.h -
+/* asmpart.h - prototypes for machine specfic functions
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
R. Grafl, A. Krall, C. Kruegel, C. Oates, R. Obermaisser,
Authors: Reinhard Grafl
Andreas Krall
- $Id: asmpart.h 557 2003-11-02 22:51:59Z twisti $
+ Changes: Christian Thalinger
+
+ $Id: asmpart.h 975 2004-03-25 18:09:45Z twisti $
*/
+#ifndef _ASMPART_H
+#define _ASMPART_H
+
#include "global.h"
+#include "jni.h"
/*
determines if the byte support instruction set (21164a and higher)
with up to 4 parameters. This function calls a Java-method (which
possibly needs compilation) with up to 4 parameters.
*/
-java_objectheader *asm_calljavamethod(methodinfo *m, void *arg1, void *arg2,
- void *arg3, void *arg4);
/*
This function calls a Java-method (which possibly needs compilation)
*/
java_objectheader *asm_calljavafunction(methodinfo *m, void *arg1, void *arg2,
void *arg3, void *arg4);
+java_objectheader *asm_calljavafunction2(methodinfo *m, u4 count, u4 size , void *callblock);
+jdouble asm_calljavafunction2double(methodinfo *m, u4 count, u4 size , void *callblock);
+jlong asm_calljavafunction2long(methodinfo *m, u4 count, u4 size , void *callblock);
+
+
void asm_handle_exception();
void asm_handle_nat_exception();
+void asm_check_clinit();
+
+void asm_handle_builtin_exception(classinfo *);
+
/*
gets the class of the caller from the stack frame
*/
methodinfo *asm_getcallingmethod();
+java_objectarray* Java_java_lang_VMSecurityManager_getClassContext(JNIEnv *env, jclass clazz);
+stacktraceelement *asm_get_stackTrace();
-/*
- This funtion saves all callee saved registers and calls the function
- which is passed as parameter.
- This function is needed by the garbage collector, which needs to access
- all registers which are stored on the stack. Unused registers are
- cleared to avoid interferances with the GC.
-*/
-void asm_dumpregistersandcall(functionptr f);
-
+/*java_lang_ClassLoader* Java_java_lang_VMSecurityManager_currentClassLoader(JNIEnv *env, jclass clazz);*/
void *asm_switchstackandcall(void *stack, void *func, void **stacktopsave, void * p);
void asm_builtin_trace();
void asm_builtin_exittrace();
+int asm_xadd(int *, int);
+
+#endif /* _ASMPART_H */
+
/*
* These are local overrides for various environment variables in Emacs.