| 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);
|
| }
|
|
|
|
|
|
|