X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fjit%2Fasmpart.h;h=76c6dcc8ee7eb7c0a7b0ea5de92bd3f66d14d12b;hb=94c43bfe30c03dbaab1a28a1c1b8cfd4b9fc5a32;hp=27a50dd0ec69626798073575c7d9c4c5d854f017;hpb=d362a578296d95d99d4c996a12d116ecbb809866;p=cacao.git diff --git a/src/vm/jit/asmpart.h b/src/vm/jit/asmpart.h index 27a50dd0e..76c6dcc8e 100644 --- a/src/vm/jit/asmpart.h +++ b/src/vm/jit/asmpart.h @@ -22,8 +22,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - $Id: asmpart.h 7246 2007-01-29 18:49:05Z twisti $ - */ @@ -31,79 +29,45 @@ #define _ASMPART_H #include "config.h" + +#include + #include "vm/types.h" #if defined(ENABLE_THREADS) -# include "threads/native/critical.h" +# include "threads/critical.h" #endif #include "vm/global.h" #include "vm/vm.h" -#include "vm/jit/replace.h" - #include "vmcore/linker.h" -/* some macros ****************************************************************/ - -#if defined(ENABLE_JIT) -# if defined(ENABLE_INTRP) - -# define ASM_GETCLASSVALUES_ATOMIC(super,sub,out) \ - do { \ - if (opt_intrp) \ - intrp_asm_getclassvalues_atomic((super), (sub), (out)); \ - else \ - asm_getclassvalues_atomic((super), (sub), (out)); \ - } while (0) - -# else /* defined(ENABLE_INTRP) */ - -# define ASM_GETCLASSVALUES_ATOMIC(super,sub,out) \ - asm_getclassvalues_atomic((super), (sub), (out)) - -# endif /* defined(ENABLE_INTRP) */ - -#else /* defined(ENABLE_JIT) */ - -# define ASM_GETCLASSVALUES_ATOMIC(super,sub,out) \ - intrp_asm_getclassvalues_atomic((super), (sub), (out)) - -#endif /* defined(ENABLE_JIT) */ - - -typedef struct castinfo castinfo; - -struct castinfo { - s4 super_baseval; - s4 super_diffval; - s4 sub_baseval; -}; - - /* function prototypes ********************************************************/ /* machine dependent initialization */ s4 asm_md_init(void); +#if !defined(JIT_COMPILER_VIA_SIGNAL) /* invokes the compiler for untranslated JavaVM methods. Register R0 contains a pointer to the method info structure (prepared by createcompilerstub). */ void asm_call_jit_compiler(void); +#endif #if defined(ENABLE_JIT) -java_objectheader *asm_vm_call_method(methodinfo *m, s4 vmargscount, - vm_arg *vmargs); +java_object_t *asm_vm_call_method(void *pv, uint64_t *array, int32_t stackargs); +int32_t asm_vm_call_method_int(void *pv, uint64_t *array, int32_t stackargs); -s4 asm_vm_call_method_int(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -s8 asm_vm_call_method_long(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -float asm_vm_call_method_float(methodinfo *m, s4 vmargscount, vm_arg *vmargs); -double asm_vm_call_method_double(methodinfo *m, s4 vmargscount, vm_arg *vmargs); +int64_t asm_vm_call_method_long(void *pv, uint64_t *array, int32_t stackargs); +float asm_vm_call_method_float(void *pv, uint64_t *array, int32_t stackargs); +double asm_vm_call_method_double(void *pv, uint64_t *array, int32_t stackargs); void asm_vm_call_method_exception_handler(void); +void asm_vm_call_method_end(void); #endif #if defined(ENABLE_INTRP) @@ -139,32 +103,16 @@ void intrp_asm_abstractmethoderror(void); /* wrapper for code patching functions */ void asm_patcher_wrapper(void); -/* functions for on-stack replacement */ -#if defined(ENABLE_REPLACEMENT) -void asm_replacement_out(void); -void asm_replacement_in(executionstate_t *es, replace_safestack_t *st); -#endif - long asm_compare_and_swap(volatile long *p, long oldval, long newval); void asm_memory_barrier(void); -#if defined(ENABLE_THREADS) -extern critical_section_node_t asm_criticalsections; -#endif - -#if defined(ENABLE_JIT) -void asm_getclassvalues_atomic(vftbl_t *super, vftbl_t *sub, castinfo *out); -#endif - -#if defined(ENABLE_INTRP) -void intrp_asm_getclassvalues_atomic(vftbl_t *super, vftbl_t *sub, castinfo *out); -#endif - /* cache flush function */ void asm_cacheflush(u1 *addr, s4 nbytes); u8 asm_get_cycle_count(void); +void *md_asm_codegen_get_pv_from_pc(void *ra); + #endif /* _ASMPART_H */