MIPS64: Fix bug in super assignment from r24570.
authorpaul.lind@imgtec.com <paul.lind@imgtec.com>
Sun, 26 Oct 2014 22:43:17 +0000 (22:43 +0000)
committerpaul.lind@imgtec.com <paul.lind@imgtec.com>
Sun, 26 Oct 2014 22:43:40 +0000 (22:43 +0000)
TEST=mjsunit/harmony/super.js
BUG=
R=akos.palfi@imgtec.com

Review URL: https://codereview.chromium.org/677813002

Cr-Commit-Position: refs/heads/master@{#24889}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/mips64/full-codegen-mips64.cc

index 4779b1c..0aae037 100644 (file)
@@ -2523,10 +2523,10 @@ void FullCodeGenerator::EmitAssignment(Expression* expr) {
       Register scratch = a2;
       Register scratch2 = a3;
       __ mov(scratch, result_register());             // home_object
-      __ lw(v0, MemOperand(sp, kPointerSize));        // value
-      __ lw(scratch2, MemOperand(sp, 0));             // this
-      __ sw(scratch2, MemOperand(sp, kPointerSize));  // this
-      __ sw(scratch, MemOperand(sp, 0));              // home_object
+      __ ld(v0, MemOperand(sp, kPointerSize));        // value
+      __ ld(scratch2, MemOperand(sp, 0));             // this
+      __ sd(scratch2, MemOperand(sp, kPointerSize));  // this
+      __ sd(scratch, MemOperand(sp, 0));              // home_object
       // stack: this, home_object; v0: value
       EmitNamedSuperPropertyStore(prop);
       break;
@@ -2539,13 +2539,13 @@ void FullCodeGenerator::EmitAssignment(Expression* expr) {
       VisitForAccumulatorValue(prop->key());
       Register scratch = a2;
       Register scratch2 = a3;
-      __ lw(scratch2, MemOperand(sp, 2 * kPointerSize));  // value
+      __ ld(scratch2, MemOperand(sp, 2 * kPointerSize));  // value
       // stack: value, this, home_object; v0: key, a3: value
-      __ lw(scratch, MemOperand(sp, kPointerSize));  // this
-      __ sw(scratch, MemOperand(sp, 2 * kPointerSize));
-      __ lw(scratch, MemOperand(sp, 0));  // home_object
-      __ sw(scratch, MemOperand(sp, kPointerSize));
-      __ sw(v0, MemOperand(sp, 0));
+      __ ld(scratch, MemOperand(sp, kPointerSize));  // this
+      __ sd(scratch, MemOperand(sp, 2 * kPointerSize));
+      __ ld(scratch, MemOperand(sp, 0));  // home_object
+      __ sd(scratch, MemOperand(sp, kPointerSize));
+      __ sd(v0, MemOperand(sp, 0));
       __ Move(v0, scratch2);
       // stack: this, home_object, key; v0: value.
       EmitKeyedSuperPropertyStore(prop);