diff options
Diffstat (limited to 'deps/v8/src/mips64/simulator-mips64.h')
-rw-r--r-- | deps/v8/src/mips64/simulator-mips64.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/deps/v8/src/mips64/simulator-mips64.h b/deps/v8/src/mips64/simulator-mips64.h index 346d3584f4..dea9e30adf 100644 --- a/deps/v8/src/mips64/simulator-mips64.h +++ b/deps/v8/src/mips64/simulator-mips64.h @@ -223,12 +223,12 @@ class Simulator { void set_pc(int64_t value); int64_t get_pc() const; - Address get_sp() { + Address get_sp() const { return reinterpret_cast<Address>(static_cast<intptr_t>(get_register(sp))); } // Accessor to the internal simulator stack area. - uintptr_t StackLimit() const; + uintptr_t StackLimit(uintptr_t c_limit) const; // Executes MIPS instructions until the PC reaches end_sim_pc. void Execute(); @@ -411,6 +411,7 @@ class Simulator { instr->OpcodeValue()); } InstructionDecode(instr); + SNPrintF(trace_buf_, " "); } // ICache. @@ -508,15 +509,14 @@ class Simulator { // The simulator has its own stack. Thus it has a different stack limit from -// the C-based native code. Setting the c_limit to indicate a very small -// stack cause stack overflow errors, since the simulator ignores the input. -// This is unlikely to be an issue in practice, though it might cause testing -// trouble down the line. +// the C-based native code. The JS-based limit normally points near the end of +// the simulator stack. When the C-based limit is exhausted we reflect that by +// lowering the JS-based limit as well, to make stack checks trigger. class SimulatorStack : public v8::internal::AllStatic { public: static inline uintptr_t JsLimitFromCLimit(Isolate* isolate, uintptr_t c_limit) { - return Simulator::current(isolate)->StackLimit(); + return Simulator::current(isolate)->StackLimit(c_limit); } static inline uintptr_t RegisterCTryCatch(uintptr_t try_catch_address) { |