Fix instruction hex display for arm/arm64 when W^X is on (#66328)
authorJakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Tue, 8 Mar 2022 18:41:32 +0000 (19:41 +0100)
committerGitHub <noreply@github.com>
Tue, 8 Mar 2022 18:41:32 +0000 (19:41 +0100)
Fix #65638

src/coreclr/jit/emitarm.cpp
src/coreclr/jit/emitarm64.cpp

index 7009826..4053cb5 100644 (file)
@@ -7121,8 +7121,10 @@ void emitter::emitDispInsHelp(
     emitDispInsOffs(offset, doffs);
 
     /* Display the instruction hex code */
+    assert(((code >= emitCodeBlock) && (code < emitCodeBlock + emitTotalHotCodeSize)) ||
+           ((code >= emitColdCodeBlock) && (code < emitColdCodeBlock + emitTotalColdCodeSize)));
 
-    emitDispInsHex(id, code, sz);
+    emitDispInsHex(id, code + writeableOffset, sz);
 
     printf("      ");
 
index 7aa1c89..baa66a7 100644 (file)
@@ -12276,8 +12276,10 @@ void emitter::emitDispIns(
     emitDispInsOffs(offset, doffs);
 
     /* Display the instruction hex code */
+    assert(((pCode >= emitCodeBlock) && (pCode < emitCodeBlock + emitTotalHotCodeSize)) ||
+           ((pCode >= emitColdCodeBlock) && (pCode < emitColdCodeBlock + emitTotalColdCodeSize)));
 
-    emitDispInsHex(id, pCode, sz);
+    emitDispInsHex(id, pCode + writeableOffset, sz);
 
     printf("      ");