diff options
author | Guillaume "Vermeille" Sanchez <guillaumesa@google.com> | 2015-03-11 14:00:30 +0000 |
---|---|---|
committer | Guillaume "Vermeille" Sanchez <guillaumesa@google.com> | 2015-03-25 10:19:27 +0000 |
commit | ab4a2f5995b79c2b5b28c91b419a2c91cb88e377 (patch) | |
tree | 5c39b9f7ef283ee75d437903cfd10c3af49ff331 /compiler/utils | |
parent | dc62c48937a6476ed9c0d739f6b3b5c26f758371 (diff) | |
download | android_art-ab4a2f5995b79c2b5b28c91b419a2c91cb88e377.tar.gz android_art-ab4a2f5995b79c2b5b28c91b419a2c91cb88e377.tar.bz2 android_art-ab4a2f5995b79c2b5b28c91b419a2c91cb88e377.zip |
Forbid the use of shifts in ShifterOperand in Thumb2
Change-Id: I4b3b4d90f11f2dd0c9a274b724051fa98982fb19
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 e95db0d6e9..a894319c99 100644 --- a/compiler/utils/arm/assembler_thumb2.cc +++ b/compiler/utils/arm/assembler_thumb2.cc @@ -924,6 +924,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: |