* src/vm/jit/jit.h (basicblock): Added fields invars and outvars.
[cacao.git] / src / vm / jit / stack.h
index 02b2d41553accc0e55282dd4a4743574eab772ae..a08d5f2e53f40e5de297569472163c9164c99a96 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Christian Ullrich
 
-   $Id: stack.h 5303 2006-09-05 10:39:58Z edwin $
+   $Id: stack.h 5311 2006-09-05 11:40:03Z edwin $
 
 */
 
  * c...current stack
  */
 
+/* XXX this macro is much too big! */
+
 #define MARKREACHED(b,c) \
     do { \
                if ((b) <= (bptr)) \
                        (b)->bitflags |= BBFLAG_REPLACEMENT; \
            if ((b)->flags < BBREACHED) { \
+                       int locali; \
                    COPYCURSTACK((c)); \
             (b)->flags = BBREACHED; \
             (b)->instack = (c); \
             (b)->indepth = stackdepth; \
+                       (b)->invars = DMNEW(stackptr, stackdepth); \
+                       for (locali = stackdepth; locali--; (c) = (c)->prev) \
+                               (b)->invars[locali] = (c); \
         } else { \
             stackptr s = curstack; \
             stackptr t = (b)->instack; \