aboutsummaryrefslogtreecommitdiff
path: root/arm_utils_unittest.cc
diff options
context:
space:
mode:
authorSamuel Huang <huangs@chromium.org>2019-01-16 15:31:06 +0000
committerCopybara-Service <copybara-worker@google.com>2021-07-25 20:44:02 -0700
commit3321a9e2309f02753ef88c1c96e999ac7a6fccfe (patch)
treebad686b817cf9f5e544433027916d8e120c8d68e /arm_utils_unittest.cc
parent65b242dcf03e2f24e7983fd1f47e84e4eb822cc5 (diff)
downloadzucchini-3321a9e2309f02753ef88c1c96e999ac7a6fccfe.tar.gz
[Zucchini] ARM code: Fix counting mistake; rename T21 to T20.
ARM instruction B encoding T3 specifies: |code|: 11110Scc cciiiiii 10(J1)0(J2)jjj jjjjjjjj |disp|: SSSSSSSS SSSS(J2)(J1)ii iiiijjjj jjjjjjj0 There are 20 bits in |code| dedicated for |disp|: S iiiiii (J1)(J2)jjj jjjjjjjj Previously this was miscounted as 21! This CL corrects the mistake, and renames "T21" to "T20". There's no change in behavior. Bug: 918867 Change-Id: Ie571bc1a413c4b77f2017cfd2ffe8bf99975ef7a Reviewed-on: https://chromium-review.googlesource.com/c/1413352 Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Samuel Huang <huangs@chromium.org> Commit-Queue: Samuel Huang <huangs@chromium.org> Cr-Commit-Position: refs/heads/master@{#623243} NOKEYCHECK=True GitOrigin-RevId: 64b76696cded1502e1f9dd055dd3e2a51fa70f80
Diffstat (limited to 'arm_utils_unittest.cc')
-rw-r--r--arm_utils_unittest.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/arm_utils_unittest.cc b/arm_utils_unittest.cc
index c6d513d..1b328ee 100644
--- a/arm_utils_unittest.cc
+++ b/arm_utils_unittest.cc
@@ -29,7 +29,7 @@ uint32_t kCleanSlateBL_A1 = 0x0B000000; // A24.
uint32_t kCleanSlateBLX_A2 = 0xFA000000; // A24.
uint16_t kCleanSlateB_T1 = 0xD000; // T8.
uint16_t kCleanSlateB_T2 = 0xE000; // T11.
-uint32_t kCleanSlateB_T3 = 0xF0008000; // T21.
+uint32_t kCleanSlateB_T3 = 0xF0008000; // T20.
// For T4 encodings, |disp| = 0 means J1 = J2 = 1, so include 0x00002800.
uint32_t kCleanSlateB_T4 = 0xF0009000 | 0x00002800; // T24.
uint32_t kCleanSlateBL_T1 = 0xF000D000 | 0x00002800; // T24.
@@ -334,20 +334,20 @@ TEST(Arm32Rel32Translator, EncodeDecode) {
{0x07FE, -0x0800, 0, 2, -2, 4, 0x40, 0x42},
{1, -1, 0x41, 0x43, 0x0800, -0x0802});
- // T21 tests.
- ArmTranslatorEncodeDecodeTest<Arm32Rel32Translator::AddrTraits_T21> test_T21;
+ // T20 tests.
+ ArmTranslatorEncodeDecodeTest<Arm32Rel32Translator::AddrTraits_T20> test_T20;
for (int cond = 0; cond <= 0x0E; ++cond) {
ArmRelInstruction<uint32_t> B_T3_cond(
"11110Scc cciiiiii 10(J1)0(J2)jjj jjjjjjjj",
kCleanSlateB_T3 | (cond << 22));
- test_T21.Run("SSSSSSSS SSSS(J2)(J1)ii iiiijjjj jjjjjjj0",
+ test_T20.Run("SSSSSSSS SSSS(J2)(J1)ii iiiijjjj jjjjjjj0",
{"S", "J2", "J1", "i", "j"}, {B_T3_cond},
{0x000FFFFE, -0x00100000, 0, 2, -2, 4, 0x40, 0x42},
{1, -1, 0x41, 0x43, 0x00100000, -0x00100002});
}
ArmRelInstruction<uint32_t> B_T3_invalid(
"11110.11 11...... 10.0.... ........", kCleanSlateB_T3 | (0x0F << 22));
- test_T21.Run("........ ........ ........ ........",
+ test_T20.Run("........ ........ ........ ........",
std::vector<std::string>(), {B_T3_invalid},
std::vector<arm_disp_t>(),
{0x000FFFFE, -0x00100000, 0, 2, 4, 0x40, 0x42, 1, 0x41, 0x43,