Version 2.16.0-96.0.dev

Merge commit '15c5e383376bd8748b3b24870f0a4ed2dad4460a' into 'dev'
diff --git a/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart
index 7ed981d..fc2016f 100644
--- a/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart
@@ -882,16 +882,15 @@
     check();
 
     // This constructor invocation.
-    // TODO(scheglov) implement
-//     addTestSource2('''
-// $languageVersionLine
-// class A {
-//   A$parameters;
-//   A.named() : this$arguments;
-// }
-// ''');
-//     await computeSuggestions();
-//     check();
+    addTestSource2('''
+$languageVersionLine
+class A {
+  A$parameters;
+  A.named() : this$arguments;
+}
+''');
+    await computeSuggestions();
+    check();
 
     // Invalid: getter invocation.
     // Parameters not used. Check not used.
diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart
index 77ea08e..24e9359 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/completion/completion_target.dart
@@ -286,6 +286,8 @@
         executable = invocation.constructorName.staticElement;
       } else if (invocation is MethodInvocation) {
         executable = invocation.methodName.staticElement;
+      } else if (invocation is RedirectingConstructorInvocation) {
+        executable = invocation.staticElement;
       } else if (invocation is SuperConstructorInvocation) {
         executable = invocation.staticElement;
       }
diff --git a/runtime/vm/compiler/assembler/assembler_arm64_test.cc b/runtime/vm/compiler/assembler/assembler_arm64_test.cc
index a54fe57..f934e32 100644
--- a/runtime/vm/compiler/assembler/assembler_arm64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_arm64_test.cc
@@ -15,6 +15,13 @@
 namespace compiler {
 #define __ assembler->
 
+#if defined(PRODUCT)
+#define EXPECT_DISASSEMBLY(expected)
+#else
+#define EXPECT_DISASSEMBLY(expected)                                           \
+  EXPECT_STREQ(expected, test->RelativeDisassembly())
+#endif
+
 ASSEMBLER_TEST_GENERATE(Simple, assembler) {
   __ add(R0, ZR, Operand(ZR));
   __ add(R0, R0, Operand(42));
@@ -1108,6 +1115,123 @@
 #undef FOR_EACH_LSR_32_TESTS_LIST
 #undef FOR_EACH_ASR_32_TESTS_LIST
 
+ASSEMBLER_TEST_GENERATE(LslImmediate, assembler) {
+  __ LslImmediate(R0, R0, 1);
+  __ LslImmediate(R0, R0, 2);
+  __ LslImmediate(R0, R0, 3);
+  __ LslImmediate(R0, R0, 4);
+  __ LslImmediate(R0, R0, 60);
+  __ LslImmediate(R0, R0, 61);
+  __ LslImmediate(R0, R0, 62);
+  __ LslImmediate(R0, R0, 63);
+  __ LslImmediate(R0, R0, 1, kFourBytes);
+  __ LslImmediate(R0, R0, 2, kFourBytes);
+  __ LslImmediate(R0, R0, 3, kFourBytes);
+  __ LslImmediate(R0, R0, 4, kFourBytes);
+  __ LslImmediate(R0, R0, 28, kFourBytes);
+  __ LslImmediate(R0, R0, 29, kFourBytes);
+  __ LslImmediate(R0, R0, 30, kFourBytes);
+  __ LslImmediate(R0, R0, 31, kFourBytes);
+}
+
+ASSEMBLER_TEST_RUN(LslImmediate, test) {
+  EXPECT_DISASSEMBLY(
+      "lsl r0, r0, #1\n"
+      "lsl r0, r0, #2\n"
+      "lsl r0, r0, #3\n"
+      "lsl r0, r0, #4\n"
+      "lsl r0, r0, #60\n"
+      "lsl r0, r0, #61\n"
+      "lsl r0, r0, #62\n"
+      "lsl r0, r0, #63\n"
+      "lslw r0, r0, #1\n"
+      "lslw r0, r0, #2\n"
+      "lslw r0, r0, #3\n"
+      "lslw r0, r0, #4\n"
+      "lslw r0, r0, #28\n"
+      "lslw r0, r0, #29\n"
+      "lslw r0, r0, #30\n"
+      "lslw r0, r0, #31\n");
+}
+
+ASSEMBLER_TEST_GENERATE(LsrImmediate, assembler) {
+  __ LsrImmediate(R0, R0, 1);
+  __ LsrImmediate(R0, R0, 2);
+  __ LsrImmediate(R0, R0, 3);
+  __ LsrImmediate(R0, R0, 4);
+  __ LsrImmediate(R0, R0, 60);
+  __ LsrImmediate(R0, R0, 61);
+  __ LsrImmediate(R0, R0, 62);
+  __ LsrImmediate(R0, R0, 63);
+  __ LsrImmediate(R0, R0, 1, kFourBytes);
+  __ LsrImmediate(R0, R0, 2, kFourBytes);
+  __ LsrImmediate(R0, R0, 3, kFourBytes);
+  __ LsrImmediate(R0, R0, 4, kFourBytes);
+  __ LsrImmediate(R0, R0, 28, kFourBytes);
+  __ LsrImmediate(R0, R0, 29, kFourBytes);
+  __ LsrImmediate(R0, R0, 30, kFourBytes);
+  __ LsrImmediate(R0, R0, 31, kFourBytes);
+}
+
+ASSEMBLER_TEST_RUN(LsrImmediate, test) {
+  EXPECT_DISASSEMBLY(
+      "lsr r0, r0, #1\n"
+      "lsr r0, r0, #2\n"
+      "lsr r0, r0, #3\n"
+      "lsr r0, r0, #4\n"
+      "lsr r0, r0, #60\n"
+      "lsr r0, r0, #61\n"
+      "lsr r0, r0, #62\n"
+      "lsr r0, r0, #63\n"
+      "lsrw r0, r0, #1\n"
+      "lsrw r0, r0, #2\n"
+      "lsrw r0, r0, #3\n"
+      "lsrw r0, r0, #4\n"
+      "lsrw r0, r0, #28\n"
+      "lsrw r0, r0, #29\n"
+      "lsrw r0, r0, #30\n"
+      "lsrw r0, r0, #31\n");
+}
+
+ASSEMBLER_TEST_GENERATE(AsrImmediate, assembler) {
+  __ AsrImmediate(R0, R0, 1);
+  __ AsrImmediate(R0, R0, 2);
+  __ AsrImmediate(R0, R0, 3);
+  __ AsrImmediate(R0, R0, 4);
+  __ AsrImmediate(R0, R0, 60);
+  __ AsrImmediate(R0, R0, 61);
+  __ AsrImmediate(R0, R0, 62);
+  __ AsrImmediate(R0, R0, 63);
+  __ AsrImmediate(R0, R0, 1, kFourBytes);
+  __ AsrImmediate(R0, R0, 2, kFourBytes);
+  __ AsrImmediate(R0, R0, 3, kFourBytes);
+  __ AsrImmediate(R0, R0, 4, kFourBytes);
+  __ AsrImmediate(R0, R0, 28, kFourBytes);
+  __ AsrImmediate(R0, R0, 29, kFourBytes);
+  __ AsrImmediate(R0, R0, 30, kFourBytes);
+  __ AsrImmediate(R0, R0, 31, kFourBytes);
+}
+
+ASSEMBLER_TEST_RUN(AsrImmediate, test) {
+  EXPECT_DISASSEMBLY(
+      "asr r0, r0, #1\n"
+      "asr r0, r0, #2\n"
+      "asr r0, r0, #3\n"
+      "asr r0, r0, #4\n"
+      "asr r0, r0, #60\n"
+      "asr r0, r0, #61\n"
+      "asr r0, r0, #62\n"
+      "asr r0, r0, #63\n"
+      "asrw r0, r0, #1\n"
+      "asrw r0, r0, #2\n"
+      "asrw r0, r0, #3\n"
+      "asrw r0, r0, #4\n"
+      "asrw r0, r0, #28\n"
+      "asrw r0, r0, #29\n"
+      "asrw r0, r0, #30\n"
+      "asrw r0, r0, #31\n");
+}
+
 ASSEMBLER_TEST_GENERATE(AndShiftRegs, assembler) {
   __ movz(R1, Immediate(42), 0);
   __ movz(R2, Immediate(21), 0);
diff --git a/runtime/vm/compiler/assembler/assembler_ia32_test.cc b/runtime/vm/compiler/assembler/assembler_ia32_test.cc
index 4f98613..43c4818 100644
--- a/runtime/vm/compiler/assembler/assembler_ia32_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_ia32_test.cc
@@ -15,7 +15,7 @@
 #define EXPECT_DISASSEMBLY(expected)
 #else
 #define EXPECT_DISASSEMBLY(expected)                                           \
-  EXPECT_STREQ(expected, test->BlankedDisassembly())
+  EXPECT_STREQ(expected, test->RelativeDisassembly())
 #endif
 
 namespace dart {
@@ -119,12 +119,12 @@
       "mov eax,[esp-0x4]\n"
       "mov eax,[ebp-0x4]\n"
       "mov eax,[eax-0x4]\n"
-      "mov eax,[esp+0x...]\n"
-      "mov eax,[ebp+0x...]\n"
-      "mov eax,[eax+0x...]\n"
-      "mov eax,[esp-0x...]\n"
-      "mov eax,[ebp-0x...]\n"
-      "mov eax,[eax-0x...]\n"
+      "mov eax,[esp+0x400]\n"
+      "mov eax,[ebp+0x400]\n"
+      "mov eax,[eax+0x400]\n"
+      "mov eax,[esp-0x400]\n"
+      "mov eax,[ebp-0x400]\n"
+      "mov eax,[eax-0x400]\n"
       "mov eax,[eax]\n"
       "mov eax,[eax+0x1]\n"
       "mov eax,[eax+0x2]\n"
@@ -133,8 +133,8 @@
       "mov eax,[eax+0x1]\n"
       "mov eax,[ebp*2+0x4]\n"
       "mov eax,[eax*2+0x4]\n"
-      "mov eax,[ebp*2+0x...]\n"
-      "mov eax,[eax*2+0x...]\n"
+      "mov eax,[ebp*2+0x400]\n"
+      "mov eax,[eax*2+0x400]\n"
       "mov eax,[eax+ebp*2]\n"
       "mov eax,[eax+eax*2]\n"
       "mov eax,[ebp+ebp*2+0]\n"
@@ -147,12 +147,12 @@
       "mov eax,[ebp+eax*2+0x4]\n"
       "mov eax,[esp+ebp*2+0x4]\n"
       "mov eax,[esp+eax*2+0x4]\n"
-      "mov eax,[eax+ebp*2+0x...]\n"
-      "mov eax,[eax+eax*2+0x...]\n"
-      "mov eax,[ebp+ebp*2+0x...]\n"
-      "mov eax,[ebp+eax*2+0x...]\n"
-      "mov eax,[esp+ebp*2+0x...]\n"
-      "mov eax,[esp+eax*2+0x...]\n");
+      "mov eax,[eax+ebp*2+0x400]\n"
+      "mov eax,[eax+eax*2+0x400]\n"
+      "mov eax,[ebp+ebp*2+0x400]\n"
+      "mov eax,[ebp+eax*2+0x400]\n"
+      "mov eax,[esp+ebp*2+0x400]\n"
+      "mov eax,[esp+eax*2+0x400]\n");
 }
 
 ASSEMBLER_TEST_GENERATE(JumpAroundCrash, assembler) {
@@ -180,23 +180,23 @@
   typedef void (*JumpAroundCrashCode)();
   reinterpret_cast<JumpAroundCrashCode>(test->entry())();
   EXPECT_DISASSEMBLY(
-      "jo 0x........\n"
-      "jno 0x........\n"
-      "jc 0x........\n"
-      "jnc 0x........\n"
-      "jz 0x........\n"
-      "jnz 0x........\n"
-      "jna 0x........\n"
-      "ja 0x........\n"
-      "js 0x........\n"
-      "jns 0x........\n"
-      "jpe 0x........\n"
-      "jpo 0x........\n"
-      "jl 0x........\n"
-      "jge 0x........\n"
-      "jle 0x........\n"
-      "jg 0x........\n"
-      "jmp 0x........\n"
+      "jo +108\n"
+      "jno +102\n"
+      "jc +96\n"
+      "jnc +90\n"
+      "jz +84\n"
+      "jnz +78\n"
+      "jna +72\n"
+      "ja +66\n"
+      "js +60\n"
+      "jns +54\n"
+      "jpe +48\n"
+      "jpo +42\n"
+      "jl +36\n"
+      "jge +30\n"
+      "jle +24\n"
+      "jg +18\n"
+      "jmp +12\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "ret\n");
@@ -225,23 +225,23 @@
   typedef void (*NearJumpAroundCrashCode)();
   reinterpret_cast<NearJumpAroundCrashCode>(test->entry())();
   EXPECT_DISASSEMBLY(
-      "jo 0x........\n"
-      "jno 0x........\n"
-      "jc 0x........\n"
-      "jnc 0x........\n"
-      "jz 0x........\n"
-      "jnz 0x........\n"
-      "jna 0x........\n"
-      "ja 0x........\n"
-      "js 0x........\n"
-      "jns 0x........\n"
-      "jpe 0x........\n"
-      "jpo 0x........\n"
-      "jl 0x........\n"
-      "jge 0x........\n"
-      "jle 0x........\n"
-      "jg 0x........\n"
-      "jmp 0x........\n"
+      "jo +41\n"
+      "jno +39\n"
+      "jc +37\n"
+      "jnc +35\n"
+      "jz +33\n"
+      "jnz +31\n"
+      "jna +29\n"
+      "ja +27\n"
+      "js +25\n"
+      "jns +23\n"
+      "jpe +21\n"
+      "jpo +19\n"
+      "jl +17\n"
+      "jge +15\n"
+      "jle +13\n"
+      "jg +11\n"
+      "jmp +9\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "ret\n");
@@ -268,7 +268,7 @@
       "add eax,2\n"
       "inc ecx\n"
       "cmp ecx,0x57\n"
-      "jl 0x........\n"
+      "jl -7\n"
       "ret\n");
 }
 
@@ -289,9 +289,9 @@
   EXPECT_EQ(1, reinterpret_cast<CmpbCode>(test->entry())());
   EXPECT_DISASSEMBLY(
       "mov eax,1\n"
-      "push 0x........\n"
+      "push 0xffffff11\n"
       "cmpb [esp],0x11\n"
-      "jz 0x........\n"
+      "jz +7\n"
       "mov eax,0\n"
       "pop ecx\n"
       "ret\n");
@@ -317,7 +317,7 @@
   EXPECT_DISASSEMBLY(
       "mov eax,1\n"
       "mov ecx,0\n"
-      "push 0x........\n"
+      "push 0xffffff11\n"
       "testb [esp],0x10\n"
       "cmovz eax,ecx\n"
       "testb [esp],0x20\n"
@@ -372,7 +372,7 @@
   typedef int (*PopcntCode)();
   EXPECT_EQ(36, reinterpret_cast<PopcntCode>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "mov ecx,0x........\n"
+      "mov ecx,0xffffffff\n"
       "popcnt eax,ecx\n"
       "mov ecx,0xf\n"
       "popcnt ecx,ecx\n"
@@ -396,7 +396,7 @@
   typedef int (*LzcntCode)();
   EXPECT_EQ(44, reinterpret_cast<LzcntCode>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "mov ecx,0x...\n"
+      "mov ecx,0xf00\n"
       "lzcnt eax,ecx\n"
       "mov ecx,0xf0\n"
       "lzcnt ecx,ecx\n"
@@ -536,7 +536,7 @@
       "mov eax,2\n"
       "mov ecx,4\n"
       "imul eax,ecx\n"
-      "imul eax,eax,0x...\n"
+      "imul eax,eax,0x3e8\n"
       "ret\n");
 }
 
@@ -554,8 +554,8 @@
   EXPECT_EQ(0, reinterpret_cast<OverflowSignedMultiply>(test->entry())());
   EXPECT_DISASSEMBLY(
       "mov edx,0\n"
-      "mov eax,0x........\n"
-      "mov ecx,0x........\n"
+      "mov eax,0x0fffffff\n"
+      "mov ecx,0x0fffffff\n"
       "imul eax,ecx\n"
       "imul eax,edx\n"
       "ret\n");
@@ -580,7 +580,7 @@
       "mov ebx,2\n"
       "mov ecx,4\n"
       "imul ebx,ecx\n"
-      "imul ebx,ebx,0x...\n"
+      "imul ebx,ebx,0x3e8\n"
       "mov eax,ebx\n"
       "pop ebx\n"
       "ret\n");
@@ -622,7 +622,7 @@
   EXPECT_EQ(31, call(-1));
   EXPECT_DISASSEMBLY(
       "mov ecx,[esp+0x4]\n"
-      "mov eax,0x...\n"
+      "mov eax,0x29a\n"
       "bsr eax,ecx\n"
       "ret\n");
 }
@@ -644,7 +644,7 @@
   EXPECT_EQ(0xff - 1 + 0xffff, reinterpret_cast<MoveExtend>(test->entry())());
   EXPECT_DISASSEMBLY(
       "push ebx\n"
-      "mov edx,0x........\n"
+      "mov edx,0x1234ffff\n"
       "movzxb eax,edx\n"
       "movsxw ebx,edx\n"
       "movzxw ecx,edx\n"
@@ -676,7 +676,7 @@
             reinterpret_cast<MoveExtendMemory>(test->entry())());
   EXPECT_DISASSEMBLY(
       "push ebx\n"
-      "mov edx,0x........\n"
+      "mov edx,0x1234ffff\n"
       "push edx\n"
       "movzxb eax,[esp]\n"
       "movsxw ebx,[esp]\n"
@@ -724,12 +724,12 @@
   EXPECT_DISASSEMBLY(
       "mov ecx,0x2a\n"
       "xor ecx,ecx\n"
-      "or ecx,0x...\n"
-      "mov eax,0x...\n"
+      "or ecx,0x100\n"
+      "mov eax,0x648\n"
       "or ecx,eax\n"
-      "mov eax,0x....\n"
+      "mov eax,0xfff0\n"
       "and ecx,eax\n"
-      "push 0x....\n"
+      "push 0xf6ff\n"
       "and ecx,[esp]\n"
       "pop eax\n"
       "mov eax,1\n"
@@ -943,121 +943,121 @@
       "mov eax,4\n"
       "and eax,2\n"
       "cmp eax,0\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov ecx,4\n"
       "and ecx,4\n"
       "cmp ecx,0\n"
-      "jnz 0x........\n"
+      "jnz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,0\n"
       "or eax,0\n"
       "cmp eax,0\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,4\n"
       "or eax,0\n"
       "cmp eax,0\n"
-      "jnz 0x........\n"
+      "jnz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,1\n"
       "shl eax,1\n"
       "cmp eax,2\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,1\n"
       "shl eax,3\n"
       "cmp eax,8\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,2\n"
       "shr eax,1\n"
       "cmp eax,1\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,8\n"
       "shr eax,3\n"
       "cmp eax,1\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,1\n"
       "mov ecx,3\n"
       "shl eax,cl\n"
       "cmp eax,8\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,8\n"
       "mov ecx,3\n"
       "shr eax,cl\n"
       "cmp eax,1\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,1\n"
       "shl eax,31\n"
       "shr eax,3\n"
-      "cmp eax,0x........\n"
-      "jz 0x........\n"
+      "cmp eax,0x10000000\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,1\n"
       "shl eax,31\n"
       "sar eax,3\n"
-      "cmp eax,0x........\n"
-      "jz 0x........\n"
+      "cmp eax,0xf0000000\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,1\n"
       "mov ecx,3\n"
       "shl eax,31\n"
       "sar eax,cl\n"
-      "cmp eax,0x........\n"
-      "jz 0x........\n"
+      "cmp eax,0xf0000000\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "sub esp,4\n"
-      "mov [esp],-0x........\n"
+      "mov [esp],-0x80000000\n"
       "mov eax,0\n"
       "mov ecx,3\n"
       "sar [esp],cl\n"
       "shrd [esp],eax,cl\n"
-      "cmp [esp],0x........\n"
-      "jz 0x........\n"
+      "cmp [esp],0x1e000000\n"
+      "jz +7\n"
       "int3\n"
       "add esp,4\n"
       "sub esp,4\n"
-      "mov [esp],-0x........\n"
-      "mov eax,0x........\n"
+      "mov [esp],-0x01000000\n"
+      "mov eax,0xffffffff\n"
       "mov ecx,2\n"
       "shl [esp],cl\n"
       "shld [esp],eax,cl\n"
-      "cmp [esp],0x........\n"
-      "jz 0x........\n"
+      "cmp [esp],0xf0000003\n"
+      "jz +7\n"
       "int3\n"
       "add esp,4\n"
-      "mov edx,0x........\n"
+      "mov edx,0x80000000\n"
       "mov eax,0\n"
       "mov ecx,3\n"
       "sar edx,3\n"
       "shrd edx,eax,3\n"
-      "cmp edx,0x........\n"
-      "jz 0x........\n"
+      "cmp edx,0x1e000000\n"
+      "jz +7\n"
       "int3\n"
-      "mov edx,0x........\n"
-      "mov eax,0x........\n"
+      "mov edx,0xff000000\n"
+      "mov eax,0xffffffff\n"
       "shl edx,2\n"
       "shld edx,eax,2\n"
-      "cmp edx,0x........\n"
-      "jz 0x........\n"
+      "cmp edx,0xf0000003\n"
+      "jz +7\n"
       "int3\n"
       "mov eax,0\n"
       "ret\n");
@@ -1125,28 +1125,28 @@
       "mov eax,4\n"
       "mov ecx,2\n"
       "test eax,ecx\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov edx,4\n"
       "mov ecx,4\n"
       "test edx,ecx\n"
-      "jnz 0x........\n"
+      "jnz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,0\n"
       "test al,0\n"
-      "jz 0x........\n"
+      "jz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov ebx,4\n"
       "testb ebx,4\n"
-      "jnz 0x........\n"
+      "jnz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov ebx,0xff\n"
       "testb ebx,0xff\n"
-      "jnz 0x........\n"
+      "jnz +13\n"
       "mov eax,0\n"
       "mov [eax],eax\n"
       "mov eax,0\n"
@@ -1217,7 +1217,7 @@
   typedef int (*SignedDivide)();
   EXPECT_EQ(-87 / 42, reinterpret_cast<SignedDivide>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0xffffffa9\n"
       "mov edx,0x7b\n"
       "cdq\n"
       "mov ecx,0x2a\n"
@@ -1237,9 +1237,9 @@
   typedef int (*UnsignedDivide)();
   EXPECT_EQ(0x42, reinterpret_cast<UnsignedDivide>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0xffffffbe\n"
       "mov edx,0x41\n"
-      "mov ecx,0x........\n"
+      "mov ecx,0xffffffff\n"
       "div (eax,edx),ecx\n"
       "ret\n");
 }
@@ -1256,8 +1256,8 @@
   typedef int (*Exchange)();
   EXPECT_EQ(987654321 - 123456789, reinterpret_cast<Exchange>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
-      "mov edx,0x........\n"
+      "mov eax,0x075bcd15\n"
+      "mov edx,0x3ade68b1\n"
       "xchg eax,edx\n"
       "sub eax,edx\n"
       "ret\n");
@@ -1358,7 +1358,7 @@
   float res = reinterpret_cast<SingleFPMovesCode>(test->entry())();
   EXPECT_EQ(234.0f, res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x436a0000\n"
       "movd xmm0,eax\n"
       "movss ecx,xmm0\n"
       "movss edx,xmm1\n"
@@ -1397,7 +1397,7 @@
   EXPECT_DISASSEMBLY(
       "push ebx\n"
       "push ecx\n"
-      "mov ebx,0x........\n"
+      "mov ebx,0x436a0000\n"
       "movd xmm0,ebx\n"
       "movss ecx,xmm0\n"
       "movd ecx,xmm1\n"
@@ -1426,7 +1426,7 @@
   int res = reinterpret_cast<SingleFPUStackMovesCode>(test->entry())();
   EXPECT_EQ(234.0f, (bit_cast<float, int>(res)));
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x436a0000\n"
       "push eax\n"
       "fld_s [esp]\n"
       "xor ecx,ecx\n"
@@ -1458,9 +1458,9 @@
   float res = reinterpret_cast<SingleFPOperationsCode>(test->entry())();
   EXPECT_FLOAT_EQ(14.7f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x4144cccd\n"
       "movd xmm0,eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x4059999a\n"
       "movd xmm1,eax\n"
       "addss xmm0,xmm1\n"
       "mulss xmm0,xmm1\n"
@@ -1498,10 +1498,10 @@
   float res = reinterpret_cast<PackedFPOperationsCode>(test->entry())();
   EXPECT_FLOAT_EQ(14.7f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x4144cccd\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x4059999a\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "addps xmm0,xmm1\n"
@@ -1577,7 +1577,7 @@
   float res = reinterpret_cast<PackedFPOperations2Code>(test->entry())();
   EXPECT_FLOAT_EQ(0.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
       "movaps xmm1,xmm0\n"
@@ -1610,10 +1610,10 @@
   uint32_t res = reinterpret_cast<PackedCompareEQCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [eq]\n"
@@ -1641,10 +1641,10 @@
   uint32_t res = reinterpret_cast<PackedCompareNEQCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0xFFFFFFFF), res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [neq]\n"
@@ -1672,10 +1672,10 @@
   uint32_t res = reinterpret_cast<PackedCompareLTCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0xFFFFFFFF), res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [lt]\n"
@@ -1703,10 +1703,10 @@
   uint32_t res = reinterpret_cast<PackedCompareLECode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0xFFFFFFFF), res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [le]\n"
@@ -1734,10 +1734,10 @@
   uint32_t res = reinterpret_cast<PackedCompareNLTCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [nlt]\n"
@@ -1765,10 +1765,10 @@
   uint32_t res = reinterpret_cast<PackedCompareNLECode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [nle]\n"
@@ -1798,10 +1798,10 @@
   float res = reinterpret_cast<PackedNegateCode>(test->entry())();
   EXPECT_FLOAT_EQ(-12.3f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x4144cccd\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "xorps xmm0,[rip+0x.......]\n"
+      "xorps xmm0,[0x.......]\n"
       "shufps xmm0,xmm0 [aa]\n"
       "push eax\n"
       "movss [esp],xmm0\n"
@@ -1829,10 +1829,10 @@
   float res = reinterpret_cast<PackedAbsoluteCode>(test->entry())();
   EXPECT_FLOAT_EQ(15.3f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0xc174cccd\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "andps xmm0,[rip+0x.......]\n"
+      "andps xmm0,[0x.......]\n"
       "shufps xmm0,xmm0 [aa]\n"
       "push eax\n"
       "movss [esp],xmm0\n"
@@ -1858,10 +1858,10 @@
   float res = reinterpret_cast<PackedSetWZeroCode>(test->entry())();
   EXPECT_FLOAT_EQ(0.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x4144cccd\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "andps xmm0,[rip+0x.......]\n"
+      "andps xmm0,[0x.......]\n"
       "shufps xmm0,xmm0 [ff]\n"
       "push eax\n"
       "movss [esp],xmm0\n"
@@ -1887,10 +1887,10 @@
   float res = reinterpret_cast<PackedMinCode>(test->entry())();
   EXPECT_FLOAT_EQ(2.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "minps xmm0,xmm1\n"
@@ -1918,10 +1918,10 @@
   float res = reinterpret_cast<PackedMaxCode>(test->entry())();
   EXPECT_FLOAT_EQ(4.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40000000\n"
       "movd xmm0,eax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "mov eax,0x........\n"
+      "mov eax,0x40800000\n"
       "movd xmm1,eax\n"
       "shufps xmm1,xmm1 [0]\n"
       "maxps xmm0,xmm1\n"
@@ -1961,8 +1961,8 @@
   uint32_t res = reinterpret_cast<PackedLogicalOrCode>(test->entry())();
   EXPECT_EQ(0xFFFFFFFF, res);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "orps xmm0,xmm1\n"
       "push eax\n"
       "movss [esp],xmm0\n"
@@ -1999,8 +1999,8 @@
   uint32_t res = reinterpret_cast<PackedLogicalAndCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0000F000), res);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "andps xmm0,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "andps xmm0,[0x.......]\n"
       "push eax\n"
       "movss [esp],xmm0\n"
       "fld_s [esp]\n"
@@ -2030,8 +2030,8 @@
   uint32_t res = reinterpret_cast<PackedLogicalNotCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "xorps xmm0,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "xorps xmm0,[0x.......]\n"
       "push eax\n"
       "movss [esp],xmm0\n"
       "fld_s [esp]\n"
@@ -2076,8 +2076,8 @@
   float res = reinterpret_cast<PackedMoveHighLow>(test->entry())();
   EXPECT_FLOAT_EQ(15.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "movhlps xmm0,xmm1\n"
       "xorps xmm1,xmm1\n"
       "movaps xmm1,xmm0\n"
@@ -2128,8 +2128,8 @@
   float res = reinterpret_cast<PackedMoveLowHigh>(test->entry())();
   EXPECT_FLOAT_EQ(11.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "movlhps xmm0,xmm1\n"
       "xorps xmm1,xmm1\n"
       "movaps xmm1,xmm0\n"
@@ -2179,8 +2179,8 @@
   float res = reinterpret_cast<PackedUnpackLow>(test->entry())();
   EXPECT_FLOAT_EQ(11.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "unpcklps xmm0,xmm1\n"
       "movaps xmm1,xmm0\n"
       "shufps xmm0,xmm0 [55]\n"
@@ -2229,8 +2229,8 @@
   float res = reinterpret_cast<PackedUnpackHigh>(test->entry())();
   EXPECT_FLOAT_EQ(7.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "unpckhps xmm0,xmm1\n"
       "movaps xmm1,xmm0\n"
       "shufps xmm0,xmm0 [0]\n"
@@ -2279,8 +2279,8 @@
   float res = reinterpret_cast<PackedUnpackLowPair>(test->entry())();
   EXPECT_FLOAT_EQ(6.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "unpcklpd xmm0,xmm1\n"
       "movaps xmm1,xmm0\n"
       "shufps xmm0,xmm0 [0]\n"
@@ -2329,8 +2329,8 @@
   float res = reinterpret_cast<PackedUnpackHighPair>(test->entry())();
   EXPECT_FLOAT_EQ(12.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "unpckhpd xmm0,xmm1\n"
       "movaps xmm1,xmm0\n"
       "shufps xmm0,xmm0 [55]\n"
@@ -2369,8 +2369,8 @@
   double res = reinterpret_cast<PackedDoubleAdd>(test->entry())();
   EXPECT_FLOAT_EQ(4.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "addpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2407,8 +2407,8 @@
   double res = reinterpret_cast<PackedDoubleSub>(test->entry())();
   EXPECT_FLOAT_EQ(-2.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "subpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2440,8 +2440,8 @@
   double res = reinterpret_cast<PackedDoubleNegate>(test->entry())();
   EXPECT_FLOAT_EQ(-1.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "xorpd xmm0,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "xorpd xmm0,[0x.......]\n"
       "push eax\n"
       "push eax\n"
       "movsd [esp],xmm0\n"
@@ -2472,8 +2472,8 @@
   double res = reinterpret_cast<PackedDoubleAbsolute>(test->entry())();
   EXPECT_FLOAT_EQ(1.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "andpd xmm0,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "andpd xmm0,[0x.......]\n"
       "push eax\n"
       "push eax\n"
       "movsd [esp],xmm0\n"
@@ -2509,8 +2509,8 @@
   double res = reinterpret_cast<PackedDoubleMul>(test->entry())();
   EXPECT_FLOAT_EQ(9.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "mulpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2547,8 +2547,8 @@
   double res = reinterpret_cast<PackedDoubleDiv>(test->entry())();
   EXPECT_FLOAT_EQ(3.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "divpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2580,7 +2580,7 @@
   double res = reinterpret_cast<PackedDoubleSqrt>(test->entry())();
   EXPECT_FLOAT_EQ(4.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
       "sqrtpd xmm0,xmm0\n"
       "push eax\n"
       "push eax\n"
@@ -2617,8 +2617,8 @@
   double res = reinterpret_cast<PackedDoubleMin>(test->entry())();
   EXPECT_FLOAT_EQ(3.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "minpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2655,8 +2655,8 @@
   double res = reinterpret_cast<PackedDoubleMax>(test->entry())();
   EXPECT_FLOAT_EQ(9.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "maxpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2692,7 +2692,7 @@
   double res = reinterpret_cast<PackedDoubleShuffle>(test->entry())();
   EXPECT_FLOAT_EQ(9.0, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm0,[rip+0x.......]\n"
+      "movups xmm0,[0x.......]\n"
       "shufpd xmm0, xmm0 [33]\n"
       "shufpd xmm0, xmm0 [0]\n"
       "push eax\n"
@@ -2723,7 +2723,7 @@
   float res = reinterpret_cast<PackedDoubleToSingle>(test->entry())();
   EXPECT_FLOAT_EQ(9.0f, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "cvtpd2ps xmm0,xmm1\n"
       "push eax\n"
       "movss [esp],xmm0\n"
@@ -2755,7 +2755,7 @@
   double res = reinterpret_cast<PackedSingleToDouble>(test->entry())();
   EXPECT_FLOAT_EQ(9.0f, res, 0.000001f);
   EXPECT_DISASSEMBLY(
-      "movups xmm1,[rip+0x.......]\n"
+      "movups xmm1,[0x.......]\n"
       "cvtps2pd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -2785,7 +2785,7 @@
   float res = reinterpret_cast<SingleFPOperationsStackCode>(test->entry())(3.4);
   EXPECT_FLOAT_EQ(14.7f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x4144cccd\n"
       "movd xmm0,eax\n"
       "addss xmm0,[esp+0x4]\n"
       "mulss xmm0,[esp+0x4]\n"
@@ -2838,9 +2838,9 @@
   double res = reinterpret_cast<DoubleFPMovesCode>(test->entry())();
   EXPECT_FLOAT_EQ(1024.67, res, 0.0001);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x409002ae\n"
       "push eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x147ae148\n"
       "push eax\n"
       "movsd xmm0,[esp]\n"
       "movsd xmm1,xmm0\n"
@@ -2891,9 +2891,9 @@
   int64_t res = reinterpret_cast<DoubleFPUStackMovesCode>(test->entry())();
   EXPECT_FLOAT_EQ(1024.67, (bit_cast<double, int64_t>(res)), 0.001);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x409002ae\n"
       "push eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x147ae148\n"
       "push eax\n"
       "fld_d [esp]\n"
       "mov [esp],0\n"
@@ -2935,16 +2935,16 @@
   double res = reinterpret_cast<DoubleFPOperationsCode>(test->entry())();
   EXPECT_FLOAT_EQ(14.7, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40289999\n"
       "push eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x9999999a\n"
       "push eax\n"
       "movsd xmm0,[esp]\n"
       "pop eax\n"
       "pop eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x400b3333\n"
       "push eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x33333333\n"
       "push eax\n"
       "movsd xmm1,[esp]\n"
       "addsd xmm0,xmm1\n"
@@ -2988,9 +2988,9 @@
       reinterpret_cast<DoubleFPOperationsStackCode>(test->entry())(3.4);
   EXPECT_FLOAT_EQ(14.7, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40289999\n"
       "push eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x9999999a\n"
       "push eax\n"
       "movsd xmm0,[esp]\n"
       "pop eax\n"
@@ -3093,8 +3093,8 @@
       reinterpret_cast<NegativeInt64ToDoubleConversionCode>(test->entry())();
   EXPECT_EQ(-6.0, res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
-      "mov edx,0x........\n"
+      "mov eax,0xffffffff\n"
+      "mov edx,0xfffffffa\n"
       "push eax\n"
       "push edx\n"
       "fild_d [esp]\n"
@@ -3188,7 +3188,7 @@
   double res = reinterpret_cast<FloatToDoubleConversionCode>(test->entry())();
   EXPECT_FLOAT_EQ(12.3, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x4144cccd\n"
       "movd xmm1,eax\n"
       "xor eax,eax\n"
       "cvtss2sd xmm2,xmm1\n"
@@ -3248,26 +3248,26 @@
   EXPECT_EQ(0, res);
   EXPECT_DISASSEMBLY(
       "xor eax,eax\n"
-      "mov edx,0x........\n"
+      "mov edx,0x4144cccd\n"
       "movd xmm0,edx\n"
-      "mov edx,0x........\n"
+      "mov edx,0x41480000\n"
       "movd xmm1,edx\n"
       "comiss xmm0,xmm1\n"
-      "jpe 0x........\n"
-      "ja 0x........\n"
-      "jc 0x........\n"
+      "jpe +43\n"
+      "ja +40\n"
+      "jc +7\n"
       "inc eax\n"
       "mov edx,0\n"
       "movd xmm1,edx\n"
       "divss xmm1,xmm1\n"
       "comiss xmm1,xmm1\n"
-      "jpe 0x........\n"
+      "jpe +7\n"
       "inc eax\n"
       "ret\n"
       "inc eax\n"
-      "jmp 0x........\n"
+      "jmp -38\n"
       "inc eax\n"
-      "jmp 0x........\n");
+      "jmp -35\n");
 }
 
 ASSEMBLER_TEST_GENERATE(DoubleCompare, assembler) {
@@ -3338,14 +3338,14 @@
   int res = reinterpret_cast<DoubleCompareCode>(test->entry())();
   EXPECT_EQ(0, res);
   EXPECT_DISASSEMBLY(
-      "mov edx,0x........\n"
+      "mov edx,0x40289999\n"
       "push edx\n"
-      "mov edx,0x........\n"
+      "mov edx,0x9999999a\n"
       "push edx\n"
       "movsd xmm0,[esp]\n"
       "pop edx\n"
       "pop edx\n"
-      "mov edx,0x........\n"
+      "mov edx,0x40290000\n"
       "push edx\n"
       "mov edx,0\n"
       "push edx\n"
@@ -3354,9 +3354,9 @@
       "pop edx\n"
       "xor eax,eax\n"
       "comisd xmm0,xmm1\n"
-      "jpe 0x........\n"
-      "ja 0x........\n"
-      "jc 0x........\n"
+      "jpe +54\n"
+      "ja +51\n"
+      "jc +7\n"
       "inc eax\n"
       "mov edx,0\n"
       "push edx\n"
@@ -3367,13 +3367,13 @@
       "pop edx\n"
       "divsd xmm1,xmm1\n"
       "comisd xmm1,xmm1\n"
-      "jpe 0x........\n"
+      "jpe +7\n"
       "inc eax\n"
       "ret\n"
       "inc eax\n"
-      "jmp 0x........\n"
+      "jmp -49\n"
       "inc eax\n"
-      "jmp 0x........\n");
+      "jmp -46\n");
 }
 
 ASSEMBLER_TEST_GENERATE(DoubleToFloatConversion, assembler) {
@@ -3396,9 +3396,9 @@
   float res = reinterpret_cast<DoubleToFloatConversionCode>(test->entry())();
   EXPECT_FLOAT_EQ(12.3f, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0x40289999\n"
       "push eax\n"
-      "mov eax,0x........\n"
+      "mov eax,0x9999999a\n"
       "push eax\n"
       "movsd xmm0,[esp]\n"
       "cvtsd2ss xmm1,xmm0\n"
@@ -3499,7 +3499,7 @@
   double res = reinterpret_cast<GlobalAddressCode>(test->entry())();
   EXPECT_FLOAT_EQ(kDoubleConst, res, 0.000001);
   EXPECT_DISASSEMBLY(
-      "movsd xmm0,[rip+0x.......]\n"
+      "movsd xmm0,[0x.......]\n"
       "push eax\n"
       "push eax\n"
       "movsd [esp],xmm0\n"
@@ -3703,7 +3703,7 @@
   EXPECT_FLOAT_EQ(-kFloatConst, res, 0.0001);
   EXPECT_DISASSEMBLY(
       "movss xmm0,[esp+0x4]\n"
-      "xorps xmm0,[rip+0x.......]\n"
+      "xorps xmm0,[0x.......]\n"
       "push eax\n"
       "movss [esp],xmm0\n"
       "fld_s [esp]\n"
@@ -3730,7 +3730,7 @@
   EXPECT_FLOAT_EQ(-kDoubleConst, res, 0.0001);
   EXPECT_DISASSEMBLY(
       "movsd xmm0,[esp+0x4]\n"
-      "xorpd xmm0,[rip+0x.......]\n"
+      "xorpd xmm0,[0x.......]\n"
       "push eax\n"
       "push eax\n"
       "movsd [esp],xmm0\n"
@@ -4124,7 +4124,7 @@
       "push eax\n"
       "fnstcw [esp]\n"
       "movzxw eax,[esp]\n"
-      "or eax,0x...\n"
+      "or eax,0xc00\n"
       "movw [esp+0x4],eax\n"
       "fldcw [esp+0x4]\n"
       "push eax\n"
@@ -4214,7 +4214,7 @@
   EXPECT_DISASSEMBLY(
       "movsd xmm0,[esp+0x4]\n"
       "xorpd xmm1,xmm1\n"
-      "xorpd xmm1,[rip+0x.......]\n"
+      "xorpd xmm1,[0x.......]\n"
       "orpd xmm0,xmm1\n"
       "push eax\n"
       "push eax\n"
@@ -4383,7 +4383,7 @@
   EXPECT_FLOAT_EQ(val, res, 0.001);
   EXPECT_DISASSEMBLY(
       "movsd xmm0,[esp+0x4]\n"
-      "andpd xmm0,[rip+0x.......]\n"
+      "andpd xmm0,[0x.......]\n"
       "push eax\n"
       "push eax\n"
       "movsd [esp],xmm0\n"
@@ -4445,7 +4445,7 @@
       "mov edx,[esp+0x8]\n"
       "xor eax,eax\n"
       "mov ebx,1\n"
-      "mov ecx,0x........\n"
+      "mov ecx,0xffffffff\n"
       "test edx,edx\n"
       "cmovs eax,ecx\n"
       "test edx,edx\n"
@@ -4500,7 +4500,7 @@
       "xor eax,eax\n"
       "mov ecx,1\n"
       "mov edx,[esp+0x4]\n"
-      "cmp edx,0x...\n"
+      "cmp edx,0x311\n"
       "cmovz eax,ecx\n"
       "ret\n");
 }
@@ -4525,7 +4525,7 @@
       "xor eax,eax\n"
       "mov ecx,1\n"
       "mov edx,[esp+0x4]\n"
-      "cmp edx,0x...\n"
+      "cmp edx,0x311\n"
       "cmovnz eax,ecx\n"
       "ret\n");
 }
@@ -4550,7 +4550,7 @@
   EXPECT_EQ(-1, res);  // Less.
   EXPECT_DISASSEMBLY(
       "mov edx,1\n"
-      "mov ecx,0x........\n"
+      "mov ecx,0xffffffff\n"
       "mov eax,[esp+0x4]\n"
       "cmp eax,[esp+0x8]\n"
       "cmovl eax,ecx\n"
@@ -4574,8 +4574,8 @@
   double res = reinterpret_cast<TestLoadDoubleConstantCode>(test->entry())();
   EXPECT_FLOAT_EQ(-12.34, res, 0.0001);
   EXPECT_DISASSEMBLY(
-      "push 0x........\n"
-      "push 0x........\n"
+      "push 0xc028ae14\n"
+      "push 0x7ae147ae\n"
       "movsd xmm3,[esp]\n"
       "add esp,8\n"
       "push eax\n"
@@ -4608,17 +4608,7 @@
   typedef bool (*TestObjectCompare)();
   bool res = reinterpret_cast<TestObjectCompare>(test->entry())();
   EXPECT_EQ(true, res);
-  EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
-      "cmp eax,0x........\n"
-      "jnz 0x........\n"
-      "mov ecx,0x........\n"
-      "cmp ecx,0x........\n"
-      "jnz 0x........\n"
-      "mov eax,1\n"
-      "ret\n"
-      "mov eax,0\n"
-      "ret\n");
+  // Disassembly contains absolute addresses of objects that vary between runs.
 }
 
 ASSEMBLER_TEST_GENERATE(TestSetCC, assembler) {
@@ -4633,7 +4623,7 @@
   uword res = reinterpret_cast<TestSetCC>(test->entry())();
   EXPECT_EQ(0xFFFFFF00, res);
   EXPECT_DISASSEMBLY(
-      "mov eax,0x........\n"
+      "mov eax,0xffffffff\n"
       "cmp eax,eax\n"
       "setnz eax\n"
       "ret\n");
@@ -4900,7 +4890,7 @@
       "mov eax,4\n"
       "mov ecx,2\n"
       "bt eax,ecx\n"
-      "jc 0x........\n"
+      "jc +7\n"
       "int3\n"
       "mov eax,1\n"
       "ret\n");
@@ -4923,7 +4913,7 @@
   EXPECT_DISASSEMBLY(
       "mov ecx,0x20\n"
       "bt ecx,5\n"
-      "jc 0x........\n"
+      "jc +7\n"
       "int3\n"
       "mov eax,1\n"
       "ret\n");
diff --git a/runtime/vm/compiler/assembler/assembler_x64_test.cc b/runtime/vm/compiler/assembler/assembler_x64_test.cc
index 3d2deb2..1dded0f 100644
--- a/runtime/vm/compiler/assembler/assembler_x64_test.cc
+++ b/runtime/vm/compiler/assembler/assembler_x64_test.cc
@@ -24,9 +24,9 @@
 #define EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(expected)
 #else
 #define EXPECT_DISASSEMBLY(expected)                                           \
-  EXPECT_STREQ(expected, test->BlankedDisassembly())
+  EXPECT_STREQ(expected, test->RelativeDisassembly())
 #define EXPECT_DISASSEMBLY_ENDS_WITH(expected_arg)                             \
-  char* disassembly = test->BlankedDisassembly();                              \
+  char* disassembly = test->RelativeDisassembly();                             \
   const char* expected = expected_arg;                                         \
   intptr_t dis_len = strlen(disassembly);                                      \
   intptr_t exp_len = strlen(expected);                                         \
@@ -279,18 +279,18 @@
       "movq rax,[r10-0x8]\n"
       "movq rax,[r12-0x8]\n"
       "movq rax,[r13-0x8]\n"
-      "movq rax,[rsp+0x...]\n"
-      "movq rax,[rbp+0x...]\n"
-      "movq rax,[rax+0x...]\n"
-      "movq rax,[r10+0x...]\n"
-      "movq rax,[r12+0x...]\n"
-      "movq rax,[r13+0x...]\n"
-      "movq rax,[rsp-0x...]\n"
-      "movq rax,[rbp-0x...]\n"
-      "movq rax,[rax-0x...]\n"
-      "movq rax,[r10-0x...]\n"
-      "movq rax,[r12-0x...]\n"
-      "movq rax,[r13-0x...]\n"
+      "movq rax,[rsp+0x800]\n"
+      "movq rax,[rbp+0x800]\n"
+      "movq rax,[rax+0x800]\n"
+      "movq rax,[r10+0x800]\n"
+      "movq rax,[r12+0x800]\n"
+      "movq rax,[r13+0x800]\n"
+      "movq rax,[rsp-0x800]\n"
+      "movq rax,[rbp-0x800]\n"
+      "movq rax,[rax-0x800]\n"
+      "movq rax,[r10-0x800]\n"
+      "movq rax,[r12-0x800]\n"
+      "movq rax,[r13-0x800]\n"
       "movq rax,[rax*1+0]\n"
       "movq rax,[rax*2+0]\n"
       "movq rax,[rax*4+0]\n"
@@ -305,11 +305,11 @@
       "movq rax,[r10*2+0x8]\n"
       "movq rax,[r12*2+0x8]\n"
       "movq rax,[r13*2+0x8]\n"
-      "movq rax,[rbp*2+0x...]\n"
-      "movq rax,[rax*2+0x...]\n"
-      "movq rax,[r10*2+0x...]\n"
-      "movq rax,[r12*2+0x...]\n"
-      "movq rax,[r13*2+0x...]\n"
+      "movq rax,[rbp*2+0x800]\n"
+      "movq rax,[rax*2+0x800]\n"
+      "movq rax,[r10*2+0x800]\n"
+      "movq rax,[r12*2+0x800]\n"
+      "movq rax,[r13*2+0x800]\n"
       "movq rax,[rax+rbp*2]\n"
       "movq rax,[rax+rax*2]\n"
       "movq rax,[rax+r10*2]\n"
@@ -370,36 +370,36 @@
       "movq rax,[r13+r10*2+0x8]\n"
       "movq rax,[r13+r12*2+0x8]\n"
       "movq rax,[r13+r13*2+0x8]\n"
-      "movq rax,[rax+rbp*2+0x...]\n"
-      "movq rax,[rax+rax*2+0x...]\n"
-      "movq rax,[rax+r10*2+0x...]\n"
-      "movq rax,[rax+r12*2+0x...]\n"
-      "movq rax,[rax+r13*2+0x...]\n"
-      "movq rax,[rbp+rbp*2+0x...]\n"
-      "movq rax,[rbp+rax*2+0x...]\n"
-      "movq rax,[rbp+r10*2+0x...]\n"
-      "movq rax,[rbp+r12*2+0x...]\n"
-      "movq rax,[rbp+r13*2+0x...]\n"
-      "movq rax,[rsp+rbp*2+0x...]\n"
-      "movq rax,[rsp+rax*2+0x...]\n"
-      "movq rax,[rsp+r10*2+0x...]\n"
-      "movq rax,[rsp+r12*2+0x...]\n"
-      "movq rax,[rsp+r13*2+0x...]\n"
-      "movq rax,[r10+rbp*2+0x...]\n"
-      "movq rax,[r10+rax*2+0x...]\n"
-      "movq rax,[r10+r10*2+0x...]\n"
-      "movq rax,[r10+r12*2+0x...]\n"
-      "movq rax,[r10+r13*2+0x...]\n"
-      "movq rax,[r12+rbp*2+0x...]\n"
-      "movq rax,[r12+rax*2+0x...]\n"
-      "movq rax,[r12+r10*2+0x...]\n"
-      "movq rax,[r12+r12*2+0x...]\n"
-      "movq rax,[r12+r13*2+0x...]\n"
-      "movq rax,[r13+rbp*2+0x...]\n"
-      "movq rax,[r13+rax*2+0x...]\n"
-      "movq rax,[r13+r10*2+0x...]\n"
-      "movq rax,[r13+r12*2+0x...]\n"
-      "movq rax,[r13+r13*2+0x...]\n"
+      "movq rax,[rax+rbp*2+0x800]\n"
+      "movq rax,[rax+rax*2+0x800]\n"
+      "movq rax,[rax+r10*2+0x800]\n"
+      "movq rax,[rax+r12*2+0x800]\n"
+      "movq rax,[rax+r13*2+0x800]\n"
+      "movq rax,[rbp+rbp*2+0x800]\n"
+      "movq rax,[rbp+rax*2+0x800]\n"
+      "movq rax,[rbp+r10*2+0x800]\n"
+      "movq rax,[rbp+r12*2+0x800]\n"
+      "movq rax,[rbp+r13*2+0x800]\n"
+      "movq rax,[rsp+rbp*2+0x800]\n"
+      "movq rax,[rsp+rax*2+0x800]\n"
+      "movq rax,[rsp+r10*2+0x800]\n"
+      "movq rax,[rsp+r12*2+0x800]\n"
+      "movq rax,[rsp+r13*2+0x800]\n"
+      "movq rax,[r10+rbp*2+0x800]\n"
+      "movq rax,[r10+rax*2+0x800]\n"
+      "movq rax,[r10+r10*2+0x800]\n"
+      "movq rax,[r10+r12*2+0x800]\n"
+      "movq rax,[r10+r13*2+0x800]\n"
+      "movq rax,[r12+rbp*2+0x800]\n"
+      "movq rax,[r12+rax*2+0x800]\n"
+      "movq rax,[r12+r10*2+0x800]\n"
+      "movq rax,[r12+r12*2+0x800]\n"
+      "movq rax,[r12+r13*2+0x800]\n"
+      "movq rax,[r13+rbp*2+0x800]\n"
+      "movq rax,[r13+rax*2+0x800]\n"
+      "movq rax,[r13+r10*2+0x800]\n"
+      "movq rax,[r13+r12*2+0x800]\n"
+      "movq rax,[r13+r13*2+0x800]\n"
       "movq rax,[rsp+0]\n"
       "movq rax,[rbp+0]\n"
       "movq rax,[rax+0]\n"
@@ -446,23 +446,23 @@
   typedef void (*JumpAroundCrashCode)();
   reinterpret_cast<JumpAroundCrashCode>(test->entry())();
   EXPECT_DISASSEMBLY(
-      "jo 0x................\n"
-      "jno 0x................\n"
-      "jc 0x................\n"
-      "jnc 0x................\n"
-      "jz 0x................\n"
-      "jnz 0x................\n"
-      "jna 0x................\n"
-      "ja 0x................\n"
-      "js 0x................\n"
-      "jns 0x................\n"
-      "jpe 0x................\n"
-      "jpo 0x................\n"
-      "jl 0x................\n"
-      "jge 0x................\n"
-      "jle 0x................\n"
-      "jg 0x................\n"
-      "jmp 0x................\n"
+      "jo +109\n"
+      "jno +103\n"
+      "jc +97\n"
+      "jnc +91\n"
+      "jz +85\n"
+      "jnz +79\n"
+      "jna +73\n"
+      "ja +67\n"
+      "js +61\n"
+      "jns +55\n"
+      "jpe +49\n"
+      "jpo +43\n"
+      "jl +37\n"
+      "jge +31\n"
+      "jle +25\n"
+      "jg +19\n"
+      "jmp +13\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "ret\n");
@@ -489,7 +489,7 @@
       "addq rax,2\n"
       "incq rcx\n"
       "cmpq rcx,0x57\n"
-      "jl 0x................\n"
+      "jl -11\n"
       "ret\n");
 }
 
@@ -510,10 +510,10 @@
   EXPECT_EQ(1, reinterpret_cast<CmpbCode>(test->entry())());
   EXPECT_DISASSEMBLY(
       "movl rax,1\n"
-      "movl r11,0x........\n"
+      "movl r11,0xffffff11\n"
       "push r11\n"
       "cmpb [rsp],0x11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "movl rax,0\n"
       "pop rcx\n"
       "ret\n");
@@ -542,12 +542,12 @@
   EXPECT_DISASSEMBLY(
       "movl rax,1\n"
       "movl rcx,0\n"
-      "movl r11,0x........\n"
+      "movl r11,0xffffff11\n"
       "push r11\n"
       "testb [rsp],0x10\n"
       "cmovzq rax,rcx\n"
       "testb [rsp],0x20\n"
-      "jz 0x................\n"
+      "jz +11\n"
       "movl rax,0\n"
       "pop rcx\n"
       "ret\n");
@@ -610,43 +610,43 @@
   typedef int64_t (*Testb2Code)();
   EXPECT_EQ(42, reinterpret_cast<Testb2Code>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0xffffefff\n"
       "bsrq rcx,rax\n"
       "cmpq rcx,0x1f\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
 
       "sarq rax,1\n"
-      "cmpq rax,0x........\n"
-      "jz 0x................\n"
+      "cmpq rax,0x7ffff7ff\n"
+      "jz +7\n"
       "int3\n"
 
-      "movl rax,0x........\n"
+      "movl rax,0x7fffffff\n"
       "bsrq rcx,rax\n"
       "cmpq rcx,0x1e\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
 
-      "cmpq rax,0x........\n"
-      "jz 0x................\n"
+      "cmpq rax,0x7fffffff\n"
+      "jz +7\n"
       "int3\n"
 
-      "movq rax,0x................\n"
-      "andl rax,0x........\n"
-      "cmpq rax,0x........\n"
-      "jz 0x................\n"
+      "movq rax,0x0000000101020408\n"
+      "andl rax,0xffffffff\n"
+      "cmpq rax,0x01020408\n"
+      "jz +7\n"
       "int3\n"
 
-      "movq rcx,0x................\n"
-      "andl rcx,0x........\n"
-      "cmpq rcx,0x........\n"
-      "jz 0x................\n"
+      "movq rcx,0x0000000101020408\n"
+      "andl rcx,0xffffffff\n"
+      "cmpq rcx,0x01020408\n"
+      "jz +7\n"
       "int3\n"
 
-      "movl rax,0x........\n"
+      "movl rax,0x0fffeff0\n"
       "bsfq rcx,rax\n"
       "cmpq rcx,4\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
 
       "movl rax,0x2a\n"
@@ -676,7 +676,7 @@
       "push rdi\n"
       "movl rdx,0x10\n"
       "testb rdx,[rsp]\n"
-      "jz 0x................\n"
+      "jz +13\n"
       "movl rax,1\n"
       "pop rcx\n"
       "ret\n"
@@ -725,7 +725,7 @@
   typedef int64_t (*LzcntCode)();
   EXPECT_EQ(108, reinterpret_cast<LzcntCode>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rcx,0x...\n"
+      "movl rcx,0xf00\n"
       "lzcntq rax,rcx\n"
       "movl rcx,0xf0\n"
       "lzcntq rcx,rcx\n"
@@ -818,7 +818,7 @@
   typedef int64_t (*IncrementCodeLong)();
   EXPECT_EQ(0x100000001, reinterpret_cast<IncrementCodeLong>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0xffffffff\n"
       "push rax\n"
       "incq [rsp]\n"
       "movq rcx,[rsp]\n"
@@ -870,7 +870,7 @@
   typedef int64_t (*DecrementCodeLong)();
   EXPECT_EQ(0xffffffff, reinterpret_cast<DecrementCodeLong>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x0000000100000001\n"
       "push rax\n"
       "decq [rsp]\n"
       "movq rcx,[rsp]\n"
@@ -895,7 +895,7 @@
       "movl rax,2\n"
       "movl rcx,4\n"
       "imull rax,rcx\n"
-      "imull rax,rax,0x...\n"
+      "imull rax,rax,0x3e8\n"
       "ret\n");
 }
 
@@ -1009,13 +1009,13 @@
   EXPECT_EQ(kProductLargeConstants,
             reinterpret_cast<SignedMultiplyLong>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
-      "movq rcx,0x................\n"
+      "movq rax,0x1234567887654321\n"
+      "movq rcx,0x0db4da5f7ef412b1\n"
       "imulq rax,rcx\n"
-      "movq r11,0x................\n"
+      "movq r11,0x1234567887654321\n"
       "imulq rcx,r11\n"
       "cmpq rax,rcx\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "ret\n");
 }
@@ -1034,8 +1034,8 @@
   EXPECT_EQ(0, reinterpret_cast<OverflowSignedMultiply>(test->entry())());
   EXPECT_DISASSEMBLY(
       "movl rdx,0\n"
-      "movl rax,0x........\n"
-      "movl rcx,0x........\n"
+      "movl rax,0x0fffffff\n"
+      "movl rcx,0x0fffffff\n"
       "imull rax,rcx\n"
       "imull rax,rdx\n"
       "ret\n");
@@ -1057,7 +1057,7 @@
       "movl rdx,2\n"
       "movl rcx,4\n"
       "imull rdx,rcx\n"
-      "imull rdx,rdx,0x...\n"
+      "imull rdx,rdx,0x3e8\n"
       "movl rax,rdx\n"
       "ret\n");
 }
@@ -1077,7 +1077,7 @@
   EXPECT_DISASSEMBLY(
       "push pp\n"
       "movl pp,2\n"
-      "imull pp,pp,0x...\n"
+      "imull pp,pp,0x3e8\n"
       "movl rax,pp\n"
       "pop pp\n"
       "ret\n");
@@ -1115,7 +1115,7 @@
   typedef int32_t (*SignedDivide)();
   EXPECT_EQ(-87 / 42, reinterpret_cast<SignedDivide>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rax,-0x........\n"
+      "movl rax,-0x00000057\n"
       "movl rdx,0x7b\n"
       "cdq\n"
       "movl rcx,0x2a\n"
@@ -1140,7 +1140,7 @@
   EXPECT_EQ(0xf0000000, reinterpret_cast<UnsignedDivide>(test->entry())());
   EXPECT_DISASSEMBLY(
       "movl rax,0\n"
-      "movl rdx,-0x........\n"
+      "movl rdx,-0x10000000\n"
       "movl rcx,-1\n"
       "divl (rax,rdx),rcx\n"
       "ret\n");
@@ -1160,7 +1160,7 @@
   EXPECT_EQ(kLargeConstant / 42,
             reinterpret_cast<SignedDivideLong>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x1234567887654321\n"
       "movl rdx,0x7b\n"
       "cqo\n"
       "movl rcx,0x2a\n"
@@ -1187,7 +1187,7 @@
             reinterpret_cast<UnsignedDivideLong>(test->entry())());
   EXPECT_DISASSEMBLY(
       "movl rax,0\n"
-      "movq rdx,0x................\n"
+      "movq rdx,0xf000000000000000\n"
       "movq rcx,-1\n"
       "divq (rax,rdx),rcx\n"
       "ret\n");
@@ -1232,7 +1232,7 @@
   EXPECT_DISASSEMBLY_NOT_WINDOWS(
       "push rdi\n"
       "movq rcx,[rsp]\n"
-      "movl rax,0x...\n"
+      "movl rax,0x29a\n"
       "bsrq rax,rcx\n"
       "pop rcx\n"
       "ret\n");
@@ -1252,7 +1252,7 @@
   typedef int (*MoveExtend)();
   EXPECT_EQ(0xff - 1 + 0xffff, reinterpret_cast<MoveExtend>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rdx,0x....\n"
+      "movl rdx,0xffff\n"
       "movzxbq rax,rdx\n"
       "movsxwq r8,rdx\n"
       "movzxwq rcx,rdx\n"
@@ -1274,9 +1274,9 @@
   typedef intptr_t (*MoveExtend)();
   EXPECT_EQ(0x7ffffffe, reinterpret_cast<MoveExtend>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rdx,0x........\n"
+      "movl rdx,0xffffffff\n"
       "movsxdq rdx,rdx\n"
-      "movl rax,0x........\n"
+      "movl rax,0x7fffffff\n"
       "movsxdq rax,rax\n"
       "addq rax,rdx\n"
       "ret\n");
@@ -1301,7 +1301,7 @@
   EXPECT_EQ(0xff - 1 + 0xffff,
             reinterpret_cast<MoveExtendMemory>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rdx,0x................\n"
+      "movq rdx,0x123456781234ffff\n"
       "push rdx\n"
       "movzxbq rax,[rsp]\n"
       "movsxwq r8,[rsp]\n"
@@ -1327,9 +1327,9 @@
   typedef intptr_t (*MoveExtend)();
   EXPECT_EQ(0x7ffffffe, reinterpret_cast<MoveExtend>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl r11,0x........\n"
+      "movl r11,0xffffffff\n"
       "push r11\n"
-      "push 0x........\n"
+      "push 0x7fffffff\n"
       "movsxdq rdx,[rsp+0x8]\n"
       "movsxdq rax,[rsp]\n"
       "addq rsp,0x10\n"
@@ -1378,12 +1378,12 @@
   typedef int64_t (*WordOps)();
   EXPECT_EQ(0x0100010503050507, reinterpret_cast<WordOps>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x0102030405060708\n"
       "push rax\n"
-      "addw [rsp],0x....\n"
-      "subw [rsp+0x2],0x...\n"
-      "xorw [rsp+0x4],0x...\n"
-      "andw [rsp+0x6],0x...\n"
+      "addw [rsp],0xfdff\n"
+      "subw [rsp+0x2],0x201\n"
+      "xorw [rsp+0x4],0x201\n"
+      "andw [rsp+0x6],0x301\n"
       "andw [rsp],-1\n"
       "pop rax\n"
       "ret\n");
@@ -1405,7 +1405,7 @@
   typedef int64_t (*ByteOps)();
   EXPECT_EQ(0x0100030505050707, reinterpret_cast<ByteOps>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x0102030405060708\n"
       "push rax\n"
       "addb [rsp],-1\n"
       "subb [rsp+0x2],1\n"
@@ -1904,10 +1904,10 @@
       "orl [rsi],r10\n"
       "movl rcx,0x2a\n"
       "xorl rcx,rcx\n"
-      "orl rcx,0x...\n"
+      "orl rcx,0x100\n"
       "movl rax,4\n"
       "orl rcx,rax\n"
-      "movl rax,0x....\n"
+      "movl rax,0xfff0\n"
       "andl rcx,rax\n"
       "movl rax,1\n"
       "orl rcx,rax\n"
@@ -1961,23 +1961,23 @@
       "xorq rax,[rsp]\n"
       "pop rcx\n"
       "cmpq rax,0\n"
-      "jnz 0x................\n"
+      "jnz +105\n"
       "movl rcx,0xff\n"
       "movl rax,5\n"
       "xorq rcx,rax\n"
       "cmpq rcx,0xfa\n"
-      "jnz 0x................\n"
+      "jnz +79\n"
       "push 0xff\n"
       "movl rcx,5\n"
       "xorq [rsp],rcx\n"
       "pop rcx\n"
       "cmpq rcx,0xfa\n"
-      "jnz 0x................\n"
+      "jnz +51\n"
       "xorq rcx,rcx\n"
-      "orq rcx,0x...\n"
+      "orq rcx,0x100\n"
       "movl rax,4\n"
       "orq rcx,rax\n"
-      "movl rax,0x....\n"
+      "movl rax,0xfff0\n"
       "andq rcx,rax\n"
       "movl rax,1\n"
       "push rax\n"
@@ -2263,155 +2263,155 @@
       "movl rax,4\n"
       "andl rax,2\n"
       "cmpl rax,0\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rcx,4\n"
       "andl rcx,4\n"
       "cmpl rcx,0\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,0\n"
       "orl rax,0\n"
       "cmpl rax,0\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,4\n"
       "orl rax,0\n"
       "cmpl rax,0\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "push rax\n"
       "movl rax,0xff\n"
       "movl [rsp],rax\n"
       "cmpl [rsp],0xff\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "pop rax\n"
       "movl rax,1\n"
       "shll rax,3\n"
       "cmpl rax,8\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,2\n"
       "shrl rax,1\n"
       "cmpl rax,1\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,8\n"
       "shrl rax,3\n"
       "cmpl rax,1\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shll rax,cl\n"
       "cmpl rax,8\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,8\n"
       "movl rcx,3\n"
       "shrl rax,cl\n"
       "cmpl rax,1\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,1\n"
       "shlq rax,3\n"
       "cmpl rax,8\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,2\n"
       "shrq rax,1\n"
       "cmpl rax,1\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,8\n"
       "shrq rax,3\n"
       "cmpl rax,1\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shlq rax,cl\n"
       "cmpl rax,8\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,8\n"
       "movl rcx,3\n"
       "shrq rax,cl\n"
       "cmpl rax,1\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,1\n"
       "shlq rax,31\n"
       "shrq rax,3\n"
-      "cmpq rax,0x........\n"
-      "jz 0x................\n"
+      "cmpq rax,0x10000000\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,1\n"
       "shlq rax,31\n"
       "sarl rax,3\n"
-      "cmpl rax,0x........\n"
-      "jz 0x................\n"
+      "cmpl rax,0xf0000000\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shlq rax,31\n"
       "sarl rax,cl\n"
-      "cmpl rax,0x........\n"
-      "jz 0x................\n"
+      "cmpl rax,0xf0000000\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
-      "movl rdx,-0x........\n"
+      "movl rdx,-0x01000000\n"
       "movl r8,-1\n"
       "movl rcx,2\n"
       "shll rdx,cl\n"
       "shldl rdx,r8,2\n"
-      "cmpl rdx,0x........\n"
-      "jz 0x................\n"
+      "cmpl rdx,0xf0000003\n"
+      "jz +7\n"
       "int3\n"
-      "movq rdx,0x................\n"
+      "movq rdx,0xff00000000000000\n"
       "movq r8,-1\n"
       "movl rcx,2\n"
       "shlq rdx,cl\n"
       "shldq rdx,r8,2\n"
-      "movq r11,0x................\n"
+      "movq r11,0xf000000000000003\n"
       "cmpq rdx,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movq rdx,0x................\n"
+      "movq rdx,0xff00000000000000\n"
       "movq r8,-1\n"
       "movl rcx,2\n"
       "shlq rdx,cl\n"
       "shldq rdx,r8,cl\n"
-      "movq r11,0x................\n"
+      "movq r11,0xf000000000000003\n"
       "cmpq rdx,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movq rdx,0x................\n"
+      "movq rdx,0xff00000000000000\n"
       "movq r8,-1\n"
       "movl rcx,2\n"
       "shrq rdx,cl\n"
       "shrdq rdx,r8,cl\n"
-      "movq r11,0x................\n"
+      "movq r11,0xcff0000000000000\n"
       "cmpq rdx,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,0\n"
       "ret\n");
@@ -2607,126 +2607,126 @@
       "movl rax,4\n"
       "andl rax,2\n"
       "cmpq rax,0\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rcx,4\n"
       "push rcx\n"
       "andq rcx,[rsp]\n"
       "pop rax\n"
       "cmpq rcx,0\n"
-      "jnz 0x................\n"
+      "jnz +7\n"
       "int3\n"
       "movl rax,0\n"
       "orq rax,0\n"
       "cmpq rax,0\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,4\n"
       "orq rax,0\n"
       "cmpq rax,0\n"
-      "jnz 0x................\n"
+      "jnz +7\n"
       "int3\n"
       "push rax\n"
       "movl rax,0xff\n"
       "movq [rsp],rax\n"
       "cmpq [rsp],0xff\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "pop rax\n"
       "movl rax,1\n"
       "shlq rax,3\n"
       "cmpq rax,8\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,2\n"
       "shrq rax,1\n"
       "cmpq rax,1\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,8\n"
       "shrq rax,3\n"
       "cmpq rax,1\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shlq rax,cl\n"
       "cmpq rax,8\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,8\n"
       "movl rcx,3\n"
       "shrq rax,cl\n"
       "cmpq rax,1\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "shlq rax,3\n"
       "cmpq rax,8\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rax,2\n"
       "shrq rax,1\n"
       "cmpq rax,1\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,8\n"
       "shrq rax,3\n"
       "cmpq rax,1\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shlq rax,cl\n"
       "cmpq rax,8\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,8\n"
       "movl rcx,3\n"
       "shrq rax,cl\n"
       "cmpq rax,1\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "shlq rax,31\n"
       "shrq rax,3\n"
-      "cmpq rax,0x........\n"
-      "jz 0x................\n"
+      "cmpq rax,0x10000000\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "shlq rax,63\n"
       "sarq rax,3\n"
-      "movq r11,0x................\n"
+      "movq r11,0xf000000000000000\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,1\n"
       "movl rcx,3\n"
       "shlq rax,63\n"
       "sarq rax,cl\n"
-      "movq r11,0x................\n"
+      "movq r11,0xf000000000000000\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "push pp\n"
-      "movq pp,0x................\n"
+      "movq pp,0xf000000000000001\n"
       "andq pp,-1\n"
-      "movq r11,0x................\n"
+      "movq r11,0x8000000000000001\n"
       "andq pp,r11\n"
       "orq pp,2\n"
-      "movq r11,0x................\n"
+      "movq r11,0xf800000000000000\n"
       "orq pp,r11\n"
       "xorq pp,1\n"
-      "movq r11,0x................\n"
+      "movq r11,0x0800000000000000\n"
       "xorq pp,r11\n"
-      "movq r11,0x................\n"
+      "movq r11,0xf000000000000002\n"
       "cmpq pp,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "andl pp,2\n"
       "cmpq pp,2\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "pop pp\n"
       "movl rax,0\n"
@@ -2783,23 +2783,23 @@
       "movl rax,4\n"
       "movl rcx,2\n"
       "testl rax,rcx\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rdx,4\n"
       "movl rcx,4\n"
       "testl rdx,rcx\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,0\n"
       "test al,0\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rcx,4\n"
       "testb rcx,4\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movl [rax],rax\n"
       "movl rax,0\n"
@@ -2874,33 +2874,33 @@
       "movl rax,4\n"
       "movl rcx,2\n"
       "testq rax,rcx\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rdx,4\n"
       "movl rcx,4\n"
       "testq rdx,rcx\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rax,0\n"
       "test al,0\n"
-      "jz 0x................\n"
+      "jz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rcx,4\n"
       "testb rcx,4\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rcx,0xff\n"
       "testb rcx,0xff\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rax,0xff\n"
       "test al,0xff\n"
-      "jnz 0x................\n"
+      "jnz +14\n"
       "movl rax,0\n"
       "movq [rax],rax\n"
       "movl rax,0\n"
@@ -2976,7 +2976,7 @@
   EXPECT_EQ(0x100000000,
             reinterpret_cast<CompareSwapEQ32Code>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x0000000100000000\n"
       "push rax\n"
       "movl rax,4\n"
       "movl rcx,0\n"
@@ -3002,7 +3002,7 @@
   EXPECT_EQ(0x100000004l,
             reinterpret_cast<CompareSwapNEQ32Code>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x0000000100000000\n"
       "push rax\n"
       "movl rax,2\n"
       "movl rcx,4\n"
@@ -3025,8 +3025,8 @@
   EXPECT_EQ(kAnotherLargeConstant - kLargeConstant,
             reinterpret_cast<Exchange>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
-      "movq rdx,0x................\n"
+      "movq rax,0x1234567887654321\n"
+      "movq rdx,0x0db4da5f7ef412b1\n"
       "xchgq rax,rdx\n"
       "subq rax,rdx\n"
       "ret\n");
@@ -3042,7 +3042,7 @@
   EXPECT_EQ(kLargeConstant,
             reinterpret_cast<LargeConstantCode>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x1234567887654321\n"
       "ret\n");
 }
 
@@ -3173,7 +3173,7 @@
   typedef float (*SingleFPMovesCode)();
   EXPECT_EQ(234, reinterpret_cast<SingleFPMovesCode>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x436a0000\n"
       "movd xmm0,rax\n"
       "movss rcx,xmm0\n"
       "movss rdx,xmm1\n"
@@ -3249,7 +3249,7 @@
   typedef float (*SingleFPMoves2Code)();
   EXPECT_EQ(234, reinterpret_cast<SingleFPMoves2Code>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x436a0000\n"
       "movd xmm0,rax\n"
       "movd xmm8,rax\n"
       "movss rcx,xmm8\n"
@@ -3280,7 +3280,7 @@
   EXPECT_EQ((bit_cast<uint64_t, double>(234.5f)),
             reinterpret_cast<MovqXmmToCpuCode>(test->entry())());
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x436a8000\n"
       "movd xmm0,rax\n"
       "cvtss2sd xmm0,xmm0\n"
       "movq rax,xmm0\n"
@@ -3384,7 +3384,7 @@
   EXPECT_FLOAT_EQ(-1.0, res, 0.000001f);
   EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(
       "movups xmm10,[rax]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2b0]\n"
       "xorpd xmm10,[r11]\n"
       "movaps xmm0,xmm10\n"
       "pop thr\n"
@@ -3413,7 +3413,7 @@
   EXPECT_FLOAT_EQ(1.0, res, 0.000001f);
   EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(
       "movups xmm10,[rax]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2b8]\n"
       "movups xmm0,[r11]\n"
       "andpd xmm0,xmm10\n"
       "pop thr\n"
@@ -3669,10 +3669,10 @@
   EXPECT_DISASSEMBLY(
       "push rbx\n"
       "push rcx\n"
-      "movl rbx,0x........\n"
+      "movl rbx,0x4144cccd\n"
       "movd xmm0,rbx\n"
       "movd xmm8,rbx\n"
-      "movl rcx,0x........\n"
+      "movl rcx,0x4059999a\n"
       "movd xmm1,rcx\n"
       "movd xmm9,rcx\n"
       "addss xmm0,xmm1\n"
@@ -3710,10 +3710,10 @@
   float res = reinterpret_cast<PackedFPOperationsCode>(test->entry())();
   EXPECT_FLOAT_EQ(14.7f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x4144cccd\n"
       "movd xmm10,rax\n"
       "shufps xmm10,xmm10 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x4059999a\n"
       "movd xmm9,rax\n"
       "shufps xmm9,xmm9 [0]\n"
       "addps xmm10,xmm9\n"
@@ -3829,7 +3829,7 @@
   float res = reinterpret_cast<PackedFPOperations2Code>(test->entry())();
   EXPECT_FLOAT_EQ(0.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
       "movaps xmm11,xmm0\n"
@@ -3856,10 +3856,10 @@
   uint32_t res = reinterpret_cast<PackedCompareEQCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [eq]\n"
@@ -3915,10 +3915,10 @@
   uint32_t res = reinterpret_cast<PackedCompareNEQCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0xFFFFFFFF), res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [neq]\n"
@@ -3943,10 +3943,10 @@
   uint32_t res = reinterpret_cast<PackedCompareLTCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0xFFFFFFFF), res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [lt]\n"
@@ -3971,10 +3971,10 @@
   uint32_t res = reinterpret_cast<PackedCompareLECode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0xFFFFFFFF), res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [le]\n"
@@ -3999,10 +3999,10 @@
   uint32_t res = reinterpret_cast<PackedCompareNLTCode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [nlt]\n"
@@ -4027,10 +4027,10 @@
   uint32_t res = reinterpret_cast<PackedCompareNLECode>(test->entry())();
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "cmpps xmm0,xmm1 [nle]\n"
@@ -4063,10 +4063,10 @@
       "movq r12,[rdi+0x8]\n"
       "movq thr,rsi\n"
       "movq pp,[r12+0x27]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x4144cccd\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2c8]\n"
       "xorps xmm0,[r11]\n"
       "shufps xmm0,xmm0 [aa]\n"
       "pop thr\n"
@@ -4100,10 +4100,10 @@
       "movq r12,[rdi+0x8]\n"
       "movq thr,rsi\n"
       "movq pp,[r12+0x27]\n"
-      "movl rax,-0x........\n"
+      "movl rax,-0x3e8b3333\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2d0]\n"
       "andps xmm0,[r11]\n"
       "shufps xmm0,xmm0 [aa]\n"
       "pop thr\n"
@@ -4135,10 +4135,10 @@
       "movq r12,[rdi+0x8]\n"
       "movq thr,rsi\n"
       "movq pp,[r12+0x27]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x4144cccd\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2d8]\n"
       "andps xmm0,[r11]\n"
       "shufps xmm0,xmm0 [ff]\n"
       "pop thr\n"
@@ -4161,10 +4161,10 @@
   float res = reinterpret_cast<PackedMinCode>(test->entry())();
   EXPECT_FLOAT_EQ(2.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "minps xmm0,xmm1\n"
@@ -4183,10 +4183,10 @@
   float res = reinterpret_cast<PackedMaxCode>(test->entry())();
   EXPECT_FLOAT_EQ(4.0f, res, 0.001f);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0x40000000\n"
       "movd xmm0,rax\n"
       "shufps xmm0,xmm0 [0]\n"
-      "movl rax,0x........\n"
+      "movl rax,0x40800000\n"
       "movd xmm1,rax\n"
       "shufps xmm1,xmm1 [0]\n"
       "maxps xmm0,xmm1\n"
@@ -4288,7 +4288,7 @@
   EXPECT_EQ(static_cast<uword>(0x0), res);
   EXPECT_DISASSEMBLY_NOT_WINDOWS_ENDS_WITH(
       "movups xmm9,[rax]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2c0]\n"
       "movups xmm0,[r11]\n"
       "xorps xmm0,xmm9\n"
       "push rax\n"
@@ -4635,7 +4635,7 @@
   EXPECT_FLOAT_EQ(1024.67, reinterpret_cast<DoubleFPMovesCode>(test->entry())(),
                   0.001);
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x409002ae147ae148\n"
       "push pp\n"
       "push rax\n"
       "movsd xmm0,[rsp]\n"
@@ -4717,11 +4717,11 @@
   double res = reinterpret_cast<SingleFPOperationsCode>(test->entry())();
   EXPECT_FLOAT_EQ(7.668, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x402899999999999a\n"
       "push rax\n"
       "movsd xmm0,[rsp]\n"
       "movsd xmm8,[rsp]\n"
-      "movq rax,0x................\n"
+      "movq rax,0x400b333333333333\n"
       "movq [rsp],rax\n"
       "movsd xmm12,[rsp]\n"
       "addsd xmm8,xmm12\n"
@@ -4756,9 +4756,9 @@
   double res = reinterpret_cast<Int32ToDoubleConversion>(test->entry())();
   EXPECT_FLOAT_EQ(-2.0, res, 0.001);
   EXPECT_DISASSEMBLY(
-      "movq r11,0x................\n"
+      "movq r11,0x1111111100000006\n"
       "cvtsi2sd xmm0,r11\n"
-      "movq r11,0x................\n"
+      "movq r11,0x2222222200000008\n"
       "cvtsi2sd xmm8,r11\n"
       "subsd xmm0,xmm8\n"
       "ret\n");
@@ -4778,7 +4778,7 @@
   double res = reinterpret_cast<Int64ToDoubleConversionCode>(test->entry())();
   EXPECT_FLOAT_EQ(static_cast<double>(12LL << 32), res, 0.001);
   EXPECT_DISASSEMBLY(
-      "movq rdx,0x................\n"
+      "movq rdx,0x0000000c00000000\n"
       "cvtsi2sd xmm0,rdx\n"
       "movsd xmm15,xmm0\n"
       "addsd xmm0,xmm0\n"
@@ -4818,16 +4818,16 @@
   int64_t res = reinterpret_cast<DoubleToInt64ConversionCode>(test->entry())();
   EXPECT_EQ(420000000000l, res);
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x44a1c9a62d04ed0c\n"
       "push rax\n"
       "movsd xmm9,[rsp]\n"
       "pop rax\n"
       "cvttsd2siq rax,xmm9\n"
-      "movq r11,0x................\n"
+      "movq r11,0x8000000000000000\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movq rax,0x................\n"
+      "movq rax,0x4258727cda000000\n"
       "push rax\n"
       "movsd xmm9,[rsp]\n"
       "movsd xmm6,[rsp]\n"
@@ -4899,26 +4899,26 @@
   int64_t res = reinterpret_cast<DoubleToInt32ConversionCode>(test->entry())();
   EXPECT_EQ(42, res);
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x4258727cda000000\n"
       "push rax\n"
       "movsd xmm9,[rsp]\n"
       "pop rax\n"
       "cvttsd2sil rax,xmm9\n"
-      "movl r11,0x........\n"
+      "movl r11,0x80000000\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movq rax,0x................\n"
+      "movq rax,0xc045000000000000\n"
       "push rax\n"
       "movsd xmm9,[rsp]\n"
       "pop rax\n"
       "movq r10,-1\n"
       "cvttsd2sil r10,xmm9\n"
-      "movl r11,0x........\n"
+      "movl r11,0xffffffd6\n"
       "cmpq r10,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movq rax,0x................\n"
+      "movq rax,0x4045000000000000\n"
       "push rax\n"
       "movsd xmm9,[rsp]\n"
       "movsd xmm6,[rsp]\n"
@@ -4983,24 +4983,24 @@
       "movq pp,[r12+0x27]\n"
       "movq rax,[pp+0xf]\n"
       "cmpq rax,[pp+0xf]\n"
-      "jnz 0x................\n"
+      "jnz +92\n"
       "movq rcx,[pp+0xf]\n"
       "cmpq rcx,[pp+0xf]\n"
-      "jnz 0x................\n"
+      "jnz +78\n"
       "movl rcx,0x1e\n"
       "cmpq rcx,0x1e\n"
-      "jnz 0x................\n"
+      "jnz +63\n"
       "push rax\n"
       "movq r11,[pp+0xf]\n"
       "movq [rsp],r11\n"
       "pop rcx\n"
       "cmpq rcx,[pp+0xf]\n"
-      "jnz 0x................\n"
+      "jnz +43\n"
       "push rax\n"
       "movq [rsp],0x1e\n"
       "pop rcx\n"
       "cmpq rcx,0x1e\n"
-      "jnz 0x................\n"
+      "jnz +23\n"
       "movl rax,1\n"
       "pop thr\n"
       "pop pp\n"
@@ -5027,24 +5027,24 @@
       "movq pp,[r12+0x27]\n"
       "movq rax,[pp+0xf]\n"
       "cmpl rax,[pp+0xf]\n"
-      "jnz 0x................\n"
+      "jnz +90\n"
       "movq rcx,[pp+0xf]\n"
       "cmpl rcx,[pp+0xf]\n"
-      "jnz 0x................\n"
+      "jnz +76\n"
       "movl rcx,0x1e\n"
       "cmpl rcx,0x1e\n"
-      "jnz 0x................\n"
+      "jnz +62\n"
       "push rax\n"
       "movq r11,[pp+0xf]\n"
       "movq [rsp],r11\n"
       "pop rcx\n"
       "cmpl rcx,[pp+0xf]\n"
-      "jnz 0x................\n"
+      "jnz +42\n"
       "push rax\n"
       "movq [rsp],0x1e\n"
       "pop rcx\n"
       "cmpl rcx,0x1e\n"
-      "jnz 0x................\n"
+      "jnz +23\n"
       "movl rax,1\n"
       "pop thr\n"
       "pop pp\n"
@@ -5207,7 +5207,7 @@
   unsigned int res = reinterpret_cast<TestNot>(test->entry())();
   EXPECT_EQ(0xFFFFFFFF, res);
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0xffffffff00000000\n"
       "notq rax\n"
       "ret\n");
 }
@@ -5269,7 +5269,7 @@
       "xorpd xmm0,xmm0\n"
       "xorpd xmm0,xmm15\n"
       "comisd xmm0,xmm15\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "ret\n");
 }
@@ -5334,7 +5334,7 @@
   int64_t res = reinterpret_cast<DoubleFPUStackMovesCode>(test->entry())();
   EXPECT_FLOAT_EQ(1024.67, (bit_cast<double, int64_t>(res)), 0.001);
   EXPECT_DISASSEMBLY(
-      "movq rax,0x................\n"
+      "movq rax,0x409002ae147ae148\n"
       "push rax\n"
       "fld_d [rsp]\n"
       "movq [rsp],0\n"
@@ -5464,7 +5464,7 @@
       "movq r12,[rdi+0x8]\n"
       "movq thr,rsi\n"
       "movq pp,[r12+0x27]\n"
-      "movq r11,[thr+0x...]\n"
+      "movq r11,[thr+0x2b8]\n"
       "andpd xmm0,[r11]\n"
       "pop thr\n"
       "pop pp\n"
@@ -5506,7 +5506,7 @@
   uword res = reinterpret_cast<TestSetCC>(test->entry())();
   EXPECT_EQ(0xFFFFFF00, res);
   EXPECT_DISASSEMBLY(
-      "movl rax,0x........\n"
+      "movl rax,0xffffffff\n"
       "cmpq rax,rax\n"
       "setnzl rax\n"
       "ret\n");
@@ -5528,7 +5528,7 @@
   EXPECT_EQ(0xFFFF01FF, res);
   EXPECT_DISASSEMBLY(
       "push rbx\n"
-      "movl rbx,0x........\n"
+      "movl rbx,0xffffffff\n"
       "cmpq rbx,rbx\n"
       "setzl rdi\n"
       "movq rax,rbx\n"
@@ -5552,7 +5552,7 @@
   EXPECT_EQ(0xFFFFFF00, res);
   EXPECT_DISASSEMBLY(
       "push r10\n"
-      "movl r10,0x........\n"
+      "movl r10,0xffffffff\n"
       "cmpq r10,r10\n"
       "setnzl r10\n"
       "movq rax,r10\n"
@@ -5576,7 +5576,7 @@
   EXPECT_EQ(0xFFFFFF01, res);
   EXPECT_DISASSEMBLY(
       "push rsi\n"
-      "movl rsi,0x........\n"
+      "movl rsi,0xffffffff\n"
       "cmpq rsi,rsi\n"
       "setzl rsi\n"
       "movq rax,rsi\n"
@@ -5834,7 +5834,7 @@
       "movl rax,4\n"
       "movl r11,2\n"
       "btq rax,r11\n"
-      "jc 0x................\n"
+      "jc +7\n"
       "int3\n"
       "movl rax,1\n"
       "ret\n");
@@ -5857,7 +5857,7 @@
   EXPECT_DISASSEMBLY(
       "movl r11,0x20\n"
       "bt r11,5\n"
-      "jc 0x................\n"
+      "jc +7\n"
       "int3\n"
       "movl rax,1\n"
       "ret\n");
@@ -5882,7 +5882,7 @@
   EXPECT_DISASSEMBLY_ENDS_WITH(
       "xorq rax,rax\n"
       "movl rcx,1\n"
-      "cmpq rdx,0x...\n"
+      "cmpq rdx,0x311\n"
       "cmovzq rax,rcx\n"
       "ret\n");
 }
@@ -6006,61 +6006,61 @@
   EXPECT_EQ(42, res);
   EXPECT_DISASSEMBLY(
       "movl rax,0x2a\n"
-      "imulq rax,rax,0x........\n"
-      "movq r11,0x................\n"
+      "imulq rax,rax,0x3b9aca00\n"
+      "movq r11,0x00000009c7652400\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,0x2a\n"
-      "imull rax,rax,0x........\n"
-      "movl r11,0x........\n"
+      "imull rax,rax,0x3b9aca00\n"
+      "movl r11,0xc7652400\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movl rax,0x........\n"
-      "movq r11,0x................\n"
+      "movl rax,0x3b9aca00\n"
+      "movq r11,0x000000098bca5a00\n"
       "addq rax,r11\n"
-      "movq r11,0x................\n"
+      "movq r11,0x00000009c7652400\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movl rax,0x........\n"
-      "addl rax,0x........\n"
-      "addl rax,0x........\n"
-      "addl rax,0x........\n"
-      "movl r11,0x........\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"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movl rax,0x........\n"
-      "subl rax,0x........\n"
-      "addl rax,0x........\n"
-      "subl rax,0x........\n"
-      "movl r11,0x........\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"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movl rax,0x........\n"
-      "movq r11,0x................\n"
+      "movl rax,0x3b9aca00\n"
+      "movq r11,0x0000000a02ffee00\n"
       "subq rax,r11\n"
-      "movq r11,0x................\n"
+      "movq r11,0xfffffff6389adc00\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
-      "movq rax,-0x........\n"
-      "subl rax,0x........\n"
-      "subl rax,0x........\n"
-      "subl rax,0x........\n"
-      "cmpq rax,0x........\n"
-      "jz 0x................\n"
+      "movq rax,-0x3b9aca00\n"
+      "subl rax,0x3b9aca00\n"
+      "subl rax,0x3b9aca00\n"
+      "subl rax,0x3b9aca00\n"
+      "cmpq rax,0x1194d800\n"
+      "jz +7\n"
       "int3\n"
-      "movl rax,0x........\n"
-      "subl rax,0x........\n"
-      "subl rax,0x........\n"
-      "addl rax,0x........\n"
-      "movl r11,0x........\n"
+      "movl rax,0x3b9aca00\n"
+      "subl rax,0x4d2fa200\n"
+      "subl rax,0x3b9aca00\n"
+      "addl rax,0x3b9aca00\n"
+      "movl r11,0xee6b2800\n"
       "cmpq rax,r11\n"
-      "jz 0x................\n"
+      "jz +7\n"
       "int3\n"
       "movl rax,0x2a\n"
       "ret\n");
@@ -6261,10 +6261,10 @@
       "push rcx\n"
       "xorq rcx,rcx\n"
       "push rcx\n"
-      "subq rsp,0x...\n"
-      "movq [rsp+0x...],rdx\n"
-      "movq rax,[rsp+0x...]\n"
-      "addq rsp,0x...\n"
+      "subq rsp,0x400\n"
+      "movq [rsp+0x400],rdx\n"
+      "movq rax,[rsp+0x400]\n"
+      "addq rsp,0x400\n"
       "pop rcx\n"
       "pop rcx\n"
       "ret\n");
diff --git a/runtime/vm/compiler/assembler/disassembler_arm64.cc b/runtime/vm/compiler/assembler/disassembler_arm64.cc
index 8f441ef..ced8987 100644
--- a/runtime/vm/compiler/assembler/disassembler_arm64.cc
+++ b/runtime/vm/compiler/assembler/disassembler_arm64.cc
@@ -836,8 +836,8 @@
         }
       }
       if ((s_imm != (reg_size - 1)) && ((s_imm + 1) == r_imm)) {
-        int shift = reg_size - s_imm;
-        Format(instr, "lsl'sf 'rd, 'rn, ");
+        int shift = reg_size - s_imm - 1;
+        Format(instr, "lsl'sf 'rd, 'rn, #");
         PrintInt(shift);
         break;
       } else if (s_imm == (reg_size - 1)) {
diff --git a/runtime/vm/compiler/assembler/disassembler_x86.cc b/runtime/vm/compiler/assembler/disassembler_x86.cc
index 77021e4..fb4c917 100644
--- a/runtime/vm/compiler/assembler/disassembler_x86.cc
+++ b/runtime/vm/compiler/assembler/disassembler_x86.cc
@@ -404,9 +404,14 @@
   switch (mod) {
     case 0:
       if ((rm & 7) == 5) {
+#if defined(TARGET_ARCH_IA32)
+        int32_t abs = LoadUnaligned(reinterpret_cast<int32_t*>(modrmp + 1));
+        Print("[%#x]", abs);
+#else
         int32_t disp = LoadUnaligned(reinterpret_cast<int32_t*>(modrmp + 1));
         Print("[rip");
         PrintDisp(disp, "]");
+#endif
         return 5;
       } else if ((rm & 7) == 4) {
         // Codes for SIB byte.
diff --git a/runtime/vm/unit_test.cc b/runtime/vm/unit_test.cc
index e96548eb7..a2478ad 100644
--- a/runtime/vm/unit_test.cc
+++ b/runtime/vm/unit_test.cc
@@ -667,7 +667,7 @@
   return Api::NewHandle(thread, val.ptr());
 }
 
-#if !defined(PRODUCT)
+#if !defined(PRODUCT) && defined(TARGET_ARCH_IA32)
 static bool IsHex(int c) {
   return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f');
 }
@@ -695,6 +695,8 @@
   code_.set_owner(function);
   code_.set_exception_handlers(Object::empty_exception_handlers());
 #ifndef PRODUCT
+  // Disassemble relative since code addresses are not stable from run to run.
+  SetFlagScope<bool> sfs(&FLAG_disassemble_relative, true);
   uword start = code_.PayloadStart();
   if (FLAG_disassemble) {
     OS::PrintErr("Code for test '%s' {\n", name_);
@@ -703,7 +705,9 @@
   }
   Disassembler::Disassemble(start, start + assembler_->CodeSize(), disassembly_,
                             DISASSEMBLY_SIZE);
-  // Blank out big hex constants, since they are not stable from run to run.
+#if defined(TARGET_ARCH_IA32)
+  // Blank out absolute addressing constants, since they are not stable from run
+  // to run.
   bool in_hex_constant = false;
   for (char* p = disassembly_; *p != '\0'; p++) {
     if (in_hex_constant) {
@@ -713,13 +717,14 @@
         in_hex_constant = false;
       }
     } else {
-      if (*p == '0' && *(p + 1) == 'x' && IsHex(*(p + 2)) && IsHex(*(p + 3)) &&
+      if (*p == '[' && *(p + 1) == '0' && *(p + 2) == 'x' && IsHex(*(p + 3)) &&
           IsHex(*(p + 4))) {
-        p++;
+        p += 2;
         in_hex_constant = true;
       }
     }
   }
+#endif  // TARGET_ARCH_IA32
 #endif  // !PRODUCT
 }
 
diff --git a/runtime/vm/unit_test.h b/runtime/vm/unit_test.h
index 7bc9f23..bc86b9e 100644
--- a/runtime/vm/unit_test.h
+++ b/runtime/vm/unit_test.h
@@ -587,8 +587,8 @@
   // Assemble test and set code_.
   void Assemble();
 
-  // Disassembly of the code with large constants blanked out.
-  char* BlankedDisassembly() { return disassembly_; }
+  // Disassembly of the code with relative branch/jump targets.
+  char* RelativeDisassembly() { return disassembly_; }
 
  private:
   const char* name_;
diff --git a/tools/VERSION b/tools/VERSION
index 5d1e0e8..2ce508d 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 16
 PATCH 0
-PRERELEASE 95
+PRERELEASE 96
 PRERELEASE_PATCH 0
\ No newline at end of file