* src/native/llni.h: Added macros for array handling.
[cacao.git] / src / vm / jit / replace.h
index a63d0fe7a8548c95ec8a98be10d5e0996cbe13c6..b27ae9b4367d4701fe6f936e7e93ca274246d169 100644 (file)
@@ -45,7 +45,6 @@
 #define REPLACEMENT_POINT_RETURN(cd, iptr)
 #define REPLACEMENT_POINT_INVOKE(cd, iptr)
 #define REPLACEMENT_POINT_INVOKE_RETURN(cd, iptr)
-#define REPLACEMENT_EMIT_STUBS(jd)
 
 #else /* defined(ENABLE_REPLACEMENT) */
 
@@ -140,16 +139,16 @@ struct rplpoint {
 
 
 union replace_val_t {
-       s4                 i;
-       s8                 l;
-       ptrint             p;
+       s4             i;
+       s8             l;
+       ptrint         p;
        struct {
                u4 lo;
                u4 hi;
-       }                  words;
-       float              f;
-       double             d;
-       java_objectheader *a;
+       }              words;
+       float          f;
+       double         d;
+       java_object_t *a;
 };
 
 
@@ -164,6 +163,9 @@ struct executionstate_t {
 
        ptrint        intregs[INT_REG_CNT];             /* register values */
        double        fltregs[FLT_REG_CNT];             /* register values */
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       ptrint        adrregs[ADR_REG_CNT];             /* register values */
+#endif
 
        codeinfo     *code;            /* codeinfo corresponding to the pv */
 };
@@ -202,6 +204,9 @@ struct sourceframe_t {
        u1            *nativepc;
        ptrint         nativesavint[INT_SAV_CNT]; /* XXX temporary */
        double         nativesavflt[FLT_REG_CNT]; /* XXX temporary */
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       ptrint         nativesavadr[ADR_SAV_CNT]; /* XXX temporary */
+#endif
 };
 
 #define REPLACE_IS_NATIVE_FRAME(frame)  ((frame)->sfi != NULL)
@@ -266,9 +271,6 @@ struct replace_safestack_t {
         cd->replacementpoint[-1].callsize = (cd->mcodeptr - cd->mcodebase)\
                     - (ptrint) cd->replacementpoint[-1].pc;
 
-#define REPLACEMENT_EMIT_STUBS(jd)                                   \
-    emit_replacement_stubs(jd);
-
 /*** prototypes ********************************************************/
 
 bool replace_create_replacement_points(jitdata *jd);
@@ -277,6 +279,8 @@ void replace_free_replacement_points(codeinfo *code);
 void replace_activate_replacement_points(codeinfo *code, bool mappable);
 void replace_deactivate_replacement_points(codeinfo *code);
 
+bool replace_me_wrapper(u1 *pc);
+
 void replace_me(rplpoint *rp,executionstate_t *es);
 
 #if !defined(NDEBUG)