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