diff options
Diffstat (limited to 'compiler/dex/quick/mips/assemble_mips.cc')
-rw-r--r-- | compiler/dex/quick/mips/assemble_mips.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/dex/quick/mips/assemble_mips.cc b/compiler/dex/quick/mips/assemble_mips.cc index a5792549ca..baae31915e 100644 --- a/compiler/dex/quick/mips/assemble_mips.cc +++ b/compiler/dex/quick/mips/assemble_mips.cc @@ -672,16 +672,17 @@ AssemblerStatus MipsMir2Lir::AssembleInstructions(CodeOffset start_addr) { bits |= (value << encoder->field_loc[i].end); break; case kFmtDfp: { - DCHECK(MIPS_DOUBLEREG(operand)); + // TODO: do we need to adjust now that we're using 64BitSolo? + DCHECK(RegStorage::IsDouble(operand)) << ", Operand = 0x" << std::hex << operand; DCHECK_EQ((operand & 0x1), 0U); - value = ((operand & MIPS_FP_REG_MASK) << encoder->field_loc[i].start) & + value = (RegStorage::RegNum(operand) << encoder->field_loc[i].start) & ((1 << (encoder->field_loc[i].end + 1)) - 1); bits |= value; break; } case kFmtSfp: - DCHECK(MIPS_SINGLEREG(operand)); - value = ((operand & MIPS_FP_REG_MASK) << encoder->field_loc[i].start) & + DCHECK(RegStorage::IsSingle(operand)) << ", Operand = 0x" << std::hex << operand; + value = (RegStorage::RegNum(operand) << encoder->field_loc[i].start) & ((1 << (encoder->field_loc[i].end + 1)) - 1); bits |= value; break; |