jitcraft/Stack.h
changeset 1 27f12e2fc369
parent 0 c455ebb9a5dc
child 4 633176823669
     1.1 --- a/jitcraft/Stack.h	Mon Jun 25 02:57:28 2012 -0700
     1.2 +++ b/jitcraft/Stack.h	Mon Jun 25 21:20:01 2012 -0700
     1.3 @@ -55,12 +55,14 @@
     1.4      Frame *prev_;
     1.5      bytecode *prevpc_;
     1.6      Code *code_;
     1.7 +    void *prevUnsafeStack_;
     1.8  
     1.9    public:
    1.10 -    Frame(Frame *prev, bytecode *prevpc, Code *code)
    1.11 +    Frame(Frame *prev, bytecode *prevpc, Code *code, void *prevUnsafeStack)
    1.12        : prev_(prev),
    1.13          prevpc_(prevpc),
    1.14 -        code_(code)
    1.15 +        code_(code),
    1.16 +        prevUnsafeStack_(prevUnsafeStack)
    1.17      {
    1.18      }
    1.19  
    1.20 @@ -79,6 +81,9 @@
    1.21      bytecode *prevpc() const {
    1.22          return prevpc_;
    1.23      }
    1.24 +    void *prevUnsafeStack() const {
    1.25 +        return prevUnsafeStack_;
    1.26 +    }
    1.27      LocalSlot &arg(unsigned slot) {
    1.28          assert(slot < code()->nargs());
    1.29          return *(reinterpret_cast<LocalSlot *>(this) - slot - 1);
    1.30 @@ -137,6 +142,9 @@
    1.31      bool initialize();
    1.32  
    1.33    public:
    1.34 +    void *position() const {
    1.35 +        return pos_;
    1.36 +    }
    1.37      void *allocate(size_t nbytes) {
    1.38          nbytes = Align(nbytes, kMallocAlignment);
    1.39