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