Chromium Code Reviews| Index: runtime/vm/assembler_arm.cc |
| =================================================================== |
| --- runtime/vm/assembler_arm.cc (revision 19404) |
| +++ runtime/vm/assembler_arm.cc (working copy) |
| @@ -1116,6 +1116,29 @@ |
| } |
| +void Assembler::mrc(Register rd, int32_t coproc, int32_t opc1, |
| + int32_t CRn, int32_t CRm, int32_t opc2, Condition cond) { |
|
regis
2013/03/04 21:54:52
crn, crm
|
| + ASSERT(rd != kNoRegister); |
| + ASSERT(cond != kNoCondition); |
| + |
| + // This is all the simulator and disassembler know about. |
| + ASSERT(coproc == 15); |
| + ASSERT(opc1 == 0); |
| + ASSERT(CRn == 0); |
| + ASSERT(CRm == 2); |
| + ASSERT(opc2 == 0); |
| + int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | |
| + B27 | B26 | B25 | B20 | B4 | |
| + ((opc1 & 0x7) << kOpc1Shift) | |
| + ((CRn & 0xf) << kCRnShift) | |
| + ((coproc & 0xf) << kCoprocShift) | |
| + ((opc2 & 0x7) << kOpc2Shift) | |
| + ((CRm & 0xf) << kCRmShift) | |
| + (static_cast<int32_t>(rd) << kRdShift); |
| + Emit(encoding); |
| +} |
| + |
| + |
| void Assembler::MarkExceptionHandler(Label* label) { |
| EmitType01(AL, 1, TST, 1, PC, R0, ShifterOperand(0)); |
| Label l; |