diff options
author | Guillaume "Vermeille" Sanchez <guillaumesa@google.com> | 2015-03-11 14:00:30 +0000 |
---|---|---|
committer | Guillaume Sanchez <guillaumesa@google.com> | 2015-03-11 16:36:08 +0000 |
commit | bada8b0f0a10bd32d6cb87ed4e57f2aa3d7c03c2 (patch) | |
tree | ffb5b8e7caaed4e4c1a629703fe2ecb2d6e58142 /compiler/utils | |
parent | e8e42f3548fd894f860912bb1b71ce6fa2d7daf3 (diff) | |
download | android_art-bada8b0f0a10bd32d6cb87ed4e57f2aa3d7c03c2.tar.gz android_art-bada8b0f0a10bd32d6cb87ed4e57f2aa3d7c03c2.tar.bz2 android_art-bada8b0f0a10bd32d6cb87ed4e57f2aa3d7c03c2.zip |
Forbid the use of shifts in ShifterOperand in Thumb2
Change-Id: Ib141f53e52cce3032a42fbc991303e227c98820b
Diffstat (limited to 'compiler/utils')
-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: |