| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index 6e075937977f83461a7ab19be17c061a4be23a49..46d8f408823c0d20cc66693b26469b5f75dd8a93 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -1055,7 +1055,13 @@ LInstruction* LChunkBuilder::DoThisFunction(HThisFunction* instr) {
|
|
|
|
|
| LInstruction* LChunkBuilder::DoContext(HContext* instr) {
|
| - return instr->HasNoUses() ? NULL : DefineAsRegister(new(zone()) LContext);
|
| + if (instr->HasNoUses()) return NULL;
|
| +
|
| + if (info()->IsStub()) {
|
| + return DefineFixed(new(zone()) LContext, esi);
|
| + }
|
| +
|
| + return DefineAsRegister(new(zone()) LContext);
|
| }
|
|
|
|
|
| @@ -1865,7 +1871,10 @@ LInstruction* LChunkBuilder::DoClampToUint8(HClampToUint8* instr) {
|
|
|
|
|
| LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
|
| - return new(zone()) LReturn(UseFixed(instr->value(), eax));
|
| + LOperand* context = info()->IsStub()
|
| + ? UseFixed(instr->context(), esi)
|
| + : NULL;
|
| + return new(zone()) LReturn(UseFixed(instr->value(), eax), context);
|
| }
|
|
|
|
|
|
|