[vm, ffi] Distinguish the Dart names for registers from their standard ABI names.

TEST=ci
Change-Id: I7e3f5b407370aecba49049965071d7409c38177c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/232481
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/vm/compiler/assembler/assembler_arm64_test.cc b/runtime/vm/compiler/assembler/assembler_arm64_test.cc
index 97ce2ab..4c40284 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm64_test.cc
@@ -349,8 +349,8 @@
       "movn r2, #0x0\n"
       "movz r1, #0x1\n"
       "movz r0, #0x0\n"
-      "adds ip0, r2, r1\n"
-      "adcs ip0, r2, r0\n"
+      "adds tmp, r2, r1\n"
+      "adcs tmp, r2, r0\n"
       "adc r0, r0, r0\n"
       "ret\n");
 }
@@ -370,8 +370,8 @@
   EXPECT_DISASSEMBLY(
       "movz r1, #0x1\n"
       "movz r0, #0x0\n"
-      "subs ip0, r0, r1\n"
-      "sbcs ip0, r0, r0\n"
+      "subs tmp, r0, r1\n"
+      "sbcs tmp, r0, r0\n"
       "sbc r0, r0, r0\n"
       "ret\n");
 }
@@ -395,8 +395,8 @@
       "movz r1, #0x1\n"
       "movn r2, #0x0\n"
       "mov r3, 0x7fffffffffffffff\n"
-      "adds ip0, r2, r1\n"
-      "adcs ip0, r3, r0\n"
+      "adds tmp, r2, r1\n"
+      "adcs tmp, r3, r0\n"
       "csinc r0, r0, r0, vs\n"
       "ret\n");
 }
@@ -418,8 +418,8 @@
       "movn r2, #0x0\n"
       "movz r1, #0x1\n"
       "movz r0, #0x0\n"
-      "addws ip0, r2, r1\n"
-      "adcws ip0, r2, r0\n"
+      "addws tmp, r2, r1\n"
+      "adcws tmp, r2, r0\n"
       "adcw r0, r0, r0\n"
       "ret\n");
 }
@@ -439,8 +439,8 @@
   EXPECT_DISASSEMBLY(
       "movz r1, #0x1\n"
       "movz r0, #0x0\n"
-      "subws ip0, r0, r1\n"
-      "sbcws ip0, r0, r0\n"
+      "subws tmp, r0, r1\n"
+      "sbcws tmp, r0, r0\n"
       "sbcw r0, r0, r0\n"
       "ret\n");
 }
@@ -464,8 +464,8 @@
       "movz r1, #0x1\n"
       "mov r2, 0xffffffff\n"
       "mov r3, 0x7fffffff\n"
-      "addws ip0, r2, r1\n"
-      "adcws ip0, r3, r0\n"
+      "addws tmp, r2, r1\n"
+      "adcws tmp, r3, r0\n"
       "csinc r0, r0, r0, vs\n"
       "ret\n");
 }
@@ -489,14 +489,14 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x10\n"
       "movz r0, #0x2b\n"
       "movz r1, #0x2a\n"
