Index: src/full-codegen/mips64/full-codegen-mips64.cc |
diff --git a/src/full-codegen/mips64/full-codegen-mips64.cc b/src/full-codegen/mips64/full-codegen-mips64.cc |
index 902f510d1ae8403ef7f3c785865ad7bbf6e5939f..65fa924b2823a48abb6d95ef71da95360ac11517 100644 |
--- a/src/full-codegen/mips64/full-codegen-mips64.cc |
+++ b/src/full-codegen/mips64/full-codegen-mips64.cc |
@@ -3203,25 +3203,23 @@ void FullCodeGenerator::VisitCountOperation(CountOperation* expr) { |
VisitForStackValue(prop->obj()->AsSuperPropertyReference()->this_var()); |
VisitForAccumulatorValue( |
prop->obj()->AsSuperPropertyReference()->home_object()); |
- PushOperand(result_register()); |
const Register scratch = a1; |
- __ ld(scratch, MemOperand(sp, kPointerSize)); |
- PushOperands(scratch, result_register()); |
+ __ ld(scratch, MemOperand(sp, 0)); // this |
+ PushOperands(result_register(), scratch, result_register()); |
EmitNamedSuperPropertyLoad(prop); |
break; |
} |
case KEYED_SUPER_PROPERTY: { |
VisitForStackValue(prop->obj()->AsSuperPropertyReference()->this_var()); |
- VisitForAccumulatorValue( |
+ VisitForStackValue( |
prop->obj()->AsSuperPropertyReference()->home_object()); |
- const Register scratch = a1; |
- const Register scratch1 = a4; |
- __ Move(scratch, result_register()); |
VisitForAccumulatorValue(prop->key()); |
- PushOperands(scratch, result_register()); |
- __ ld(scratch1, MemOperand(sp, 2 * kPointerSize)); |
- PushOperands(scratch1, scratch, result_register()); |
+ const Register scratch1 = a1; |
+ const Register scratch2 = a4; |
+ __ ld(scratch1, MemOperand(sp, 1 * kPointerSize)); // this |
+ __ ld(scratch2, MemOperand(sp, 0 * kPointerSize)); // home object |
+ PushOperands(result_register(), scratch1, scratch2, result_register()); |
EmitKeyedSuperPropertyLoad(prop); |
break; |
} |