X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=src%2Fvm%2Fjit%2Fpatcher-common.hpp;h=1c6f7b7c62674f129e48f776817dc74cf20a7368;hb=c414f560a7e0b7636a780e6b933e91e441f80503;hp=159c6f5aa9e9ad53fdb023836c0ce21c8a153732;hpb=7f461fba26d7241e160c580dbca9ba1c2656e572;p=cacao.git diff --git a/src/vm/jit/patcher-common.hpp b/src/vm/jit/patcher-common.hpp index 159c6f5aa..1c6f7b7c6 100644 --- a/src/vm/jit/patcher-common.hpp +++ b/src/vm/jit/patcher-common.hpp @@ -1,6 +1,6 @@ /* src/vm/jit/patcher-common.hpp - architecture independent code patching stuff - Copyright (C) 2007, 2008 + Copyright (C) 1996-2011 CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO This file is part of CACAO. @@ -48,9 +48,11 @@ typedef struct patchref_t patchref_t; *******************************************************************************/ struct patchref_t { - ptrint mpc; /* absolute position in code segment */ - ptrint datap; /* absolute position in data segment */ - s4 disp; /* displacement of ref in the data segment */ + uintptr_t mpc; /* absolute position in code segment */ + uintptr_t datap; /* absolute position in data segment */ + int32_t disp; /* displacement of ref in the data segment */ + int16_t disp_mb; /* auxiliary code displacement (for membar) */ + int16_t patch_align; /* auxiliary displacement for alignment */ functionptr patcher; /* patcher function to call */ void* ref; /* reference passed */ uint32_t mcode; /* machine code to be patched back in */ @@ -75,7 +77,7 @@ void patcher_list_free(codeinfo *code); void patcher_list_show(codeinfo *code); #endif -void patcher_add_patch_ref(jitdata *jd, functionptr patcher, void* ref, s4 disp); +patchref_t *patcher_add_patch_ref(jitdata *jd, functionptr patcher, void* ref, s4 disp); void patcher_resolve(jitdata* jd); @@ -85,7 +87,7 @@ bool patcher_is_patched_at(void* pc); // MD function. bool patcher_is_valid_trap_instruction_at(void* pc); -java_handle_t *patcher_handler(u1 *pc); +bool patcher_handler(u1 *pc); /* empty patcher (just patches back original mcode) ***************************/ @@ -118,6 +120,9 @@ bool patcher_resolve_classref_to_flags(patchref_t *pr); bool patcher_resolve_native_function(patchref_t *pr); #define PATCHER_resolve_native_function (functionptr) patcher_resolve_native_function +bool patcher_breakpoint(patchref_t *pr); +#define PATCHER_breakpoint (functionptr) patcher_breakpoint + /* old patcher functions */ bool patcher_get_putstatic(patchref_t *pr);