diff options
author | Calin Juravle <calin@google.com> | 2015-03-17 21:16:24 +0000 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2015-03-17 21:16:24 +0000 |
commit | 2dae78cbd4394a4498a845c6943992b57bd07b6e (patch) | |
tree | ea27dd630728cfa994ce2c5da522538744a7a8a9 | |
parent | 8de00e3f5fcb99bfd7e4dc679ab7333549bec2c1 (diff) | |
download | art-2dae78cbd4394a4498a845c6943992b57bd07b6e.zip art-2dae78cbd4394a4498a845c6943992b57bd07b6e.tar.gz art-2dae78cbd4394a4498a845c6943992b57bd07b6e.tar.bz2 |
Revert "Make subs alter flags when rn is an immediate"
This reverts commit 8de00e3f5fcb99bfd7e4dc679ab7333549bec2c1.
Change-Id: Ie9da31279f565f165d51d8c0036928377280e3b8
-rw-r--r-- | compiler/utils/arm/assembler_thumb2.cc | 33 | ||||
-rw-r--r-- | compiler/utils/arm/assembler_thumb2_test.cc | 10 |
2 files changed, 15 insertions, 28 deletions
diff --git a/compiler/utils/arm/assembler_thumb2.cc b/compiler/utils/arm/assembler_thumb2.cc index 31cf727..6d0571e 100644 --- a/compiler/utils/arm/assembler_thumb2.cc +++ b/compiler/utils/arm/assembler_thumb2.cc @@ -826,9 +826,7 @@ void Thumb2Assembler::Emit32BitDataProcessing(Condition cond ATTRIBUTE_UNUSED, // Check special cases. if ((opcode == SUB || opcode == ADD) && (so.GetImmediate() < (1u << 12))) { if (opcode == SUB) { - if (!set_cc) { - thumb_opcode = 5U /* 0b0101 */; - } + thumb_opcode = 5U /* 0b0101 */; } else { thumb_opcode = 0; } @@ -838,14 +836,13 @@ void Thumb2Assembler::Emit32BitDataProcessing(Condition cond ATTRIBUTE_UNUSED, uint32_t imm3 = (imm >> 8) & 7U /* 0b111 */; uint32_t imm8 = imm & 0xff; - encoding = B31 | B30 | B29 | B28 | - (set_cc ? B20 : B25) | - thumb_opcode << 21 | - rn << 16 | - rd << 8 | - i << 26 | - imm3 << 12 | - imm8; + encoding = B31 | B30 | B29 | B28 | B25 | + thumb_opcode << 21 | + rn << 16 | + rd << 8 | + i << 26 | + imm3 << 12 | + imm8; } else { // Modified immediate. uint32_t imm = ModifiedImmediate(so.encodingThumb()); @@ -861,13 +858,13 @@ void Thumb2Assembler::Emit32BitDataProcessing(Condition cond ATTRIBUTE_UNUSED, imm; } } else if (so.IsRegister()) { - // Register (possibly shifted) - encoding = B31 | B30 | B29 | B27 | B25 | - thumb_opcode << 21 | - (set_cc ? 1 : 0) << 20 | - rn << 16 | - rd << 8 | - so.encodingThumb(); + // Register (possibly shifted) + encoding = B31 | B30 | B29 | B27 | B25 | + thumb_opcode << 21 | + (set_cc ? 1 : 0) << 20 | + rn << 16 | + rd << 8 | + so.encodingThumb(); } Emit32(encoding); } diff --git a/compiler/utils/arm/assembler_thumb2_test.cc b/compiler/utils/arm/assembler_thumb2_test.cc index d802852..ebea9d4 100644 --- a/compiler/utils/arm/assembler_thumb2_test.cc +++ b/compiler/utils/arm/assembler_thumb2_test.cc @@ -227,14 +227,4 @@ TEST_F(AssemblerThumb2Test, eor) { DriverStr(expected, "abs"); } -TEST_F(AssemblerThumb2Test, sub) { - __ subs(arm::R1, arm::R0, arm::ShifterOperand(42)); - __ sub(arm::R1, arm::R0, arm::ShifterOperand(42)); - - const char* expected = - "subs r1, r0, #42\n" - "subw r1, r0, #42\n"; - DriverStr(expected, "sub"); -} - } // namespace art |