-      "str r1, [r15, #-8]!\n"
-      "ldr r0, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "str r1, [sp, #-8]!\n"
+      "ldr r0, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -515,14 +515,14 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x2b\n"
       "movz r1, #0x2a\n"
-      "add r2, r15, #0x1\n"
+      "add r2, sp, #0x1\n"
       "str r1, [r2, #-1]\n"
       "ldr r0, [r2, #-1]\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -548,15 +548,15 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x100\n"
       "movz r0, #0x2b\n"
       "movz r1, #0x2a\n"
-      "str r1, [r15, #-256]!\n"
-      "ldr r0, [r15], #248 !\n"
-      "add r15, r15, #0x8\n"
-      "mov csp, r15\n"
+      "str r1, [sp, #-256]!\n"
+      "ldr r0, [sp], #248 !\n"
+      "add sp, sp, #0x8\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -577,16 +577,16 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x2b\n"
       "movz r1, #0x2a\n"
-      "sub r15, r15, #0x1000\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "str r1, [r15, #4096]\n"
-      "add r15, r15, #0x1000\n"
-      "ldr r0, [r15]\n"
-      "mov csp, r15\n"
+      "sub sp, sp, #0x1000\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "str r1, [sp, #4096]\n"
+      "add sp, sp, #0x1000\n"
+      "ldr r0, [sp]\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -611,18 +611,18 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x2b\n"
       "movz r1, #0x2a\n"
       "movz r2, #0xfff8\n"
       "movk r2, #0xffff lsl 16\n"
-      "str r1, [r15, r2 sxtw]\n"
-      "sub r15, r15, #0x8\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "ldr r0, [r15]\n"
-      "add r15, r15, #0x8\n"
-      "mov csp, r15\n"
+      "str r1, [sp, r2 sxtw]\n"
+      "sub sp, sp, #0x8\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "ldr r0, [sp]\n"
+      "add sp, sp, #0x8\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -645,17 +645,17 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x2b\n"
       "movz r1, #0x2a\n"
       "movz r2, #0xa\n"
-      "sub r15, r15, #0x50\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "str r1, [r15, r2 uxtx scaled]\n"
-      "ldr r0, [r15, r2 uxtx scaled]\n"
-      "add r15, r15, #0x50\n"
-      "mov csp, r15\n"
+      "sub sp, sp, #0x50\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "str r1, [sp, r2 uxtx scaled]\n"
+      "ldr r0, [sp, r2 uxtx scaled]\n"
+      "add sp, sp, #0x50\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -677,14 +677,14 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-1, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x10\n"
       "mov r1, 0xffffffff\n"
-      "strw r1, [r15, #-4]!\n"
-      "ldrsw r0, [r15]\n"
-      "ldrsw r1, [r15], #4 !\n"
-      "mov csp, r15\n"
+      "strw r1, [sp, #-4]!\n"
+      "ldrsw r0, [sp]\n"
+      "ldrsw r1, [sp], #4 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -707,15 +707,15 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(1, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x10\n"
       "movz r2, #0x2b\n"
       "movz r3, #0x2a\n"
-      "stp r2, r3, [r15, #-16]!\n"
-      "ldp r0, r1, [r15], #16 !\n"
+      "stp r2, r3, [sp, #-16]!\n"
+      "ldp r0, r1, [sp], #16 !\n"
       "sub r0, r0, r1\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -737,17 +737,17 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(1, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r2, #0x2b\n"
       "movz r3, #0x2a\n"
-      "sub r15, r15, #0x20\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "stp r2, r3, [r15, #16]\n"
-      "ldp r0, r1, [r15, #16]\n"
-      "add r15, r15, #0x20\n"
+      "sub sp, sp, #0x20\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "stp r2, r3, [sp, #16]\n"
+      "ldp r0, r1, [sp, #16]\n"
+      "add sp, sp, #0x20\n"
       "sub r0, r0, r1\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -767,14 +767,14 @@
   typedef int (*PushRegisterPair)() DART_UNUSED;
   EXPECT_EQ(12, EXECUTE_TEST_CODE_INT64(PushRegisterPair, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r2, #0xc\n"
       "movz r3, #0x15\n"
-      "stp r2, r3, [r15, #-16]!\n"
-      "ldr r0, [r15], #8 !\n"
-      "ldr r1, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "stp r2, r3, [sp, #-16]!\n"
+      "ldr r0, [sp], #8 !\n"
+      "ldr r1, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -795,14 +795,14 @@
   EXPECT_EQ(12,
             EXECUTE_TEST_CODE_INT64(PushRegisterPairReversed, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r3, #0xc\n"
       "movz r2, #0x15\n"
-      "stp r3, r2, [r15, #-16]!\n"
-      "ldr r0, [r15], #8 !\n"
-      "ldr r1, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "stp r3, r2, [sp, #-16]!\n"
+      "ldr r0, [sp], #8 !\n"
+      "ldr r1, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -822,14 +822,14 @@
   typedef int (*PopRegisterPair)() DART_UNUSED;
   EXPECT_EQ(12, EXECUTE_TEST_CODE_INT64(PopRegisterPair, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r2, #0xc\n"
       "movz r3, #0x15\n"
-      "str r3, [r15, #-8]!\n"
-      "str r2, [r15, #-8]!\n"
-      "ldp r0, r1, [r15], #16 !\n"
-      "mov csp, r15\n"
+      "str r3, [sp, #-8]!\n"
+      "str r2, [sp, #-8]!\n"
+      "ldp r0, r1, [sp], #16 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -850,14 +850,14 @@
   EXPECT_EQ(12,
             EXECUTE_TEST_CODE_INT64(PopRegisterPairReversed, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r3, #0xc\n"
       "movz r2, #0x15\n"
-      "str r3, [r15, #-8]!\n"
-      "str r2, [r15, #-8]!\n"
-      "ldp r1, r0, [r15], #16 !\n"
-      "mov csp, r15\n"
+      "str r3, [sp, #-8]!\n"
+      "str r2, [sp, #-8]!\n"
+      "ldp r1, r0, [sp], #16 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -882,17 +882,17 @@
   typedef intptr_t (*Semaphore)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Semaphore, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x28\n"
       "movz r1, #0x2a\n"
-      "str r0, [r15, #-8]!\n"
-      "ldxr r0, r15\n"
-      "stxr ip0, r1, r15\n"
-      "cmp ip0, #0x0\n"
+      "str r0, [sp, #-8]!\n"
+      "ldxr r0, sp\n"
+      "stxr tmp, r1, sp\n"
+      "cmp tmp, #0x0\n"
       "bne -12\n"
-      "ldr r0, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "ldr r0, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -915,17 +915,17 @@
   typedef intptr_t (*FailedSemaphore)() DART_UNUSED;
   EXPECT_EQ(41, EXECUTE_TEST_CODE_INT64(FailedSemaphore, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x28\n"
       "movz r1, #0x2a\n"
-      "str r0, [r15, #-8]!\n"
-      "ldxr r0, r15\n"
+      "str r0, [sp, #-8]!\n"
+      "ldxr r0, sp\n"
       "clrex\n"
-      "stxr ip0, r1, r15\n"
-      "ldr r0, [r15], #8 !\n"
-      "add r0, r0, ip0\n"
-      "mov csp, r15\n"
+      "stxr tmp, r1, sp\n"
+      "ldr r0, [sp], #8 !\n"
+      "add r0, r0, tmp\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -959,19 +959,19 @@
   EXPECT_EQ(42 + (DART_INT64_C(40) << 32),
             EXECUTE_TEST_CODE_INT64(Semaphore32, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x28\n"
       "add r0, r0, r0 lsl #32\n"
-      "str r0, [r15, #-8]!\n"
+      "str r0, [sp, #-8]!\n"
       "movz r0, #0x28\n"
       "movz r1, #0x2a\n"
-      "ldxrw r0, r15\n"
-      "stxrw ip0, r1, r15\n"
-      "cmp ip0, #0x0\n"
+      "ldxrw r0, sp\n"
+      "stxrw tmp, r1, sp\n"
+      "cmp tmp, #0x0\n"
       "bne -12\n"
-      "ldr r0, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "ldr r0, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -1001,19 +1001,19 @@
   EXPECT_EQ(41 + (DART_INT64_C(40) << 32),
             EXECUTE_TEST_CODE_INT64(FailedSemaphore32, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "movz r0, #0x28\n"
       "add r0, r0, r0 lsl #32\n"
-      "str r0, [r15, #-8]!\n"
+      "str r0, [sp, #-8]!\n"
       "movz r0, #0x28\n"
       "movz r1, #0x2a\n"
-      "ldxrw r0, r15\n"
+      "ldxrw r0, sp\n"
       "clrex\n"
-      "stxrw ip0, r1, r15\n"
-      "ldr r0, [r15], #8 !\n"
-      "add r0, r0, ip0\n"
-      "mov csp, r15\n"
+      "stxrw tmp, r1, sp\n"
+      "ldr r0, [sp], #8 !\n"
+      "add r0, r0, tmp\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -1072,66 +1072,66 @@
   EXPECT_EQ(0x42,
             EXECUTE_TEST_CODE_INT64(LoadAcquireStoreRelease, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "stp fp, lr, [r15, #-16]!\n"
-      "mov fp, r15\n"
-      "movz ip0, #0x7788\n"
-      "movk ip0, #0x5566 lsl 16\n"
-      "movk ip0, #0x3344 lsl 32\n"
-      "movk ip0, #0x1122 lsl 48\n"
-      "str ip0, [r15, #-8]!\n"
-      "ldar r1, r15\n"
-      "movz ip1, #0x7788\n"
-      "movk ip1, #0x5566 lsl 16\n"
-      "movk ip1, #0x3344 lsl 32\n"
-      "movk ip1, #0x1122 lsl 48\n"
-      "cmp r1, ip1\n"
+      "stp fp, lr, [sp, #-16]!\n"
+      "mov fp, sp\n"
+      "movz tmp, #0x7788\n"
+      "movk tmp, #0x5566 lsl 16\n"
+      "movk tmp, #0x3344 lsl 32\n"
+      "movk tmp, #0x1122 lsl 48\n"
+      "str tmp, [sp, #-8]!\n"
+      "ldar r1, sp\n"
+      "movz tmp2, #0x7788\n"
+      "movk tmp2, #0x5566 lsl 16\n"
+      "movk tmp2, #0x3344 lsl 32\n"
+      "movk tmp2, #0x1122 lsl 48\n"
+      "cmp r1, tmp2\n"
       "bne +164\n"
-      "add r15, r15, #0x8\n"
-      "movz ip0, #0x7788\n"
-      "movk ip0, #0x5566 lsl 16\n"
-      "movk ip0, #0x3344 lsl 32\n"
-      "movk ip0, #0x1122 lsl 48\n"
-      "str ip0, [r15, #-8]!\n"
-      "ldarw r1, r15\n"
-      "movz ip1, #0x7788\n"
-      "movk ip1, #0x5566 lsl 16\n"
-      "cmp r1, ip1\n"
+      "add sp, sp, #0x8\n"
+      "movz tmp, #0x7788\n"
+      "movk tmp, #0x5566 lsl 16\n"
+      "movk tmp, #0x3344 lsl 32\n"
+      "movk tmp, #0x1122 lsl 48\n"
+      "str tmp, [sp, #-8]!\n"
+      "ldarw r1, sp\n"
+      "movz tmp2, #0x7788\n"
+      "movk tmp2, #0x5566 lsl 16\n"
+      "cmp r1, tmp2\n"
       "bne +120\n"
-      "add r15, r15, #0x8\n"
-      "movz ip0, #0x0\n"
-      "str ip0, [r15, #-8]!\n"
+      "add sp, sp, #0x8\n"
+      "movz tmp, #0x0\n"
+      "str tmp, [sp, #-8]!\n"
       "movz r1, #0x7788\n"
       "movk r1, #0x5566 lsl 16\n"
       "movk r1, #0x3344 lsl 32\n"
       "movk r1, #0x1122 lsl 48\n"
-      "stlr r1, r15\n"
-      "ldr r1, [r15], #8 !\n"
-      "movz ip1, #0x7788\n"
-      "movk ip1, #0x5566 lsl 16\n"
-      "movk ip1, #0x3344 lsl 32\n"
-      "movk ip1, #0x1122 lsl 48\n"
-      "cmp r1, ip1\n"
+      "stlr r1, sp\n"
+      "ldr r1, [sp], #8 !\n"
+      "movz tmp2, #0x7788\n"
+      "movk tmp2, #0x5566 lsl 16\n"
+      "movk tmp2, #0x3344 lsl 32\n"
+      "movk tmp2, #0x1122 lsl 48\n"
+      "cmp r1, tmp2\n"
       "bne +60\n"
-      "movz ip0, #0x0\n"
-      "str ip0, [r15, #-8]!\n"
+      "movz tmp, #0x0\n"
+      "str tmp, [sp, #-8]!\n"
       "movz r1, #0x7788\n"
       "movk r1, #0x5566 lsl 16\n"
       "movk r1, #0x3344 lsl 32\n"
       "movk r1, #0x1122 lsl 48\n"
-      "stlrw r1, r15\n"
-      "ldr r1, [r15], #8 !\n"
-      "movz ip1, #0x7788\n"
-      "movk ip1, #0x5566 lsl 16\n"
-      "cmp r1, ip1\n"
+      "stlrw r1, sp\n"
+      "ldr r1, [sp], #8 !\n"
+      "movz tmp2, #0x7788\n"
+      "movk tmp2, #0x5566 lsl 16\n"
+      "cmp r1, tmp2\n"
       "bne +12\n"
       "movz r0, #0x42\n"
       "b +8\n"
       "movz r0, #0x84\n"
-      "mov r15, fp\n"
-      "ldp fp, lr, [r15], #16 !\n"
-      "mov csp, r15\n"
+      "mov sp, fp\n"
+      "ldp fp, lr, [sp], #16 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -1762,12 +1762,12 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov ip0, csp\n"
-      "sub ip1, csp, #0x1f\n"
-      "and csp, ip1, 0xfffffffffffffff0\n"
+      "mov tmp, csp\n"
+      "sub tmp2, csp, #0x1f\n"
+      "and csp, tmp2, 0xfffffffffffffff0\n"
       "mov r0, csp\n"
-      "sub r0, ip0, r0\n"
-      "mov csp, ip0\n"
+      "sub r0, tmp, r0\n"
+      "mov csp, tmp\n"
       "ret\n");
 }
 
@@ -2439,18 +2439,18 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v2, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v2, tmp\n"
       "fcmpd v1, v2\n"
       "beq +12\n"
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "ret\n");
 }
 
@@ -2546,18 +2546,18 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x2000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v2, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x2000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v2, tmp\n"
       "fcmpd v1, v2\n"
       "beq +12\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "ret\n");
 }
 
@@ -2598,18 +2598,18 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x6000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v2, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x6000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v2, tmp\n"
       "fcmpd v1, v2\n"
       "blt +12\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "ret\n");
 }
 
@@ -2632,19 +2632,19 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x6000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x2000 lsl 32\n"
-      "movk ip0, #0x406d lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x6000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x2000 lsl 32\n"
+      "movk tmp, #0x406d lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcmpd v1, #0.0\n"
       "bgt +16\n"
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "ret\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "ret\n");
 }
 
@@ -4276,11 +4276,11 @@
                   EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()),
                   0.0001f);
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0xa19c\n"
-      "movk ip0, #0xdc87 lsl 16\n"
-      "movk ip0, #0x6c87 lsl 32\n"
-      "movk ip0, #0x419d lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0xa19c\n"
+      "movk tmp, #0xdc87 lsl 16\n"
+      "movk tmp, #0x6c87 lsl 32\n"
+      "movk tmp, #0x419d lsl 48\n"
+      "fmovdr v0, tmp\n"
       "ret\n");
 }
 
@@ -4372,14 +4372,14 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x10\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "fstrd v1, [r15, #-8]!\n"
-      "fldrd v0, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "fstrd v1, [sp, #-8]!\n"
+      "fldrd v0, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -4402,16 +4402,16 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x10\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v2, v1\n"
-      "fstrs v2, [r15, #-8]!\n"
-      "fldrs v3, [r15], #8 !\n"
+      "fstrs v2, [sp, #-8]!\n"
+      "fldrs v3, [sp], #8 !\n"
       "fcvtds v0, v3\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -4441,22 +4441,22 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x10\n"
       "fmovd v1, 21.000000\n"
       "fmovd v2, 21.000000\n"
       "movz r1, #0x2a\n"
-      "str r1, [r15, #-8]!\n"
-      "fstrd v1, [r15, #-8]!\n"
-      "fstrd v2, [r15, #-8]!\n"
-      "fldrq v3, [r15], #16 !\n"
-      "ldr r0, [r15], #8 !\n"
-      "fstrq v3, [r15, #-16]!\n"
-      "fldrd v0, [r15], #8 !\n"
-      "fldrd v1, [r15], #8 !\n"
+      "str r1, [sp, #-8]!\n"
+      "fstrd v1, [sp, #-8]!\n"
+      "fstrd v2, [sp, #-8]!\n"
+      "fldrq v3, [sp], #16 !\n"
+      "ldr r0, [sp], #8 !\n"
+      "fstrq v3, [sp, #-16]!\n"
+      "fldrd v0, [sp], #8 !\n"
+      "fldrd v1, [sp], #8 !\n"
       "faddd v0, v0, v1\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -4470,9 +4470,9 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtzs r0, v0\n"
       "ret\n");
 }
@@ -4488,9 +4488,9 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0xc045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0xc045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtzsw r0, v0\n"
       "sxtw r0, r0\n"
       "ret\n");
@@ -4517,11 +4517,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMinInt64, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x8c40\n"
-      "movk ip0, #0x78b5 lsl 16\n"
-      "movk ip0, #0xaf1d lsl 32\n"
-      "movk ip0, #0xc415 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x8c40\n"
+      "movk tmp, #0x78b5 lsl 16\n"
+      "movk tmp, #0xaf1d lsl 32\n"
+      "movk tmp, #0xc415 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtzs r0, v0\n"
       "ret\n");
 }
@@ -4536,10 +4536,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x2000 lsl 16\n"
-      "movk ip0, #0xa05f lsl 32\n"
-      "movk ip0, #0x4202 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x2000 lsl 16\n"
+      "movk tmp, #0xa05f lsl 32\n"
+      "movk tmp, #0x4202 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtzsw r0, v0\n"
       "ret\n");
 }
@@ -4555,10 +4555,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMinInt32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x2000 lsl 16\n"
-      "movk ip0, #0xa05f lsl 32\n"
-      "movk ip0, #0xc202 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x2000 lsl 16\n"
+      "movk tmp, #0xa05f lsl 32\n"
+      "movk tmp, #0xc202 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtzsw r0, v0\n"
       "sxtw r0, r0\n"
       "ret\n");
@@ -4574,9 +4574,9 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(43, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtps r0, v0\n"
       "ret\n");
 }
@@ -4592,9 +4592,9 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0xc045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0xc045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtpsw r0, v0\n"
       "sxtw r0, r0\n"
       "ret\n");
@@ -4610,11 +4610,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMaxInt64, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x8c40\n"
-      "movk ip0, #0x78b5 lsl 16\n"
-      "movk ip0, #0xaf1d lsl 32\n"
-      "movk ip0, #0x4415 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x8c40\n"
+      "movk tmp, #0x78b5 lsl 16\n"
+      "movk tmp, #0xaf1d lsl 32\n"
+      "movk tmp, #0x4415 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtps r0, v0\n"
       "ret\n");
 }
@@ -4629,11 +4629,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMinInt64, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x8c40\n"
-      "movk ip0, #0x78b5 lsl 16\n"
-      "movk ip0, #0xaf1d lsl 32\n"
-      "movk ip0, #0xc415 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x8c40\n"
+      "movk tmp, #0x78b5 lsl 16\n"
+      "movk tmp, #0xaf1d lsl 32\n"
+      "movk tmp, #0xc415 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtps r0, v0\n"
       "ret\n");
 }
