Index: src/mips/assembler-mips.cc |
diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc |
index b659559fee09126803fe17512ff77845eb74b3f9..3f855d03e9b944f85b24a6cbd24d16058cd203ce 100644 |
--- a/src/mips/assembler-mips.cc |
+++ b/src/mips/assembler-mips.cc |
@@ -1655,10 +1655,12 @@ void Assembler::lwc1(FPURegister fd, const MemOperand& src) { |
void Assembler::ldc1(FPURegister fd, const MemOperand& src) { |
// Workaround for non-8-byte alignment of HeapNumber, convert 64-bit |
// load to two 32-bit loads. |
- GenInstrImmediate(LWC1, src.rm(), fd, src.offset_); |
+ GenInstrImmediate(LWC1, src.rm(), fd, src.offset_ + |
+ Register::kMantissaOffset); |
FPURegister nextfpreg; |
nextfpreg.setcode(fd.code() + 1); |
- GenInstrImmediate(LWC1, src.rm(), nextfpreg, src.offset_ + 4); |
+ GenInstrImmediate(LWC1, src.rm(), nextfpreg, src.offset_ + |
+ Register::kExponentOffset); |
} |
@@ -1670,10 +1672,12 @@ void Assembler::swc1(FPURegister fd, const MemOperand& src) { |
void Assembler::sdc1(FPURegister fd, const MemOperand& src) { |
// Workaround for non-8-byte alignment of HeapNumber, convert 64-bit |
// store to two 32-bit stores. |
- GenInstrImmediate(SWC1, src.rm(), fd, src.offset_); |
+ GenInstrImmediate(SWC1, src.rm(), fd, src.offset_ + |
+ Register::kMantissaOffset); |
FPURegister nextfpreg; |
nextfpreg.setcode(fd.code() + 1); |
- GenInstrImmediate(SWC1, src.rm(), nextfpreg, src.offset_ + 4); |
+ GenInstrImmediate(SWC1, src.rm(), nextfpreg, src.offset_ + |
+ Register::kExponentOffset); |
} |