diff options
-rw-r--r-- | compiler/utils/arm/assembler_arm.h | 4 | ||||
-rw-r--r-- | compiler/utils/arm/assembler_thumb2.cc | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/compiler/utils/arm/assembler_arm.h b/compiler/utils/arm/assembler_arm.h index 8730f52eca..dd0dba2df4 100644 --- a/compiler/utils/arm/assembler_arm.h +++ b/compiler/utils/arm/assembler_arm.h @@ -100,6 +100,10 @@ class ShifterOperand { return rm_; } + Register GetSecondRegister() const { + return rs_; + } + enum Type { kUnknown = -1, kRegister, diff --git a/compiler/utils/arm/assembler_thumb2.cc b/compiler/utils/arm/assembler_thumb2.cc index 6d0571e263..eb5b4540f9 100644 --- a/compiler/utils/arm/assembler_thumb2.cc +++ b/compiler/utils/arm/assembler_thumb2.cc @@ -921,6 +921,8 @@ void Thumb2Assembler::Emit16BitDataProcessing(Condition cond, use_immediate = true; immediate = so.GetImmediate(); } else { + CHECK(!(so.IsRegister() && so.IsShift() && so.GetSecondRegister() != kNoRegister)) + << "No register-shifted register instruction available in thumb"; // Adjust rn and rd: only two registers will be emitted. switch (opcode) { case AND: |