| Index: src/ppc/deoptimizer-ppc.cc
|
| diff --git a/src/ppc/deoptimizer-ppc.cc b/src/ppc/deoptimizer-ppc.cc
|
| index 58e9e939f561b3f875ff238b897ace00add2ecac..ac1504c0202a5b3bb9a1213217720993a1f2f628 100644
|
| --- a/src/ppc/deoptimizer-ppc.cc
|
| +++ b/src/ppc/deoptimizer-ppc.cc
|
| @@ -25,6 +25,12 @@ int Deoptimizer::patch_size() {
|
| }
|
|
|
|
|
| +void Deoptimizer::EnsureRelocSpaceForLazyDeoptimization(Handle<Code> code) {
|
| + // Empty because there is no need for relocation information for the code
|
| + // patching in Deoptimizer::PatchCodeForDeoptimization below.
|
| +}
|
| +
|
| +
|
| void Deoptimizer::PatchCodeForDeoptimization(Isolate* isolate, Code* code) {
|
| Address code_start_address = code->instruction_start();
|
|
|
| @@ -86,9 +92,12 @@ void Deoptimizer::FillInputFrame(Address tos, JavaScriptFrame* frame) {
|
| // Set the register values. The values are not important as there are no
|
| // callee saved registers in JavaScript frames, so all registers are
|
| // spilled. Registers fp and sp are set to the correct values though.
|
| + // We ensure the values are Smis to avoid confusing the garbage
|
| + // collector in the event that any values are retreived and stored
|
| + // elsewhere.
|
|
|
| for (int i = 0; i < Register::kNumRegisters; i++) {
|
| - input_->SetRegister(i, i * 4);
|
| + input_->SetRegister(i, reinterpret_cast<intptr_t>(Smi::FromInt(i)));
|
| }
|
| input_->SetRegister(sp.code(), reinterpret_cast<intptr_t>(frame->sp()));
|
| input_->SetRegister(fp.code(), reinterpret_cast<intptr_t>(frame->fp()));
|
|
|