Index: src/mips/macro-assembler-mips.cc |
diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc |
index 0afe5157d6742c1128162dcb0ab2842f872d0173..6adb92bea5ca0c234083422ffaba396749bd331d 100644 |
--- a/src/mips/macro-assembler-mips.cc |
+++ b/src/mips/macro-assembler-mips.cc |
@@ -1396,19 +1396,23 @@ void MacroAssembler::Trunc_uw_d(FPURegister fd, |
void MacroAssembler::Mthc1(Register rt, FPURegister fs) { |
- if (IsFp64Mode()) { |
- mthc1(rt, fs); |
- } else { |
+ if (IsFp32Mode()) { |
mtc1(rt, fs.high()); |
+ } else { |
+ DCHECK(IsFp64Mode() || IsFpxxMode()); |
+ DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
+ mthc1(rt, fs); |
} |
} |
void MacroAssembler::Mfhc1(Register rt, FPURegister fs) { |
- if (IsFp64Mode()) { |
- mfhc1(rt, fs); |
- } else { |
+ if (IsFp32Mode()) { |
mfc1(rt, fs.high()); |
+ } else { |
+ DCHECK(IsFp64Mode() || IsFpxxMode()); |
+ DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
+ mfhc1(rt, fs); |
} |
} |
@@ -1614,13 +1618,15 @@ void MacroAssembler::BranchShortF(SecondaryField sizeField, Label* target, |
void MacroAssembler::FmoveLow(FPURegister dst, Register src_low) { |
- if (IsFp64Mode()) { |
+ if (IsFp32Mode()) { |
+ mtc1(src_low, dst); |
+ } else { |
+ DCHECK(IsFp64Mode() || IsFpxxMode()); |
+ DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)); |
DCHECK(!src_low.is(at)); |
mfhc1(at, dst); |
mtc1(src_low, dst); |
mthc1(at, dst); |
- } else { |
- mtc1(src_low, dst); |
} |
} |