X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fvm%2Fjit%2Fasmpart.h;h=0ce6e85e76c189eee20118e32c25b8cca6922db9;hb=111337e12285b577c8973811ad495d50073f2ab4;hp=d0cd0f1d417241883fa59f95ed159b4ac9876cfa;hpb=4bcb214550b5b6feb9f48dde25a39ebaa0422428;p=cacao.git diff --git a/src/vm/jit/asmpart.h b/src/vm/jit/asmpart.h index d0cd0f1d4..0ce6e85e7 100644 --- a/src/vm/jit/asmpart.h +++ b/src/vm/jit/asmpart.h @@ -29,7 +29,7 @@ Changes: Christian Thalinger - $Id: asmpart.h 771 2003-12-13 23:11:08Z stefan $ + $Id: asmpart.h 1296 2004-07-10 17:02:15Z stefan $ */ @@ -39,6 +39,7 @@ #include "global.h" #include "jni.h" +#include "threads/thread.h" /* determines if the byte support instruction set (21164a and higher) @@ -71,37 +72,44 @@ void asm_call_jit_compiler(); */ 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); +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); +/* We need these two labels in codegen.inc to add the asm_calljavafunction*'s + into the methodtable */ +#if defined(__I386__) || defined(__X86_64__) +void calljava_xhandler(); +void calljava_xhandler2(); +#endif void asm_handle_exception(); void asm_handle_nat_exception(); -void asm_handle_builtin_exception(classinfo *); -/* - gets the class of the caller from the stack frame -*/ -methodinfo *asm_getcallingmethod(); +void asm_check_clinit(); +void asm_handle_builtin_exception(classinfo *); +void asm_throw_and_handle_exception(); +void asm_throw_and_handle_hardware_arithmetic_exception(); -/* - 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_objectarray* Java_java_lang_VMSecurityManager_getClassContext(JNIEnv *env, jclass clazz); +stacktraceelement *asm_get_stackTrace(); +/*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(); +#if defined(USE_THREADS) && defined(NATIVE_THREADS) +extern threadcritnode asm_criticalsections; +#endif + +void asm_getclassvalues_atomic(vftbl_t *super, vftbl_t *sub, castinfo *out); + + #endif /* _ASMPART_H */