@@ -4648,10 +4648,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x2000 lsl 16\n"
-      "movk ip0, #0xa05f lsl 32\n"
-      "movk ip0, #0x4202 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x2000 lsl 16\n"
+      "movk tmp, #0xa05f lsl 32\n"
+      "movk tmp, #0x4202 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtpsw r0, v0\n"
       "ret\n");
 }
@@ -4667,10 +4667,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMinInt32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x2000 lsl 16\n"
-      "movk ip0, #0xa05f lsl 32\n"
-      "movk ip0, #0xc202 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x2000 lsl 16\n"
+      "movk tmp, #0xa05f lsl 32\n"
+      "movk tmp, #0xc202 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtpsw r0, v0\n"
       "sxtw r0, r0\n"
       "ret\n");
@@ -4686,9 +4686,9 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(42, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtms r0, v0\n"
       "ret\n");
 }
@@ -4704,9 +4704,9 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-43, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0xc045 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0xc045 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtmsw r0, v0\n"
       "sxtw r0, r0\n"
       "ret\n");
@@ -4722,11 +4722,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMaxInt64, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x8c40\n"
-      "movk ip0, #0x78b5 lsl 16\n"
-      "movk ip0, #0xaf1d lsl 32\n"
-      "movk ip0, #0x4415 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x8c40\n"
+      "movk tmp, #0x78b5 lsl 16\n"
+      "movk tmp, #0xaf1d lsl 32\n"
+      "movk tmp, #0x4415 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtms r0, v0\n"
       "ret\n");
 }
@@ -4741,11 +4741,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMinInt64, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x8c40\n"
-      "movk ip0, #0x78b5 lsl 16\n"
-      "movk ip0, #0xaf1d lsl 32\n"
-      "movk ip0, #0xc415 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x8c40\n"
+      "movk tmp, #0x78b5 lsl 16\n"
+      "movk tmp, #0xaf1d lsl 32\n"
+      "movk tmp, #0xc415 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtms r0, v0\n"
       "ret\n");
 }
@@ -4760,10 +4760,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMaxInt32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x2000 lsl 16\n"
-      "movk ip0, #0xa05f lsl 32\n"
-      "movk ip0, #0x4202 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x2000 lsl 16\n"
+      "movk tmp, #0xa05f lsl 32\n"
+      "movk tmp, #0x4202 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtmsw r0, v0\n"
       "ret\n");
 }
@@ -4779,10 +4779,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(kMinInt32, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x2000 lsl 16\n"
-      "movk ip0, #0xa05f lsl 32\n"
-      "movk ip0, #0xc202 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x2000 lsl 16\n"
+      "movk tmp, #0xa05f lsl 32\n"
+      "movk tmp, #0xc202 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtmsw r0, v0\n"
       "sxtw r0, r0\n"
       "ret\n");
@@ -4831,8 +4831,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fabsd v0, v1\n"
       "ret\n");
 }
@@ -4847,8 +4847,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0xc045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0xc045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fabsd v0, v1\n"
       "ret\n");
 }
@@ -4863,8 +4863,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(-42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fnegd v0, v1\n"
       "ret\n");
 }
@@ -4879,8 +4879,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0xc045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0xc045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fnegd v0, v1\n"
       "ret\n");
 }
@@ -4895,8 +4895,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(8.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4050 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4050 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fsqrtd v0, v1\n"
       "ret\n");
 }
@@ -4912,8 +4912,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4055 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4055 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fmovd v2, 0.500000\n"
       "fmuld v0, v1, v2\n"
       "ret\n");
@@ -4930,8 +4930,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4055 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4055 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fmovd v2, 2.000000\n"
       "fdivd v0, v1, v2\n"
       "ret\n");
@@ -4948,9 +4948,9 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0xc000 lsl 32\n"
-      "movk ip0, #0x4044 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0xc000 lsl 32\n"
+      "movk tmp, #0x4044 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fmovd v2, 0.500000\n"
       "faddd v0, v1, v2\n"
       "ret\n");
@@ -4967,9 +4967,9 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fmovd v2, 0.500000\n"
       "fsubd v0, v1, v2\n"
       "ret\n");
@@ -4992,19 +4992,19 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "sub r15, r15, #0x8\n"
-      "add r2, r15, #0x1\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "sub sp, sp, #0x8\n"
+      "add r2, sp, #0x1\n"
       "fstrd v1, [r2, #-1]\n"
       "fldrd v0, [r2, #-1]\n"
-      "add r15, r15, #0x8\n"
-      "mov csp, r15\n"
+      "add sp, sp, #0x8\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5030,18 +5030,18 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "sub csp, csp, #0x100\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "fstrd v1, [r15, #-256]!\n"
-      "fldrd v0, [r15], #248 !\n"
-      "add r15, r15, #0x8\n"
-      "mov csp, r15\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "fstrd v1, [sp, #-256]!\n"
+      "fldrd v0, [sp], #248 !\n"
+      "add sp, sp, #0x8\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5062,19 +5062,19 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "sub r15, r15, #0x1000\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "fstrd v1, [r15, #4096]\n"
-      "add r15, r15, #0x1000\n"
-      "fldrd v0, [r15]\n"
-      "mov csp, r15\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "sub sp, sp, #0x1000\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "fstrd v1, [sp, #4096]\n"
+      "add sp, sp, #0x1000\n"
+      "fldrd v0, [sp]\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5099,21 +5099,21 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "movz r2, #0xfff8\n"
       "movk r2, #0xffff lsl 16\n"
-      "fstrd v1, [r15, r2 sxtw]\n"
-      "sub r15, r15, #0x8\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "fldrd v0, [r15]\n"
-      "add r15, r15, #0x8\n"
-      "mov csp, r15\n"
+      "fstrd v1, [sp, r2 sxtw]\n"
+      "sub sp, sp, #0x8\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "fldrd v0, [sp]\n"
+      "add sp, sp, #0x8\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5136,20 +5136,20 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "movz r2, #0xa\n"
-      "sub r15, r15, #0x50\n"
-      "and csp, r15, 0xfffffffffffffff0\n"
-      "fstrd v1, [r15, r2 uxtx scaled]\n"
-      "fldrd v0, [r15, r2 uxtx scaled]\n"
-      "add r15, r15, #0x50\n"
-      "mov csp, r15\n"
+      "sub sp, sp, #0x50\n"
+      "and csp, sp, 0xfffffffffffffff0\n"
+      "fstrd v1, [sp, r2 uxtx scaled]\n"
+      "fldrd v0, [sp, r2 uxtx scaled]\n"
+      "add sp, sp, #0x50\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5369,10 +5369,10 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "movz ip0, #0xc055 lsl 48\n"
-      "fmovdr v2, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "movz tmp, #0xc055 lsl 48\n"
+      "fmovdr v2, tmp\n"
       "fcvtsd v1, v1\n"
       "fcvtsd v2, v2\n"
       "veor v3, v3, v3\n"
@@ -5408,10 +5408,10 @@
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
-      "movz ip0, #0xc055 lsl 48\n"
-      "fmovdr v2, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
+      "movz tmp, #0xc055 lsl 48\n"
+      "fmovdr v2, tmp\n"
       "vinsd v3[0], v1[0]\n"
       "vinsd v3[1], v2[0]\n"
       "vnegd v4, v3\n"
@@ -5459,8 +5459,8 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(12.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "fmovd v1, 1.000000\n"
       "fmovd v2, 2.000000\n"
       "fmovd v3, 3.000000\n"
@@ -5527,13 +5527,13 @@
   EXPECT_EQ(-6.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "fmovd v1, 1.000000\n"
       "fmovd v2, 2.000000\n"
       "fmovd v3, 3.000000\n"
-      "movz ip0, #0x0\n"
-      "fmovdr v5, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v5, tmp\n"
       "fcvtsd v0, v0\n"
       "fcvtsd v1, v1\n"
       "fcvtsd v2, v2\n"
@@ -5596,8 +5596,8 @@
   EXPECT_EQ(14.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "fmovd v1, 1.000000\n"
       "fmovd v2, 2.000000\n"
       "fmovd v3, 3.000000\n"
@@ -5663,8 +5663,8 @@
   EXPECT_EQ(4.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "fmovd v1, 1.000000\n"
       "fmovd v2, 2.000000\n"
       "fmovd v3, 3.000000\n"
@@ -5746,8 +5746,8 @@
   EXPECT_DISASSEMBLY(
       "fmovd v0, 2.000000\n"
       "fmovd v1, 3.000000\n"
-      "movz ip0, #0x0\n"
-      "fmovdr v5, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v5, tmp\n"
       "vinsd v4[0], v0[0]\n"
       "vinsd v4[1], v1[0]\n"
       "vsubd v5, v5, v4\n"
@@ -5845,16 +5845,16 @@
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "fmovd v0, 21.000000\n"
       "vdupd v1, v0[0]\n"
       "sub csp, csp, #0x10\n"
-      "fstrq v1, [r15, #-16]!\n"
-      "fldrd v2, [r15], #8 !\n"
-      "fldrd v3, [r15], #8 !\n"
+      "fstrq v1, [sp, #-16]!\n"
+      "fldrd v2, [sp], #8 !\n"
+      "fldrd v3, [sp], #8 !\n"
       "faddd v0, v2, v3\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5893,17 +5893,17 @@
   EXPECT_EQ(84.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "fmovd v0, 21.000000\n"
       "fcvtsd v0, v0\n"
       "vdups v1, v0[0]\n"
       "sub csp, csp, #0x10\n"
-      "fstrq v1, [r15, #-16]!\n"
-      "fldrs v3, [r15], #4 !\n"
-      "fldrs v2, [r15], #4 !\n"
-      "fldrs v1, [r15], #4 !\n"
-      "fldrs v0, [r15], #4 !\n"
+      "fstrq v1, [sp, #-16]!\n"
+      "fldrs v3, [sp], #4 !\n"
+      "fldrs v2, [sp], #4 !\n"
+      "fldrs v1, [sp], #4 !\n"
+      "fldrs v0, [sp], #4 !\n"
       "fcvtds v0, v0\n"
       "fcvtds v1, v1\n"
       "fcvtds v2, v2\n"
@@ -5911,7 +5911,7 @@
       "faddd v0, v1, v1\n"
       "faddd v0, v0, v2\n"
       "faddd v0, v0, v3\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5940,17 +5940,17 @@
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       ""
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v5, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v5, tmp\n"
       "vinsd v1[1], v5[0]\n"
       "sub csp, csp, #0x10\n"
-      "fstrq v1, [r15, #-16]!\n"
-      "fldrd v2, [r15], #8 !\n"
-      "fldrd v3, [r15], #8 !\n"
+      "fstrq v1, [sp, #-16]!\n"
+      "fldrd v2, [sp], #8 !\n"
+      "fldrd v3, [sp], #8 !\n"
       "fmovdd v0, v3\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -5996,23 +5996,23 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
       "fmovd v0, 21.000000\n"
       "fcvtsd v0, v0\n"
       "vinss v1[3], v0[0]\n"
       "vinss v1[1], v0[0]\n"
-      "movz ip0, #0x0\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x0\n"
+      "fmovdr v0, tmp\n"
       "fcvtsd v0, v0\n"
       "vinss v1[2], v0[0]\n"
       "vinss v1[0], v0[0]\n"
       "sub csp, csp, #0x10\n"
-      "fstrq v1, [r15, #-16]!\n"
-      "fldrs v3, [r15], #4 !\n"
-      "fldrs v2, [r15], #4 !\n"
-      "fldrs v1, [r15], #4 !\n"
-      "fldrs v0, [r15], #4 !\n"
+      "fstrq v1, [sp, #-16]!\n"
+      "fldrs v3, [sp], #4 !\n"
+      "fldrs v2, [sp], #4 !\n"
+      "fldrs v1, [sp], #4 !\n"
+      "fldrs v0, [sp], #4 !\n"
       "fcvtds v0, v0\n"
       "fcvtds v1, v1\n"
       "fcvtds v2, v2\n"
@@ -6020,7 +6020,7 @@
       "faddd v0, v0, v1\n"
       "faddd v0, v0, v2\n"
       "faddd v0, v0, v3\n"
-      "mov csp, r15\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -6350,10 +6350,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(0xfffffffe, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0xc045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0xc045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v0, v0\n"
       "fcvtsd v1, v1\n"
       "vdups v2, v0[0]\n"
@@ -6393,10 +6393,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-1, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0xc045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0xc045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "vdupd v2, v0[0]\n"
       "vinsd v3[0], v0[0]\n"
       "vinsd v3[1], v1[0]\n"
@@ -6437,10 +6437,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(0xfffffffe, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0xc045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0xc045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v0, v0\n"
       "fcvtsd v1, v1\n"
       "vdups v2, v0[0]\n"
@@ -6480,10 +6480,10 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-1, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0xc045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0xc045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "vdupd v2, v0[0]\n"
       "vinsd v3[0], v0[0]\n"
       "vinsd v3[1], v1[0]\n"
@@ -6524,11 +6524,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(0xfffffffe, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v0, v0\n"
       "fcvtsd v1, v1\n"
       "vdups v2, v0[0]\n"
@@ -6568,11 +6568,11 @@
   typedef int64_t (*Int64Return)() DART_UNUSED;
   EXPECT_EQ(-1, EXECUTE_TEST_CODE_INT64(Int64Return, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4045 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4045 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4045 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4045 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "vdupd v2, v0[0]\n"
       "vinsd v3[0], v0[0]\n"
       "vinsd v3[1], v1[0]\n"
@@ -6664,9 +6664,9 @@
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       "fmovd v0, 21.000000\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4034 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4034 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "vdupd v2, v0[0]\n"
       "vinsd v3[0], v0[0]\n"
       "vinsd v3[1], v1[0]\n"
@@ -6758,9 +6758,9 @@
   EXPECT_EQ(42.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
       "fmovd v0, 21.000000\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4035 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4035 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "vdupd v2, v0[0]\n"
       "vinsd v3[0], v0[0]\n"
       "vinsd v3[1], v1[0]\n"
@@ -6798,11 +6798,11 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(15.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4050 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4048 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4050 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4048 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v0, v0\n"
       "fcvtsd v1, v1\n"
       "veor v3, v3, v3\n"
@@ -6837,11 +6837,11 @@
   typedef double (*DoubleReturn)() DART_UNUSED;
   EXPECT_EQ(15.0, EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry()));
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x4050 lsl 48\n"
-      "fmovdr v0, ip0\n"
-      "movz ip0, #0x8000 lsl 32\n"
-      "movk ip0, #0x4048 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x4050 lsl 48\n"
+      "fmovdr v0, tmp\n"
+      "movz tmp, #0x8000 lsl 32\n"
+      "movk tmp, #0x4048 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "vinsd v3[0], v0[0]\n"
       "vinsd v3[1], v1[0]\n"
       "vsqrtd v4, v3\n"
@@ -6906,9 +6906,9 @@
   float res = EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry());
   EXPECT_FLOAT_EQ(arm_recip_estimate(147.0), res, 0.0001);
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x6000 lsl 32\n"
-      "movk ip0, #0x4062 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x6000 lsl 32\n"
+      "movk tmp, #0x4062 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v1, v1\n"
       "vinss v2[0], v1[0]\n"
       "vinss v2[1], v1[0]\n"
@@ -6976,11 +6976,11 @@
   double res = EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry());
   EXPECT_FLOAT_EQ(42.0, res, 0.0001);
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x8618\n"
-      "movk ip0, #0x1861 lsl 16\n"
-      "movk ip0, #0x6186 lsl 32\n"
-      "movk ip0, #0x3fb8 lsl 48\n"
-      "fmovdr v0, ip0\n"
+      "movz tmp, #0x8618\n"
+      "movk tmp, #0x1861 lsl 16\n"
+      "movk tmp, #0x6186 lsl 32\n"
+      "movk tmp, #0x3fb8 lsl 48\n"
+      "fmovdr v0, tmp\n"
       "fcvtsd v0, v0\n"
       "vdups v1, v0[0]\n"
       "vrecpes v2, v1\n"
@@ -7072,9 +7072,9 @@
   double res = EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry());
   EXPECT_FLOAT_EQ(arm_reciprocal_sqrt_estimate(147.0), res, 0.0001);
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0x6000 lsl 32\n"
-      "movk ip0, #0x4062 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0x6000 lsl 32\n"
+      "movk tmp, #0x4062 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v1, v1\n"
       "vrsqrtes v0, v1\n"
       "fcvtds v0, v0\n"
@@ -7125,9 +7125,9 @@
   double res = EXECUTE_TEST_CODE_DOUBLE(DoubleReturn, test->entry());
   EXPECT_FLOAT_EQ(1.0 / sqrt(147000.0), res, 0.0001);
   EXPECT_DISASSEMBLY(
-      "movz ip0, #0xf1c0 lsl 32\n"
-      "movk ip0, #0x4101 lsl 48\n"
-      "fmovdr v1, ip0\n"
+      "movz tmp, #0xf1c0 lsl 32\n"
+      "movk tmp, #0x4101 lsl 48\n"
+      "fmovdr v1, tmp\n"
       "fcvtsd v1, v1\n"
       "vrsqrtes v0, v1\n"
       "vmuls v31, v0, v0\n"
@@ -7318,18 +7318,18 @@
   EXPECT_EQ(123, EXECUTE_TEST_CODE_INTPTR_INTPTR(StoreReleaseLoadAcquire,
                                                  test->entry(), 123));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "str r1, [r15, #-8]!\n"
+      "str r1, [sp, #-8]!\n"
       "movz r1, #0x0\n"
-      "str r1, [r15, #-8]!\n"
+      "str r1, [sp, #-8]!\n"
       "mov r1, r0\n"
       "movz r0, #0x0\n"
-      "stlr r1, r15\n"
-      "ldar r0, r15\n"
-      "ldr r1, [r15], #8 !\n"
-      "ldr r1, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "stlr r1, sp\n"
+      "ldar r0, sp\n"
+      "ldr r1, [sp], #8 !\n"
+      "ldr r1, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 
@@ -7355,22 +7355,22 @@
   EXPECT_EQ(123, EXECUTE_TEST_CODE_INTPTR_INTPTR(StoreReleaseLoadAcquire1024,
                                                  test->entry(), 123));
   EXPECT_DISASSEMBLY(
-      "mov r15, csp\n"
+      "mov sp, csp\n"
       "sub csp, csp, #0x1000\n"
-      "str r1, [r15, #-8]!\n"
+      "str r1, [sp, #-8]!\n"
       "movz r1, #0x0\n"
-      "str r1, [r15, #-8]!\n"
+      "str r1, [sp, #-8]!\n"
       "mov r1, r0\n"
       "movz r0, #0x0\n"
-      "sub r15, r15, #0x2000\n"
-      "add ip0, r15, #0x400\n"
-      "stlr r1, ip0\n"
-      "add ip1, r15, #0x400\n"
-      "ldar r0, ip1\n"
-      "add r15, r15, #0x2000\n"
-      "ldr r1, [r15], #8 !\n"
-      "ldr r1, [r15], #8 !\n"
-      "mov csp, r15\n"
+      "sub sp, sp, #0x2000\n"
+      "add tmp, sp, #0x400\n"
+      "stlr r1, tmp\n"
+      "add tmp2, sp, #0x400\n"
+      "ldar r0, tmp2\n"
+      "add sp, sp, #0x2000\n"
+      "ldr r1, [sp], #8 !\n"
+      "ldr r1, [sp], #8 !\n"
+      "mov csp, sp\n"
       "ret\n");
 }
 #endif
diff --git a/runtime/vm/compiler/assembler/assembler_x64_test.cc b/runtime/vm/compiler/assembler/assembler_x64_test.cc
index 761a858..c0acbff 100644
--- a/runtime/vm/compiler/assembler/assembler_x64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64_test.cc
@@ -510,8 +510,8 @@
   EXPECT_EQ(1, reinterpret_cast<CmpbCode>(test->entry())());
   EXPECT_DISASSEMBLY(
       "movl rax,1\n"
-      "movl r11,0xffffff11\n"
-      "push r11\n"
+      "movl tmp,0xffffff11\n"
+      "push tmp\n"
       "cmpb [rsp],0x11\n"
       "jz +7\n"
       "movl rax,0\n"
@@ -542,8 +542,8 @@
   EXPECT_DISASSEMBLY(
       "movl rax,1\n"
       "movl rcx,0\n"
-      "movl r11,0xffffff11\n"
-      "push r11\n"
+      "movl tmp,0xffffff11\n"
+      "push tmp\n"
       "testb [rsp],0x10\n"
       "cmovzq rax,rcx\n"
       "testb [rsp],0x20\n"
@@ -951,8 +951,8 @@
   __ addq(RAX, R8);
 
   __ movq(R10, Immediate(2));
-  __ movq(R11, Immediate(4));
-  __ imulq(R10, R11);
+  __ movq(TMP, Immediate(4));
+  __ imulq(R10, TMP);
   __ addq(RAX, R10);
 
   __ movq(R15, Immediate(2));
@@ -977,8 +977,8 @@
       "pop r9\n"
       "addq rax,r8\n"
       "movl r10,2\n"
-      "movl r11,4\n"
-      "imulq r10,r11\n"
+      "movl tmp,4\n"
+      "imulq r10,tmp\n"
       "addq rax,r10\n"
       "movl pp,2\n"
       "imulq pp,pp,4\n"
@@ -1012,8 +1012,8 @@
       "movq rax,0x1234567887654321\n"
       "movq rcx,0x0db4da5f7ef412b1\n"
       "imulq rax,rcx\n"
-      "movq r11,0x1234567887654321\n"
-      "imulq rcx,r11\n"
+      "movq tmp,0x1234567887654321\n"
+      "imulq rcx,tmp\n"
       "cmpq rax,rcx\n"
       "jz +7\n"
       "int3\n"
@@ -1327,8 +1327,8 @@
   typedef intptr_t (*MoveExtend)();
   EXPECT_EQ(0x7ffffffe, reinterpret_cast<MoveExtend>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl r11,0xffffffff\n"
-      "push r11\n"
+      "movl tmp,0xffffffff\n"
+      "push tmp\n"
       "push 0x7fffffff\n"
       "movsxdq rdx,[rsp+0x8]\n"
       "movsxdq rax,[rsp]\n"
@@ -1770,10 +1770,10 @@
       "addq r10,[rsp+0x10]\n"
       "movq rax,[rsp+0x8]\n"
       "adcq rax,[rsp+0x18]\n"
-      "pop r11\n"
-      "pop r11\n"
-      "pop r11\n"
-      "pop r11\n"
+      "pop tmp\n"
+      "pop tmp\n"
+      "pop tmp\n"
+      "pop tmp\n"
       "ret\n");
 }
 
@@ -1866,10 +1866,10 @@
       "subq r10,[rsp+0x10]\n"
       "movq rax,[rsp+0x8]\n"
       "sbbq rax,[rsp+0x18]\n"
-      "pop r11\n"
-      "pop r11\n"
-      "pop r11\n"
-      "pop r11\n"
+      "pop tmp\n"
+      "pop tmp\n"
+      "pop tmp\n"
+      "pop tmp\n"
       "ret\n");
 }
 
@@ -2391,8 +2391,8 @@
       "movl rcx,2\n"
       "shlq rdx,cl\n"
       "shldq rdx,r8,2\n"
-      "movq r11,0xf000000000000003\n"
-      "cmpq rdx,r11\n"
+      "movq tmp,0xf000000000000003\n"
+      "cmpq rdx,tmp\n"
       "jz +7\n"
       "int3\n"
       "movq rdx,0xff00000000000000\n"
@@ -2400,8 +2400,8 @@
       "movl rcx,2\n"
       "shlq rdx,cl\n"
       "shldq rdx,r8,cl\n"
-      "movq r11,0xf000000000000003\n"
-      "cmpq rdx,r11\n"
+      "movq tmp,0xf000000000000003\n"
+      "cmpq rdx,tmp\n"
       "jz +7\n"
       "int3\n"
       "movq rdx,0xff00000000000000\n"
@@ -2409,8 +2409,8 @@
       "movl rcx,2\n"
       "shrq rdx,cl\n"
       "shrdq rdx,r8,cl\n"
-      "movq r11,0xcff0000000000000\n"
-      "cmpq rdx,r11\n"
+      "movq tmp,0xcff0000000000000\n"
+      "cmpq rdx,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0\n"
@@ -2697,31 +2697,31 @@
       "movl rax,1\n"
       "shlq rax,63\n"
       "sarq rax,3\n"
-      "movq r11,0xf000000000000000\n"
-      "cmpq rax,r11\n"
+      "movq tmp,0xf000000000000000\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shlq rax,63\n"
       "sarq rax,cl\n"
-      "movq r11,0xf000000000000000\n"
-      "cmpq rax,r11\n"
+      "movq tmp,0xf000000000000000\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "push pp\n"
       "movq pp,0xf000000000000001\n"
       "andq pp,-1\n"
-      "movq r11,0x8000000000000001\n"
-      "andq pp,r11\n"
+      "movq tmp,0x8000000000000001\n"
+      "andq pp,tmp\n"
       "orq pp,2\n"
-      "movq r11,0xf800000000000000\n"
-      "orq pp,r11\n"
+      "movq tmp,0xf800000000000000\n"
+      "orq pp,tmp\n"
       "xorq pp,1\n"
-      "movq r11,0x0800000000000000\n"
-      "xorq pp,r11\n"
-      "movq r11,0xf000000000000002\n"
-      "cmpq pp,r11\n"
+      "movq tmp,0x0800000000000000\n"
+      "xorq pp,tmp\n"
+      "movq tmp,0xf000000000000002\n"
+      "cmpq pp,tmp\n"
       "jz +7\n"
       "int3\n"
       "andl pp,2\n"
@@ -3080,7 +3080,7 @@
   typedef int (*CallSimpleLeafCode)();
   EXPECT_EQ(42 + 87, reinterpret_cast<CallSimpleLeafCode>(test->entry())());
   EXPECT_DISASSEMBLY_ENDS_WITH(
-      "call r11\n"
+      "call tmp\n"
       "addq rsp,8\n"
       "ret\n");
 }
@@ -3100,7 +3100,7 @@
 ASSEMBLER_TEST_RUN(JumpSimpleLeaf, test) {
   typedef int (*JumpSimpleLeafCode)();
   EXPECT_EQ(42, reinterpret_cast<JumpSimpleLeafCode>(test->entry())());
-  EXPECT_DISASSEMBLY_ENDS_WITH("jmp r11\n");
+  EXPECT_DISASSEMBLY_ENDS_WITH("jmp tmp\n");
 }
 
 ASSEMBLER_TEST_GENERATE(JumpIndirect, assembler) {
@@ -3185,7 +3185,7 @@
       "movss r8,xmm7\n"
       "movss r9,xmm8\n"
       "movss r10,xmm9\n"
-      "movss r11,xmm10\n"
+      "movss tmp,xmm10\n"
       "movss r12,xmm11\n"
       "movss r13,xmm12\n"
       "movss thr,xmm13\n"
@@ -3209,7 +3209,7 @@
       "movss thr,xmm15\n"
       "movss r13,xmm14\n"
       "movss r12,xmm13\n"
-      "movss r11,xmm12\n"
+      "movss tmp,xmm12\n"
       "movss r10,xmm11\n"
       "movss r9,xmm10\n"
       "movss r8,xmm9\n"
@@ -3384,8 +3384,8 @@
   EXPECT_FLOAT_EQ(-1.0, res, 0.000001f);
   EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(
       "movups xmm10,[rax]\n"
-      "movq r11,[thr+0x...]\n"
-      "xorpd xmm10,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "xorpd xmm10,[tmp]\n"
       "movaps xmm0,xmm10\n"
       "pop thr\n"
       "pop pp\n"
@@ -3413,8 +3413,8 @@
   EXPECT_FLOAT_EQ(1.0, res, 0.000001f);
   EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(
       "movups xmm10,[rax]\n"
-      "movq r11,[thr+0x...]\n"
-      "movups xmm0,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "movups xmm0,[tmp]\n"
       "andpd xmm0,xmm10\n"
       "pop thr\n"
       "pop pp\n"
@@ -4066,8 +4066,8 @@
       "movl rax,0x4144cccd\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movq r11,[thr+0x...]\n"
-      "xorps xmm0,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "xorps xmm0,[tmp]\n"
       "shufps xmm0,xmm0 [aa]\n"
       "pop thr\n"
       "pop pp\n"
@@ -4103,8 +4103,8 @@
       "movl rax,-0x3e8b3333\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movq r11,[thr+0x...]\n"
-      "andps xmm0,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "andps xmm0,[tmp]\n"
       "shufps xmm0,xmm0 [aa]\n"
       "pop thr\n"
       "pop pp\n"
@@ -4138,8 +4138,8 @@
       "movl rax,0x4144cccd\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movq r11,[thr+0x...]\n"
-      "andps xmm0,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "andps xmm0,[tmp]\n"
       "shufps xmm0,xmm0 [ff]\n"
       "pop thr\n"
       "pop pp\n"
@@ -4288,8 +4288,8 @@
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(
       "movups xmm9,[rax]\n"
-      "movq r11,[thr+0x...]\n"
-      "movups xmm0,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "movups xmm0,[tmp]\n"
       "xorps xmm0,xmm9\n"
       "push rax\n"
       "movss [rsp],xmm0\n"
@@ -4756,10 +4756,10 @@
   double res = reinterpret_cast<Int32ToDoubleConversion>(test->entry())();
   EXPECT_FLOAT_EQ(-2.0, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "movq r11,0x1111111100000006\n"
-      "cvtsi2sd xmm0,r11\n"
-      "movq r11,0x2222222200000008\n"
-      "cvtsi2sd xmm8,r11\n"
+      "movq tmp,0x1111111100000006\n"
+      "cvtsi2sd xmm0,tmp\n"
+      "movq tmp,0x2222222200000008\n"
+      "cvtsi2sd xmm8,tmp\n"
       "subsd xmm0,xmm8\n"
       "ret\n");
 }
@@ -4823,8 +4823,8 @@
       "movsd xmm9,[rsp]\n"
       "pop rax\n"
       "cvttsd2siq rax,xmm9\n"
-      "movq r11,0x8000000000000000\n"
-      "cmpq rax,r11\n"
+      "movq tmp,0x8000000000000000\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movq rax,0x4258727cda000000\n"
@@ -4904,8 +4904,8 @@
       "movsd xmm9,[rsp]\n"
       "pop rax\n"
       "cvttsd2sil rax,xmm9\n"
-      "movl r11,0x80000000\n"
-      "cmpq rax,r11\n"
+      "movl tmp,0x80000000\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movq rax,0xc045000000000000\n"
@@ -4914,8 +4914,8 @@
       "pop rax\n"
       "movq r10,-1\n"
       "cvttsd2sil r10,xmm9\n"
-      "movl r11,0xffffffd6\n"
-      "cmpq r10,r11\n"
+      "movl tmp,0xffffffd6\n"
+      "cmpq r10,tmp\n"
       "jz +7\n"
       "int3\n"
       "movq rax,0x4045000000000000\n"
@@ -4991,8 +4991,8 @@
       "cmpq rcx,0x1e\n"
       "jnz +63\n"
       "push rax\n"
-      "movq r11,[pp+0xf]\n"
-      "movq [rsp],r11\n"
+      "movq tmp,[pp+0xf]\n"
+      "movq [rsp],tmp\n"
       "pop rcx\n"
       "cmpq rcx,[pp+0xf]\n"
       "jnz +43\n"
@@ -5035,8 +5035,8 @@
       "cmpl rcx,0x1e\n"
       "jnz +62\n"
       "push rax\n"
-      "movq r11,[pp+0xf]\n"
-      "movq [rsp],r11\n"
+      "movq tmp,[pp+0xf]\n"
+      "movq [rsp],tmp\n"
       "pop rcx\n"
       "cmpl rcx,[pp+0xf]\n"
       "jnz +42\n"
@@ -5464,8 +5464,8 @@
       "movq r12,[rdi+0x8]\n"
       "movq thr,rsi\n"
       "movq pp,[r12+0x27]\n"
-      "movq r11,[thr+0x...]\n"
-      "andpd xmm0,[r11]\n"
+      "movq tmp,[thr+0x...]\n"
+      "andpd xmm0,[tmp]\n"
       "pop thr\n"
       "pop pp\n"
       "pop r12\n"
@@ -5832,8 +5832,8 @@
   EXPECT_EQ(1, reinterpret_cast<BitTest>(test->entry())());
   EXPECT_DISASSEMBLY(
       "movl rax,4\n"
-      "movl r11,2\n"
-      "btq rax,r11\n"
+      "movl tmp,2\n"
+      "btq rax,tmp\n"
       "jc +7\n"
       "int3\n"
       "movl rax,1\n"
@@ -5855,8 +5855,8 @@
   typedef int (*BitTestImmediate)();
   EXPECT_EQ(1, reinterpret_cast<BitTestImmediate>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl r11,0x20\n"
-      "bt r11,5\n"
+      "movl tmp,0x20\n"
+      "bt tmp,5\n"
       "jc +7\n"
       "int3\n"
       "movl rax,1\n"
@@ -6007,44 +6007,44 @@
   EXPECT_DISASSEMBLY(
       "movl rax,0x2a\n"
       "imulq rax,rax,0x3b9aca00\n"
-      "movq r11,0x00000009c7652400\n"
-      "cmpq rax,r11\n"
+      "movq tmp,0x00000009c7652400\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0x2a\n"
       "imull rax,rax,0x3b9aca00\n"
-      "movl r11,0xc7652400\n"
-      "cmpq rax,r11\n"
+      "movl tmp,0xc7652400\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0x3b9aca00\n"
-      "movq r11,0x000000098bca5a00\n"
-      "addq rax,r11\n"
-      "movq r11,0x00000009c7652400\n"
-      "cmpq rax,r11\n"
+      "movq tmp,0x000000098bca5a00\n"
+      "addq rax,tmp\n"
+      "movq tmp,0x00000009c7652400\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0x3b9aca00\n"
       "addl rax,0x3b9aca00\n"
       "addl rax,0x3b9aca00\n"
       "addl rax,0x3b9aca00\n"
-      "movl r11,0xee6b2800\n"
-      "cmpq rax,r11\n"
+      "movl tmp,0xee6b2800\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0x3b9aca00\n"
       "subl rax,0x4d2fa200\n"
       "addl rax,0x3b9aca00\n"
       "subl rax,0x3b9aca00\n"
-      "movl r11,0xee6b2800\n"
-      "cmpq rax,r11\n"
+      "movl tmp,0xee6b2800\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0x3b9aca00\n"
-      "movq r11,0x0000000a02ffee00\n"
-      "subq rax,r11\n"
-      "movq r11,0xfffffff6389adc00\n"
-      "cmpq rax,r11\n"
+      "movq tmp,0x0000000a02ffee00\n"
+      "subq rax,tmp\n"
+      "movq tmp,0xfffffff6389adc00\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movq rax,-0x3b9aca00\n"
@@ -6058,8 +6058,8 @@
       "subl rax,0x4d2fa200\n"
       "subl rax,0x3b9aca00\n"
       "addl rax,0x3b9aca00\n"
-      "movl r11,0xee6b2800\n"
-      "cmpq rax,r11\n"
+      "movl tmp,0xee6b2800\n"
+      "cmpq rax,tmp\n"
       "jz +7\n"
       "int3\n"
       "movl rax,0x2a\n"
diff --git a/runtime/vm/compiler/ffi/native_location.cc b/runtime/vm/compiler/ffi/native_location.cc
index f757a31..7b362fd 100644
--- a/runtime/vm/compiler/ffi/native_location.cc
+++ b/runtime/vm/compiler/ffi/native_location.cc
@@ -277,14 +277,14 @@
 
 void NativeRegistersLocation::PrintTo(BaseTextBuffer* f) const {
   if (num_regs() == 1) {
-    f->Printf("%s", RegisterNames::RegisterName(regs_->At(0)));
+    f->Printf("%s", RegisterNames::RegisterAbiName(regs_->At(0)));
   } else {
     f->AddString("(");
     for (intptr_t i = 0; i < num_regs(); i++) {
       if (i != 0) {
         f->Printf(", ");
       }
-      f->Printf("%s", RegisterNames::RegisterName(regs_->At(i)));
+      f->Printf("%s", RegisterNames::RegisterAbiName(regs_->At(i)));
     }
     f->AddString(")");
   }
diff --git a/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv32_linux.expect
index f5fde9e..5dcb075 100644
--- a/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv32_linux.expect
@@ -7,8 +7,8 @@
 fa6 double
 fa7 double
 (a0, a1) int64[double]
-(a2, tmp) int64[double]
-(tmp2, pp) int64[double]
+(a2, a3) int64[double]
+(a4, a5) int64[double]
 (a6, a7) int64[double]
 S+0 double
 S+8 double
diff --git a/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv64_linux.expect
index 810b278..a46f1fb 100644
--- a/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/doublex20/riscv64_linux.expect
@@ -9,9 +9,9 @@
 a0 int64[double]
 a1 int64[double]
 a2 int64[double]
-tmp int64[double]
-tmp2 int64[double]
-pp int64[double]
+a3 int64[double]
+a4 int64[double]
+a5 int64[double]
 a6 int64[double]
 a7 int64[double]
 S+0 double
diff --git a/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv32_linux.expect
index 663376f..edb61cc 100644
--- a/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv32_linux.expect
@@ -7,8 +7,8 @@
 fa6 float
 fa7 float
 (a0, a1) int64[float]
-(a2, tmp) int64[float]
-(tmp2, pp) int64[float]
+(a2, a3) int64[float]
+(a4, a5) int64[float]
 (a6, a7) int64[float]
 S+0 float
 S+4 float
diff --git a/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv64_linux.expect
index 4531dae..b8030e0 100644
--- a/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/floatx20/riscv64_linux.expect
@@ -9,9 +9,9 @@
 a0 int64[float]
 a1 int64[float]
 a2 int64[float]
-tmp int64[float]
-tmp2 int64[float]
-pp int64[float]
+a3 int64[float]
+a4 int64[float]
+a5 int64[float]
 a6 int64[float]
 a7 int64[float]
 S+0 float
diff --git a/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv32_linux.expect
index 84bc85d..71c8bd7 100644
--- a/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv32_linux.expect
@@ -1,9 +1,9 @@
 a0 int32[int8]
 a1 int32[int8]
 a2 int32[int8]
-tmp int32[int8]
-tmp2 int32[int8]
-pp int32[int8]
+a3 int32[int8]
+a4 int32[int8]
+a5 int32[int8]
 a6 int32[int8]
 a7 int32[int8]
 S+0 int8
diff --git a/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv64_linux.expect
index 84bc85d..71c8bd7 100644
--- a/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/int8x10/riscv64_linux.expect
@@ -1,9 +1,9 @@
 a0 int32[int8]
 a1 int32[int8]
 a2 int32[int8]
-tmp int32[int8]
-tmp2 int32[int8]
-pp int32[int8]
+a3 int32[int8]
+a4 int32[int8]
+a5 int32[int8]
 a6 int32[int8]
 a7 int32[int8]
 S+0 int8
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv32_linux.expect
index fda1302..2f0c36f 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv32_linux.expect
@@ -1,8 +1,8 @@
 P(a0 uint32) Struct(size: 12)
 P(a1 uint32) Struct(size: 12)
 P(a2 uint32) Struct(size: 12)
-P(tmp uint32) Struct(size: 12)
-P(tmp2 uint32) Struct(size: 12)
-P(pp uint32) Struct(size: 12)
+P(a3 uint32) Struct(size: 12)
+P(a4 uint32) Struct(size: 12)
+P(a5 uint32) Struct(size: 12)
 =>
 (a0, a1) int64
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv64_linux.expect
index ad37cf7..c9dc492 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct12bytesFloatx6/riscv64_linux.expect
@@ -1,6 +1,6 @@
 M(a0 int64, a1 int64) Struct(size: 12)
-M(a2 int64, tmp int64) Struct(size: 12)
-M(tmp2 int64, pp int64) Struct(size: 12)
+M(a2 int64, a3 int64) Struct(size: 12)
+M(a4 int64, a5 int64) Struct(size: 12)
 M(a6 int64, a7 int64) Struct(size: 12)
 M(S+0 int64, S+8 int64) Struct(size: 12)
 M(S+16 int64, S+24 int64) Struct(size: 12)
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv32_linux.expect
index 664653c..4824868 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv32_linux.expect
@@ -1,9 +1,9 @@
 P(a1 uint32) Struct(size: 16)
 fa0 float
 P(a2 uint32) Struct(size: 16)
-P(tmp uint32) Struct(size: 16)
-P(tmp2 uint32) Struct(size: 16)
-P(pp uint32) Struct(size: 16)
+P(a3 uint32) Struct(size: 16)
+P(a4 uint32) Struct(size: 16)
+P(a5 uint32) Struct(size: 16)
 P(a6 uint32) Struct(size: 16)
 P(a7 uint32) Struct(size: 16)
 P(S+0 uint32) Struct(size: 16)
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv64_linux.expect
index 6f7ef5b..620273c 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct16bytesHomogenousx10/riscv64_linux.expect
@@ -1,7 +1,7 @@
 M(a0 int64, a1 int64) Struct(size: 16)
 fa0 float
-M(a2 int64, tmp int64) Struct(size: 16)
-M(tmp2 int64, pp int64) Struct(size: 16)
+M(a2 int64, a3 int64) Struct(size: 16)
+M(a4 int64, a5 int64) Struct(size: 16)
 M(a6 int64, a7 int64) Struct(size: 16)
 M(S+0 int64, S+8 int64) Struct(size: 16)
 M(S+16 int64, S+24 int64) Struct(size: 16)
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv32_linux.expect
index d326d70..39e23b8c 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv32_linux.expect
@@ -1,9 +1,9 @@
 M(a0 uint32) Struct(size: 3)
 M(a1 uint32) Struct(size: 3)
 M(a2 uint32) Struct(size: 3)
-M(tmp uint32) Struct(size: 3)
-M(tmp2 uint32) Struct(size: 3)
-M(pp uint32) Struct(size: 3)
+M(a3 uint32) Struct(size: 3)
+M(a4 uint32) Struct(size: 3)
+M(a5 uint32) Struct(size: 3)
 M(a6 uint32) Struct(size: 3)
 M(a7 uint32) Struct(size: 3)
 M(S+0 uint32) Struct(size: 3)
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv64_linux.expect
index 3f71e45..b67660c 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct3bytesx10/riscv64_linux.expect
@@ -1,9 +1,9 @@
 M(a0 int64) Struct(size: 3)
 M(a1 int64) Struct(size: 3)
 M(a2 int64) Struct(size: 3)
-M(tmp int64) Struct(size: 3)
-M(tmp2 int64) Struct(size: 3)
-M(pp int64) Struct(size: 3)
+M(a3 int64) Struct(size: 3)
+M(a4 int64) Struct(size: 3)
+M(a5 int64) Struct(size: 3)
 M(a6 int64) Struct(size: 3)
 M(a7 int64) Struct(size: 3)
 M(S+0 int64) Struct(size: 3)
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv32_linux.expect
index 8c5778d..14ea892 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv32_linux.expect
@@ -1,6 +1,6 @@
 M(a0 uint32, a1 uint32) Struct(size: 8)
-M(a2 uint32, tmp uint32) Struct(size: 8)
-M(tmp2 uint32, pp uint32) Struct(size: 8)
+M(a2 uint32, a3 uint32) Struct(size: 8)
+M(a4 uint32, a5 uint32) Struct(size: 8)
 M(a6 uint32, a7 uint32) Struct(size: 8)
 M(S+0 uint32, S+4 uint32) Struct(size: 8)
 M(S+8 uint32, S+12 uint32) Struct(size: 8)
diff --git a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv64_linux.expect
index 7bd998e..b0e7ecb 100644
--- a/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/struct8bytesPackedx10/riscv64_linux.expect
@@ -1,9 +1,9 @@
 M(a0 int64) Struct(size: 8)
 M(a1 int64) Struct(size: 8)
 M(a2 int64) Struct(size: 8)
-M(tmp int64) Struct(size: 8)
-M(tmp2 int64) Struct(size: 8)
-M(pp int64) Struct(size: 8)
+M(a3 int64) Struct(size: 8)
+M(a4 int64) Struct(size: 8)
+M(a5 int64) Struct(size: 8)
 M(a6 int64) Struct(size: 8)
 M(a7 int64) Struct(size: 8)
 M(S+0 int64) Struct(size: 8)
diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv32_linux.expect
index da14e5c..d84073a5 100644
--- a/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv32_linux.expect
@@ -1,9 +1,9 @@
 M(a0 int32[int8], fa0 double) Struct(size: 9)
 M(a1 int32[int8], fa1 double) Struct(size: 9)
 M(a2 int32[int8], fa2 double) Struct(size: 9)
-M(tmp int32[int8], fa3 double) Struct(size: 9)
-M(tmp2 int32[int8], fa4 double) Struct(size: 9)
-M(pp int32[int8], fa5 double) Struct(size: 9)
+M(a3 int32[int8], fa3 double) Struct(size: 9)
+M(a4 int32[int8], fa4 double) Struct(size: 9)
+M(a5 int32[int8], fa5 double) Struct(size: 9)
 M(a6 int32[int8], fa6 double) Struct(size: 9)
 M(a7 int32[int8], fa7 double) Struct(size: 9)
 P(S+0 uint32) Struct(size: 9)
diff --git a/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv64_linux.expect
index d4389d5..eee3c90 100644
--- a/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/structPacked/riscv64_linux.expect
@@ -1,9 +1,9 @@
 M(a0 int32[int8], fa0 double) Struct(size: 9)
 M(a1 int32[int8], fa1 double) Struct(size: 9)
 M(a2 int32[int8], fa2 double) Struct(size: 9)
-M(tmp int32[int8], fa3 double) Struct(size: 9)
-M(tmp2 int32[int8], fa4 double) Struct(size: 9)
-M(pp int32[int8], fa5 double) Struct(size: 9)
+M(a3 int32[int8], fa3 double) Struct(size: 9)
+M(a4 int32[int8], fa4 double) Struct(size: 9)
+M(a5 int32[int8], fa5 double) Struct(size: 9)
 M(a6 int32[int8], fa6 double) Struct(size: 9)
 M(a7 int32[int8], fa7 double) Struct(size: 9)
 M(S+0 int64, S+8 int64) Struct(size: 9)
diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv32_linux.expect
index 7a6a9ef..f60a8fe 100644
--- a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv32_linux.expect
@@ -1,8 +1,8 @@
 P(a1 uint32) Union(size: 16)
 P(a2 uint32) Union(size: 16)
-P(tmp uint32) Union(size: 16)
-P(tmp2 uint32) Union(size: 16)
-P(pp uint32) Union(size: 16)
+P(a3 uint32) Union(size: 16)
+P(a4 uint32) Union(size: 16)
+P(a5 uint32) Union(size: 16)
 P(a6 uint32) Union(size: 16)
 P(a7 uint32) Union(size: 16)
 P(S+0 uint32) Union(size: 16)
diff --git a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv64_linux.expect
index 35d836b..94bc67b 100644
--- a/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/union16bytesHomogenousx10/riscv64_linux.expect
@@ -1,6 +1,6 @@
 M(a0 int64, a1 int64) Union(size: 16)
-M(a2 int64, tmp int64) Union(size: 16)
-M(tmp2 int64, pp int64) Union(size: 16)
+M(a2 int64, a3 int64) Union(size: 16)
+M(a4 int64, a5 int64) Union(size: 16)
 M(a6 int64, a7 int64) Union(size: 16)
 M(S+0 int64, S+8 int64) Union(size: 16)
 M(S+16 int64, S+24 int64) Union(size: 16)
diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv32_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv32_linux.expect
index 95a498c..9ac54e5 100644
--- a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv32_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv32_linux.expect
@@ -1,6 +1,6 @@
 M(a0 uint32, a1 uint32) Union(size: 5)
-M(a2 uint32, tmp uint32) Union(size: 5)
-M(tmp2 uint32, pp uint32) Union(size: 5)
+M(a2 uint32, a3 uint32) Union(size: 5)
+M(a4 uint32, a5 uint32) Union(size: 5)
 M(a6 uint32, a7 uint32) Union(size: 5)
 M(S+0 uint32, S+4 uint32) Union(size: 5)
 M(S+8 uint32, S+12 uint32) Union(size: 5)
diff --git a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv64_linux.expect b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv64_linux.expect
index 9165726..6116be3 100644
--- a/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv64_linux.expect
+++ b/runtime/vm/compiler/ffi/unit_tests/union5bytesPackedx10/riscv64_linux.expect
@@ -1,9 +1,9 @@
 M(a0 int64) Union(size: 5)
 M(a1 int64) Union(size: 5)
 M(a2 int64) Union(size: 5)
-M(tmp int64) Union(size: 5)
-M(tmp2 int64) Union(size: 5)
-M(pp int64) Union(size: 5)
+M(a3 int64) Union(size: 5)
+M(a4 int64) Union(size: 5)
+M(a5 int64) Union(size: 5)
 M(a6 int64) Union(size: 5)
 M(a7 int64) Union(size: 5)
 M(S+0 int64) Union(size: 5)
diff --git a/runtime/vm/constants.h b/runtime/vm/constants.h
index 26514bf..b56c7e1 100644
--- a/runtime/vm/constants.h
+++ b/runtime/vm/constants.h
@@ -41,6 +41,10 @@
     ASSERT((0 <= reg) && (reg < kNumberOfCpuRegisters));
     return cpu_reg_names[reg];
   }
+  static const char* RegisterAbiName(Register reg) {
+    ASSERT((0 <= reg) && (reg < kNumberOfCpuRegisters));
+    return cpu_reg_abi_names[reg];
+  }
   static const char* FpuRegisterName(FpuRegister reg) {
     ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters));
     return fpu_reg_names[reg];
diff --git a/runtime/vm/constants_arm.cc b/runtime/vm/constants_arm.cc
index 03e790f..b0e289a 100644
--- a/runtime/vm/constants_arm.cc
+++ b/runtime/vm/constants_arm.cc
@@ -14,11 +14,21 @@
 
 const char* const cpu_reg_names[kNumberOfCpuRegisters] = {
 #if defined(DART_TARGET_OS_MACOS) || defined(DART_TARGET_OS_MACOS_IOS)
-    "r0", "r1", "r2",  "r3",  "r4", "pp", "r6", "fp",
-    "r8", "r9", "thr", "r11", "ip", "sp", "lr", "pc",
+    "r0", "r1", "r2",  "r3",  "r4",  "pp", "r6", "fp",
+    "r8", "r9", "thr", "r11", "tmp", "sp", "lr", "pc",
 #else
-    "r0", "r1", "r2",  "r3", "r4", "pp", "r6", "r7",
-    "r8", "r9", "thr", "fp", "ip", "sp", "lr", "pc",
+    "r0", "r1", "r2",  "r3", "r4",  "pp", "r6", "r7",
+    "r8", "r9", "thr", "fp", "tmp", "sp", "lr", "pc",
+#endif
+};
+
+const char* const cpu_reg_abi_names[kNumberOfCpuRegisters] = {
+#if defined(DART_TARGET_OS_MACOS) || defined(DART_TARGET_OS_MACOS_IOS)
+    "r0", "r1", "r2",  "r3",  "r4", "r5", "r6", "fp",
+    "r8", "r9", "r10", "r11", "ip", "sp", "lr", "pc",
+#else
+    "r0", "r1", "r2",  "r3", "r4", "r5", "r6", "r7",
+    "r8", "r9", "r10", "fp", "ip", "sp", "lr", "pc",
 #endif
 };
 
diff --git a/runtime/vm/constants_arm.h b/runtime/vm/constants_arm.h
index b7f2374..d560e44 100644
--- a/runtime/vm/constants_arm.h
+++ b/runtime/vm/constants_arm.h
@@ -294,6 +294,7 @@
 const FpuRegister kNoFpuRegister = kNoQRegister;
 
 extern const char* const cpu_reg_names[kNumberOfCpuRegisters];
+extern const char* const cpu_reg_abi_names[kNumberOfCpuRegisters];
 extern const char* const fpu_reg_names[kNumberOfFpuRegisters];
 extern const char* const fpu_s_reg_names[kNumberOfSRegisters];
 extern const char* const fpu_d_reg_names[kNumberOfDRegisters];
diff --git a/runtime/vm/constants_arm64.cc b/runtime/vm/constants_arm64.cc
index c10999b..111e74e 100644
--- a/runtime/vm/constants_arm64.cc
+++ b/runtime/vm/constants_arm64.cc
@@ -11,9 +11,16 @@
 namespace dart {
 
 const char* const cpu_reg_names[kNumberOfCpuRegisters] = {
+    "r0",  "r1",   "r2",  "r3",  "r4",   "r5",  "r6",  "r7",
+    "r8",  "r9",   "r10", "r11", "r12",  "r13", "r14", "sp",
+    "tmp", "tmp2", "r18", "r19", "r20",  "r21", "nr",  "r23",
+    "r24", "r25",  "thr", "pp",  "mask", "fp",  "lr",  "csp",
+};
+
+const char* const cpu_reg_abi_names[kNumberOfCpuRegisters] = {
     "r0",  "r1",  "r2",  "r3",  "r4",  "r5",  "r6",  "r7",  "r8",  "r9",  "r10",
-    "r11", "r12", "r13", "r14", "r15", "ip0", "ip1", "r18", "r19", "r20", "r21",
-    "nr",  "r23", "r24", "r25", "r26", "pp",  "r28", "fp",  "lr",  "r31",
+    "r11", "r12", "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", "r21",
+    "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r30", "sp",
 };
 
 const char* const fpu_reg_names[kNumberOfFpuRegisters] = {
diff --git a/runtime/vm/constants_arm64.h b/runtime/vm/constants_arm64.h
index b2f4e6e..9b4df71 100644
--- a/runtime/vm/constants_arm64.h
+++ b/runtime/vm/constants_arm64.h
@@ -129,6 +129,7 @@
 const FpuRegister kNoFpuRegister = kNoVRegister;
 
 extern const char* const cpu_reg_names[kNumberOfCpuRegisters];
+extern const char* const cpu_reg_abi_names[kNumberOfCpuRegisters];
 extern const char* const fpu_reg_names[kNumberOfFpuRegisters];
 
 // Register aliases.
diff --git a/runtime/vm/constants_ia32.cc b/runtime/vm/constants_ia32.cc
index bbe4feb..057264d 100644
--- a/runtime/vm/constants_ia32.cc
+++ b/runtime/vm/constants_ia32.cc
@@ -13,6 +13,9 @@
 const char* const cpu_reg_names[kNumberOfCpuRegisters] = {
     "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi"};
 
+const char* const cpu_reg_abi_names[kNumberOfCpuRegisters] = {
+    "eax", "ecx", "edx", "ebx", "esp", "ebp", "esi", "edi"};
+
 const char* const fpu_reg_names[kNumberOfXmmRegisters] = {
     "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7"};
 
diff --git a/runtime/vm/constants_ia32.h b/runtime/vm/constants_ia32.h
index d06f97f..061771d 100644
--- a/runtime/vm/constants_ia32.h
+++ b/runtime/vm/constants_ia32.h
@@ -67,6 +67,7 @@
 const FpuRegister kNoFpuRegister = kNoXmmRegister;
 
 extern const char* const cpu_reg_names[kNumberOfCpuRegisters];
+extern const char* const cpu_reg_abi_names[kNumberOfCpuRegisters];
 extern const char* const fpu_reg_names[kNumberOfXmmRegisters];
 
 // Register aliases.
diff --git a/runtime/vm/constants_riscv.cc b/runtime/vm/constants_riscv.cc
index 6f694e9..7c9b6ed 100644
--- a/runtime/vm/constants_riscv.cc
+++ b/runtime/vm/constants_riscv.cc
@@ -23,6 +23,12 @@
     "s6",   "s7", "s8",  "s9",   "null", "mask", "t3", "t4", "t5", "t6",
 };
 
+const char* const cpu_reg_abi_names[kNumberOfCpuRegisters] = {
+    "zero", "ra", "sp", "gp", "tp",  "t0",  "t1", "t2", "s0", "s1", "a0",
+    "a1",   "a2", "a3", "a4", "a5",  "a6",  "a7", "s2", "s3", "s4", "s5",
+    "s6",   "s7", "s8", "s9", "s10", "s11", "t3", "t4", "t5", "t6",
+};
+
 const char* const fpu_reg_names[kNumberOfFpuRegisters] = {
     "ft0", "ft1", "ft2",  "ft3",  "ft4", "ft5", "ft6",  "ft7",
     "fs0", "fs1", "fa0",  "fa1",  "fa2", "fa3", "fa4",  "fa5",
diff --git a/runtime/vm/constants_riscv.h b/runtime/vm/constants_riscv.h
index a03694c..645b69e 100644
--- a/runtime/vm/constants_riscv.h
+++ b/runtime/vm/constants_riscv.h
@@ -143,6 +143,7 @@
 typedef double fpu_register_t;
 
 extern const char* const cpu_reg_names[kNumberOfCpuRegisters];
+extern const char* const cpu_reg_abi_names[kNumberOfCpuRegisters];
 extern const char* const fpu_reg_names[kNumberOfFpuRegisters];
 
 // Register aliases.
diff --git a/runtime/vm/constants_x64.cc b/runtime/vm/constants_x64.cc
index b80a77a..7e03cb6 100644
--- a/runtime/vm/constants_x64.cc
+++ b/runtime/vm/constants_x64.cc
@@ -12,7 +12,11 @@
 
 const char* const cpu_reg_names[kNumberOfCpuRegisters] = {
     "rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
-    "r8",  "r9",  "r10", "r11", "r12", "r13", "thr", "pp"};
+    "r8",  "r9",  "r10", "tmp", "r12", "r13", "thr", "pp"};
+
+const char* const cpu_reg_abi_names[kNumberOfCpuRegisters] = {
+    "rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
+    "r8",  "r9",  "r10", "r11", "r12", "r13", "r14", "r15"};
 
 const char* const fpu_reg_names[kNumberOfXmmRegisters] = {
     "xmm0", "xmm1", "xmm2",  "xmm3",  "xmm4",  "xmm5",  "xmm6",  "xmm7",
diff --git a/runtime/vm/constants_x64.h b/runtime/vm/constants_x64.h
index aae0a4c..a880647 100644
--- a/runtime/vm/constants_x64.h
+++ b/runtime/vm/constants_x64.h
@@ -99,6 +99,7 @@
 const FpuRegister kNoFpuRegister = kNoXmmRegister;
 
 extern const char* const cpu_reg_names[kNumberOfCpuRegisters];
+extern const char* const cpu_reg_abi_names[kNumberOfCpuRegisters];
 extern const char* const fpu_reg_names[kNumberOfXmmRegisters];
 
 enum RexBits {