[lld] [LLD][COFF] Append a terminator entry to redirection metadata (PR #115202)

via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 6 12:00:56 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-platform-windows

@llvm/pr-subscribers-lld

Author: Jacek Caban (cjacek)

<details>
<summary>Changes</summary>

For MSVC compatibility.

---

Patch is 22.41 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/115202.diff


10 Files Affected:

- (modified) lld/COFF/Chunks.cpp (+2-1) 
- (modified) lld/test/COFF/arm64ec-altnames.s (+5-5) 
- (modified) lld/test/COFF/arm64ec-codemap.test (+37-37) 
- (modified) lld/test/COFF/arm64ec-delayimport.test (+3-3) 
- (modified) lld/test/COFF/arm64ec-export-thunks.test (+8-3) 
- (modified) lld/test/COFF/arm64ec-import.test (+8-8) 
- (modified) lld/test/COFF/arm64ec-lib.test (+1-1) 
- (modified) lld/test/COFF/arm64ec-loadcfg.s (+4-1) 
- (modified) lld/test/COFF/arm64ec-range-thunks.s (+59-59) 
- (modified) lld/test/COFF/locally-imported-arm64ec.test (+1-1) 


``````````diff
diff --git a/lld/COFF/Chunks.cpp b/lld/COFF/Chunks.cpp
index 33fb20ffeaf321..a82e37ff052303 100644
--- a/lld/COFF/Chunks.cpp
+++ b/lld/COFF/Chunks.cpp
@@ -1083,7 +1083,8 @@ void CHPECodeRangesChunk::writeTo(uint8_t *buf) const {
 }
 
 size_t CHPERedirectionChunk::getSize() const {
-  return exportThunks.size() * sizeof(chpe_redirection_entry);
+  // Add an extra +1 for a terminator entry.
+  return (exportThunks.size() + 1) * sizeof(chpe_redirection_entry);
 }
 
 void CHPERedirectionChunk::writeTo(uint8_t *buf) const {
diff --git a/lld/test/COFF/arm64ec-altnames.s b/lld/test/COFF/arm64ec-altnames.s
index fb28ae15895f98..b2abb24efe4c32 100644
--- a/lld/test/COFF/arm64ec-altnames.s
+++ b/lld/test/COFF/arm64ec-altnames.s
@@ -17,7 +17,7 @@ DISASM-NEXT: 180001004: d65f03c0     ret
 DISASM-NOT: .thnk
 
 RUN: llvm-readobj --hex-dump=.test out1.dll | FileCheck --check-prefix=TESTSEC %s
-TESTSEC: 0x180004000 00100000 00100000
+TESTSEC: 0x180005000 00100000 00100000
 
 # Ensure -alternatename can change a demangled function symbol aliasing an anti-dependency symbol.
 
@@ -32,12 +32,12 @@ DISASM2-NEXT: 180001004: d65f03c0     ret
 DISASM2-EMPTY:
 DISASM2-NEXT: Disassembly of section .thnk:
 DISASM2-EMPTY:
-DISASM2-NEXT: 0000000180005000 <.thnk>:
-DISASM2-NEXT: 180005000: 52800040     mov     w0, #0x2                // =2
-DISASM2-NEXT: 180005004: d65f03c0     ret
+DISASM2-NEXT: 0000000180006000 <.thnk>:
+DISASM2-NEXT: 180006000: 52800040     mov     w0, #0x2                // =2
+DISASM2-NEXT: 180006004: d65f03c0     ret
 
 RUN: llvm-readobj --hex-dump=.test out2.dll | FileCheck --check-prefix=TESTSEC2 %s
-TESTSEC2: 0x180004000 00100000 00500000
+TESTSEC2: 0x180005000 00100000 00600000
 
 # Ensure -alternatename cannot modify a demangled function symbol aliasing a defined symbol.
 
diff --git a/lld/test/COFF/arm64ec-codemap.test b/lld/test/COFF/arm64ec-codemap.test
index 7f4d5d84b458e1..6e97c14e87d862 100644
--- a/lld/test/COFF/arm64ec-codemap.test
+++ b/lld/test/COFF/arm64ec-codemap.test
@@ -20,8 +20,8 @@ RUN: llvm-readobj --coff-load-config test.dll | FileCheck -check-prefix=CODEMAP
 CODEMAP:       CodeMap [
 CODEMAP-NEXT:    0x1000 - 0x1008  ARM64EC
 CODEMAP-NEXT:    0x2000 - 0x2006  X64
-CODEMAP-NEXT:    0x5000 - 0x5008  ARM64EC
-CODEMAP-NEXT:    0x6000 - 0x6006  X64
+CODEMAP-NEXT:    0x6000 - 0x6008  ARM64EC
+CODEMAP-NEXT:    0x7000 - 0x7006  X64
 CODEMAP-NEXT:  ]
 
 RUN: llvm-objdump -d test.dll | FileCheck -check-prefix=DISASM %s
@@ -36,12 +36,12 @@ DISASM-NEXT: 180002005: c3                           retq
 DISASM-EMPTY:
 DISASM-NEXT: Disassembly of section test:
 DISASM-EMPTY:
-DISASM-NEXT: 0000000180005000 <test>:
-DISASM-NEXT: 180005000: 528000a0     mov     w0, #0x5
-DISASM-NEXT: 180005004: d65f03c0     ret
+DISASM-NEXT: 0000000180006000 <test>:
+DISASM-NEXT: 180006000: 528000a0     mov     w0, #0x5
+DISASM-NEXT: 180006004: d65f03c0     ret
 DISASM-NEXT:                 ...
-DISASM-NEXT: 180006000: b8 06 00 00 00               movl    $0x6, %eax
-DISASM-NEXT: 180006005: c3                           retq
+DISASM-NEXT: 180007000: b8 06 00 00 00               movl    $0x6, %eax
+DISASM-NEXT: 180007005: c3                           retq
 
 Order of arguments doesn't matter in this case, chunks are sorted by target type anyway.
 
@@ -66,8 +66,8 @@ CODEMAPX:       CodeMap [
 CODEMAPX-NEXT:    0x1000 - 0x1008  ARM64
 CODEMAPX-NEXT:    0x2000 - 0x2008  ARM64EC
 CODEMAPX-NEXT:    0x3000 - 0x3006  X64
-CODEMAPX-NEXT:    0x6000 - 0x6008  ARM64EC
-CODEMAPX-NEXT:    0x7000 - 0x7006  X64
+CODEMAPX-NEXT:    0x7000 - 0x7008  ARM64EC
+CODEMAPX-NEXT:    0x8000 - 0x8006  X64
 CODEMAPX-NEXT:  ]
 
 RUN: llvm-objdump -d testx.dll | FileCheck -check-prefix=DISASMX %s
@@ -85,12 +85,12 @@ DISASMX-NEXT: 180003005: c3                           retq
 DISASMX-EMPTY:
 DISASMX-NEXT: Disassembly of section test:
 DISASMX-EMPTY:
-DISASMX-NEXT: 0000000180006000 <test>:
-DISASMX-NEXT: 180006000: 528000a0     mov     w0, #0x5
-DISASMX-NEXT: 180006004: d65f03c0     ret
+DISASMX-NEXT: 0000000180007000 <test>:
+DISASMX-NEXT: 180007000: 528000a0     mov     w0, #0x5
+DISASMX-NEXT: 180007004: d65f03c0     ret
 DISASMX-NEXT:                 ...
-DISASMX-NEXT: 180007000: b8 06 00 00 00               movl    $0x6, %eax
-DISASMX-NEXT: 180007005: c3                           retq
+DISASMX-NEXT: 180008000: b8 06 00 00 00               movl    $0x6, %eax
+DISASMX-NEXT: 180008005: c3                           retq
 
 Test merged sections.
 
@@ -127,8 +127,8 @@ RUN: llvm-readobj --coff-load-config testdm.dll | FileCheck -check-prefix=CODEMA
 CODEMAPDM:      CodeMap [
 CODEMAPDM-NEXT:     0x2000 - 0x2008  ARM64EC
 CODEMAPDM-NEXT:     0x3000 - 0x3006  X64
-CODEMAPDM-NEXT:     0x6000 - 0x6008  ARM64EC
-CODEMAPDM-NEXT:     0x7000 - 0x7006  X64
+CODEMAPDM-NEXT:     0x7000 - 0x7008  ARM64EC
+CODEMAPDM-NEXT:     0x8000 - 0x8006  X64
 CODEMAPDM-NEXT: ]
 
 RUN: llvm-objdump -d testdm.dll | FileCheck -check-prefix=DISASMDM %s
@@ -147,12 +147,12 @@ DISASMDM-NEXT: 180003005: c3                           retq
 DISASMDM-EMPTY:
 DISASMDM-NEXT: Disassembly of section test:
 DISASMDM-EMPTY:
-DISASMDM-NEXT: 0000000180005000 <test>:
-DISASMDM:      180006000: 528000a0     mov     w0, #0x5
-DISASMDM-NEXT: 180006004: d65f03c0     ret
+DISASMDM-NEXT: 0000000180006000 <test>:
+DISASMDM:      180007000: 528000a0     mov     w0, #0x5
+DISASMDM-NEXT: 180007004: d65f03c0     ret
 DISASMDM-NEXT:                 ...
-DISASMDM-NEXT: 180007000: b8 06 00 00 00               movl    $0x6, %eax
-DISASMDM-NEXT: 180007005: c3                           retq
+DISASMDM-NEXT: 180008000: b8 06 00 00 00               movl    $0x6, %eax
+DISASMDM-NEXT: 180008005: c3                           retq
 
 Merging a code section into data section produces a valid code map.
 
@@ -161,20 +161,20 @@ RUN:          loadconfig-arm64ec.obj -dll -noentry -merge:test=.testdata -merge:
 
 RUN: llvm-readobj --coff-load-config testcm.dll | FileCheck -check-prefix=CODEMAPCM %s
 CODEMAPCM:      CodeMap [
-CODEMAPCM-NEXT:     0x3008 - 0x3016  X64
+CODEMAPCM-NEXT:     0x4008 - 0x4016  X64
 CODEMAPCM-NEXT: ]
 
 RUN: llvm-objdump -d testcm.dll | FileCheck -check-prefix=DISASMCM %s
 DISASMCM:      Disassembly of section .testdat:
 DISASMCM-EMPTY:
-DISASMCM-NEXT: 0000000180003000 <.testdat>:
-DISASMCM-NEXT: 180003000: 00000001     udf     #0x1
-DISASMCM-NEXT: 180003004: 00000000     udf     #0x0
-DISASMCM-NEXT: 180003008: b8 03 00 00 00               movl    $0x3, %eax
-DISASMCM-NEXT: 18000300d: c3                           retq
-DISASMCM-NEXT: 18000300e: 00 00                        addb    %al, (%rax)
-DISASMCM-NEXT: 180003010: b8 06 00 00 00               movl    $0x6, %eax
-DISASMCM-NEXT: 180003015: c3
+DISASMCM-NEXT: 0000000180004000 <.testdat>:
+DISASMCM-NEXT: 180004000: 00000001     udf     #0x1
+DISASMCM-NEXT: 180004004: 00000000     udf     #0x0
+DISASMCM-NEXT: 180004008: b8 03 00 00 00               movl    $0x3, %eax
+DISASMCM-NEXT: 18000400d: c3                           retq
+DISASMCM-NEXT: 18000400e: 00 00                        addb    %al, (%rax)
+DISASMCM-NEXT: 180004010: b8 06 00 00 00               movl    $0x6, %eax
+DISASMCM-NEXT: 180004015: c3
 
 Test code map range entry spanning over multiple sections.
 
@@ -184,7 +184,7 @@ RUN:          loadconfig-arm64ec.obj -dll -noentry
 RUN: llvm-readobj --coff-load-config testms.dll | FileCheck -check-prefix=CODEMAPMS %s
 CODEMAPMS:      CodeMap [
 CODEMAPMS-NEXT:     0x1000 - 0x1008  ARM64EC
-CODEMAPMS-NEXT:     0x4000 - 0x5008  ARM64EC
+CODEMAPMS-NEXT:     0x5000 - 0x6008  ARM64EC
 CODEMAPMS-NEXT: ]
 
 RUN: llvm-objdump -d testms.dll | FileCheck -check-prefix=DISASMMS %s
@@ -196,15 +196,15 @@ DISASMMS-NEXT: 180001004: d65f03c0     ret
 DISASMMS-EMPTY:
 DISASMMS-NEXT: Disassembly of section test:
 DISASMMS-EMPTY:
-DISASMMS-NEXT: 0000000180004000 <test>:
-DISASMMS-NEXT: 180004000: 528000a0     mov     w0, #0x5                // =5
-DISASMMS-NEXT: 180004004: d65f03c0     ret
+DISASMMS-NEXT: 0000000180005000 <test>:
+DISASMMS-NEXT: 180005000: 528000a0     mov     w0, #0x5                // =5
+DISASMMS-NEXT: 180005004: d65f03c0     ret
 DISASMMS-EMPTY:
 DISASMMS-NEXT: Disassembly of section test2:
 DISASMMS-EMPTY:
-DISASMMS-NEXT: 0000000180005000 <test2>:
-DISASMMS-NEXT: 180005000: 528000a0     mov     w0, #0x5                // =5
-DISASMMS-NEXT: 180005004: d65f03c0     ret
+DISASMMS-NEXT: 0000000180006000 <test2>:
+DISASMMS-NEXT: 180006000: 528000a0     mov     w0, #0x5                // =5
+DISASMMS-NEXT: 180006004: d65f03c0     ret
 
 
 #--- arm64-func-sym.s
diff --git a/lld/test/COFF/arm64ec-delayimport.test b/lld/test/COFF/arm64ec-delayimport.test
index 6797d84e088686..0c8009362f80e7 100644
--- a/lld/test/COFF/arm64ec-delayimport.test
+++ b/lld/test/COFF/arm64ec-delayimport.test
@@ -12,9 +12,9 @@ RUN: lld-link -machine:arm64ec -dll -noentry -out:out.dll loadconfig-arm64ec.obj
 RUN:          helper-mangled.obj test-arm64ec.lib test2-arm64ec.lib -delayload:test.dll -map
 
 RUN: llvm-readobj --hex-dump=.test out.dll | FileCheck --check-prefix=TESTSEC %s
-TESTSEC:      0x180008000 00600000 88700000 00200000 10100000
-TESTSEC-NEXT: 0x180008010 08600000 90700000 10200000 30100000
-TESTSEC-NEXT: 0x180008020 1c100000 3c100000 00300000
+TESTSEC:      0x180009000 00600000 88700000 00200000 10100000
+TESTSEC-NEXT: 0x180009010 08600000 90700000 10200000 30100000
+TESTSEC-NEXT: 0x180009020 1c100000 3c100000 00300000
 
 RUN: llvm-objdump -d out.dll | FileCheck --check-prefix=DISASM %s
 DISASM:      0000000180001000 <.text>:
diff --git a/lld/test/COFF/arm64ec-export-thunks.test b/lld/test/COFF/arm64ec-export-thunks.test
index 809fac1f24a7dc..f84d21d27e9a6c 100644
--- a/lld/test/COFF/arm64ec-export-thunks.test
+++ b/lld/test/COFF/arm64ec-export-thunks.test
@@ -70,7 +70,7 @@ EXP-CHPE-NEXT:  ]
 RUN: llvm-readobj --sections exports.dll | FileCheck --check-prefix=A64XRM %s
 
 A64XRM:      Name: .a64xrm (2E 61 36 34 78 72 6D 00)
-A64XRM-NEXT: VirtualSize: 0x10
+A64XRM-NEXT: VirtualSize: 0x18
 A64XRM-NEXT: VirtualAddress: 0x6000
 A64XRM-NEXT: RawDataSize: 512
 A64XRM-NEXT: PointerToRawData:
@@ -83,6 +83,11 @@ A64XRM-NEXT:   IMAGE_SCN_CNT_INITIALIZED_DATA (0x40)
 A64XRM-NEXT:   IMAGE_SCN_MEM_READ (0x40000000)
 A64XRM-NEXT: ]
 
+RUN: llvm-readobj --hex-dump=.a64xrm exports.dll | FileCheck --check-prefix=A64XRM-DUMP %s
+
+A64XRM-DUMP:      0x180006000 00300000 00100000 10300000 00100000
+A64XRM-DUMP-NEXT: 0x180006010 00000000 00000000
+
 RUN: llvm-objdump -s --section=.test exports.dll | FileCheck --check-prefix=EXP-DATA %s
 EXP-DATA: 180007000 00300000 10300000
 
@@ -138,13 +143,13 @@ RUN: lld-link -out:data-func.dll -machine:arm64ec arm64ec-data-sym.obj loadconfi
 
 RUN: llvm-readobj --hex-dump=.test data-func.dll | FileCheck --check-prefix=DATAFUNC-TEST %s
 DATAFUNC-TEST:      Hex dump of section '.test':
-DATAFUNC-TEST-NEXT: 0x180003000 00000000                            ....
+DATAFUNC-TEST-NEXT: 0x180004000 00000000                            ....
 
 RUN: llvm-readobj --coff-exports --hex-dump=.test data-func.dll | FileCheck --check-prefix=DATAFUNC-EXP %s
 DATAFUNC-EXP:      Export {
 DATAFUNC-EXP-NEXT:   Ordinal: 1
 DATAFUNC-EXP-NEXT:   Name: data_sym
-DATAFUNC-EXP-NEXT:   RVA: 0x3000
+DATAFUNC-EXP-NEXT:   RVA: 0x4000
 DATAFUNC-EXP-NEXT: }
 
 
diff --git a/lld/test/COFF/arm64ec-import.test b/lld/test/COFF/arm64ec-import.test
index 9cf09143229410..033c27884be02c 100644
--- a/lld/test/COFF/arm64ec-import.test
+++ b/lld/test/COFF/arm64ec-import.test
@@ -76,16 +76,16 @@ DISASM-NEXT: 180002000: ff 25 02 10 00 00            jmpq    *0x1002(%rip)
 
 RUN: llvm-readobj --hex-dump=.test out.dll | FileCheck --check-prefix=TESTSEC %s
 RUN: llvm-readobj --hex-dump=.test out2.dll | FileCheck --check-prefix=TESTSEC %s
-TESTSEC:      0x180007000 08500000 00300000 10500000 20500000
-TESTSEC-NEXT: 0x180007010 08300000 00500000 10300000 20300000
-TESTSEC-NEXT: 0x180007020 14100000 28100000 00200000 08100000
-TESTSEC-NEXT: 0x180007030 3c100000 88420000
+TESTSEC:      0x180008000 08500000 00300000 10500000 20500000
+TESTSEC-NEXT: 0x180008010 08300000 00500000 10300000 20300000
+TESTSEC-NEXT: 0x180008020 14100000 28100000 00200000 08100000
+TESTSEC-NEXT: 0x180008030 3c100000 88420000
 
 RUN: llvm-readobj --hex-dump=.test out3.dll | FileCheck -check-prefix=TESTSEC-X64 %s
-TESTSEC-X64:      0x180007000 08300000 00300000 10300000 20300000
-TESTSEC-X64-NEXT: 0x180007010 08300000 00500000 10300000 20300000
-TESTSEC-X64-NEXT: 0x180007020 14100000 28100000 00200000 08100000
-TESTSEC-X64-NEXT: 0x180007030 3c100000 88420000
+TESTSEC-X64:      0x180008000 08300000 00300000 10300000 20300000
+TESTSEC-X64-NEXT: 0x180008010 08300000 00500000 10300000 20300000
+TESTSEC-X64-NEXT: 0x180008020 14100000 28100000 00200000 08100000
+TESTSEC-X64-NEXT: 0x180008030 3c100000 88420000
 
 RUN: FileCheck --check-prefix=MAP %s < out.map
 RUN: FileCheck --check-prefix=MAP %s < out2.map
diff --git a/lld/test/COFF/arm64ec-lib.test b/lld/test/COFF/arm64ec-lib.test
index 075854f62d5d42..9dff23022f9eef 100644
--- a/lld/test/COFF/arm64ec-lib.test
+++ b/lld/test/COFF/arm64ec-lib.test
@@ -41,7 +41,7 @@ DISASM-NEXT: 180001000: d65f03c0     ret
 DISASM-EMPTY:
 
 RUN: llvm-readobj --hex-dump=.test ref-alias-1.dll | FileCheck -check-prefix=TESTSEC %s
-TESTSEC: 0x180004000 00100000
+TESTSEC: 0x180005000 00100000
 
 The same test, but with a different input order.
 RUN: lld-link -machine:arm64ec -dll -noentry -out:ref-alias-2.dll func.lib ref-alias.obj loadconfig-arm64ec.obj
diff --git a/lld/test/COFF/arm64ec-loadcfg.s b/lld/test/COFF/arm64ec-loadcfg.s
index d7df96334313d5..65a0e52bd86524 100644
--- a/lld/test/COFF/arm64ec-loadcfg.s
+++ b/lld/test/COFF/arm64ec-loadcfg.s
@@ -30,7 +30,10 @@
 # LOADCFG-NEXT: ]
 
 # RUN: llvm-readobj --hex-dump=.test %t.dll | FileCheck --check-prefix=TEST %s
-# TEST: 0x180003000 00000000 00000000 00000000
+# TEST: 0x180004000 00000000 00000000 00000000
+
+# RUN: llvm-readobj --hex-dump=.a64xrm %t.dll | FileCheck --check-prefix=A64XRM %s
+# A64XRM: 0x180003000 00000000 00000000                   ........
 
 .section .test,"dr"
         .rva __arm64x_native_entrypoint
diff --git a/lld/test/COFF/arm64ec-range-thunks.s b/lld/test/COFF/arm64ec-range-thunks.s
index 71bf0e34bd70e3..f170349d7965d1 100644
--- a/lld/test/COFF/arm64ec-range-thunks.s
+++ b/lld/test/COFF/arm64ec-range-thunks.s
@@ -19,41 +19,41 @@
 
 # DISASM:      Disassembly of section .code1:
 # DISASM-EMPTY:
-# DISASM-NEXT: 0000000180003000 <.code1>:
-# DISASM-NEXT: 180003000: 36000040     tbz     w0, #0x0, 0x180003008 <.code1+0x8>
-# DISASM-NEXT: 180003004: d65f03c0     ret
-# DISASM-NEXT: 180003008: b0000050     adrp    x16, 0x18000c000
-# DISASM-NEXT: 18000300c: 91000210     add     x16, x16, #0x0
-# DISASM-NEXT: 180003010: d61f0200     br      x16
+# DISASM-NEXT: 0000000180004000 <.code1>:
+# DISASM-NEXT: 180004000: 36000040     tbz     w0, #0x0, 0x180004008 <.code1+0x8>
+# DISASM-NEXT: 180004004: d65f03c0     ret
+# DISASM-NEXT: 180004008: b0000050     adrp    x16, 0x18000d000
+# DISASM-NEXT: 18000400c: 91000210     add     x16, x16, #0x0
+# DISASM-NEXT: 180004010: d61f0200     br      x16
 # DISASM-EMPTY:
 # DISASM-NEXT: Disassembly of section .code2:
 # DISASM-EMPTY:
-# DISASM-NEXT: 0000000180004000 <.code2>:
+# DISASM-NEXT: 0000000180005000 <.code2>:
 # DISASM-NEXT:                 ...
 # DISASM-EMPTY:
 # DISASM-NEXT: Disassembly of section .code3:
 # DISASM-EMPTY:
-# DISASM-NEXT: 0000000180005000 <.code3>:
+# DISASM-NEXT: 0000000180006000 <.code3>:
 # DISASM-NEXT:                 ...
-# DISASM-NEXT: 18000c000: 36000060     tbz     w0, #0x0, 0x18000c00c <.code3+0x700c>
-# DISASM-NEXT: 18000c004: d65f03c0     ret
-# DISASM-NEXT: 18000c008: 00000000     udf     #0x0
-# DISASM-NEXT: 18000c00c: 90000050     adrp    x16, 0x180014000 <.code3+0xf000>
-# DISASM-NEXT: 18000c010: 91006210     add     x16, x16, #0x18
-# DISASM-NEXT: 18000c014: d61f0200     br      x16
+# DISASM-NEXT: 18000d000: 36000060     tbz     w0, #0x0, 0x18000d00c <.code3+0x700c>
+# DISASM-NEXT: 18000d004: d65f03c0     ret
+# DISASM-NEXT: 18000d008: 00000000     udf     #0x0
+# DISASM-NEXT: 18000d00c: 90000050     adrp    x16, 0x180015000 <.code3+0xf000>
+# DISASM-NEXT: 18000d010: 91006210     add     x16, x16, #0x18
+# DISASM-NEXT: 18000d014: d61f0200     br      x16
 # DISASM-NEXT:                 ...
-# DISASM-NEXT: 180014018: 36000040     tbz     w0, #0x0, 0x180014020 <.code3+0xf020>
-# DISASM-NEXT: 18001401c: d65f03c0     ret
-# DISASM-NEXT: 180014020: f0ffff70     adrp    x16, 0x180003000 <.code1>
-# DISASM-NEXT: 180014024: 91000210     add     x16, x16, #0x0
-# DISASM-NEXT: 180014028: d61f0200     br      x16
+# DISASM-NEXT: 180015018: 36000040     tbz     w0, #0x0, 0x180015020 <.code3+0xf020>
+# DISASM-NEXT: 18001501c: d65f03c0     ret
+# DISASM-NEXT: 180015020: f0ffff70     adrp    x16, 0x180004000 <.code1>
+# DISASM-NEXT: 180015024: 91000210     add     x16, x16, #0x0
+# DISASM-NEXT: 180015028: d61f0200     br      x16
 
 # RUN: llvm-readobj --coff-load-config test.dll | FileCheck --check-prefix=LOADCFG %s
 
 # LOADCFG:       CodeMap [
-# LOADCFG-NEXT:    0x3000 - 0x3014  ARM64EC
-# LOADCFG-NEXT:    0x4000 - 0x4300  X64
-# LOADCFG-NEXT:    0x5000 - 0x1402C  ARM64EC
+# LOADCFG-NEXT:    0x4000 - 0x4014  ARM64EC
+# LOADCFG-NEXT:    0x5000 - 0x5300  X64
+# LOADCFG-NEXT:    0x6000 - 0x1502C  ARM64EC
 # LOADCFG-NEXT:  ]
 
 
@@ -66,9 +66,9 @@
 # RUN: llvm-readobj --coff-load-config testx.dll | FileCheck --check-prefix=LOADCFGX %s
 
 # LOADCFGX:       CodeMap [
-# LOADCFGX-NEXT:    0x3000 - 0x3014  ARM64EC
-# LOADCFGX-NEXT:    0x4000 - 0x4300  ARM64
-# LOADCFGX-NEXT:    0x5000 - 0x1402C  ARM64EC
+# LOADCFGX-NEXT:    0x4000 - 0x4014  ARM64EC
+# LOADCFGX-NEXT:    0x5000 - 0x5300  ARM64
+# LOADCFGX-NEXT:    0x6000 - 0x1502C  ARM64EC
 # LOADCFGX-NEXT:  ]
 
 
@@ -82,55 +82,55 @@
 
 # DISASMX:      Disassembly of section .code1:
 # DISASMX-EMPTY:
-# DISASMX-NEXT: 0000000180003000 <.code1>:
-# DISASMX-NEXT: 180003000: 36000040     tbz     w0, #0x0, 0x180003008 <.code1+0x8>
-# DISASMX-NEXT: 180003004: d65f03c0     ret
-# DISASMX-NEXT: 180003008: b0000050     adrp    x16, 0x18000c000
-# DISASMX-NEXT: 18000300c: 91000210     add     x16, x16, #0x0
-# DISASMX-NEXT: 180003010: d61f0200     br      x16
-# DISASMX-EMPTY:
-# DISASMX-NEXT: Disassembly of section .code2:
-# DISASMX-EMPTY:
-# DISASMX-NEXT: 0000000180004000 <.code2>:
-# DISASMX-NEXT: 180004000: 36000040     tbz     w0, #0x0, 0x180004008 <.code2+0x8>
+# DISASMX-NEXT: 0000000180004000 <.code1>:
+# DISASMX-NEXT: 180004000: 36000040     tbz     w0, #0x0, 0x180004008 <.code1+0x8>
 # DISASMX-NEXT: 180004004: d65f03c0     ret
-# DISASMX-NEXT: 180004008: b0000090     adrp    x16, 0x180015000
+# DISASMX-NEXT: 180004008: b0000050     adrp    x16, 0x18000d000
 # DISASMX-NEXT: 18000400c: 91000210     add     x16, x16, #0x0
 # DISASMX-NEXT: 180004010: d61f0200     br      x16
 # DISASMX-EMPTY:
+# DISASMX-NEXT: Disassembly of section .code2:
+# DISASMX-EMPTY:
+# DISASMX-NEXT: 0000000180005000 <.code2>:
+# DISASMX-NEXT: 180005000: 36000040     tbz     w0, #0x0, 0x180005008 <.code2+0x8>
+# DISASMX-NEXT: 180005004: d65f03c0     ret
+# DISASMX-NEXT: 180005008: b0000090     adrp    x16, 0x180016000
+# DISASMX-NEXT: 18000500c: 91000210     add     x16, x16, #0x0
+# DISASMX-NEXT: 180005010: d61f0200     br      x16
+# DISASMX-EMPTY:
 # DISASMX-NEXT: Disassembly of section .code3:
 # DISASMX-EMPTY:
-# DISASMX-NEXT: 0000000180005000 <.code3>:
+# DISASMX-NEXT: 0000000180006000 <.code3>:
 # DISASMX-NEXT:                 ...
-# DISASMX-NEXT: 18000c000: 36000060     tbz     w0, #0x0, 0x18000c00c <.code3+0x700c>
-# DISASMX-NEXT: 18000c004: d65f03c0     ret
-# DISASMX-NEXT: 18000c008: 00000000     udf     #0x0
-# DISASMX-NEXT: 18000c00c: 90000050     adrp    x16, 0x180014000 <.code3+0xf000>
-# DISASMX-NEXT: 18000c010: 91006210     add     x16, x16, #0x18
-# DISASMX-NEXT: 18000c014: d61f0200     br      x16
+# DISASMX-NEXT: 18000d000: 36000060     tbz     w0, #0x0, 0x18000d00c <.code3+0x700c>
+# DISASMX-NEXT: 18000d004: d65f03c0     ret
+# DISASMX-NEXT: 18000d008: 00000000     udf     #0x0
+# DISASMX-NEXT: 18000d00c: 90000050     adrp    x16, 0x180015000 <.code3+0xf000>
+# DISASMX-NEXT: 18000d010: 91006210     add     x16, x16, #0x18
+# DISASMX-NEXT: 18000d014: d61f0200     br      x16
 # DISASMX-NEXT:                 ...
-# DISASMX-NEXT: 180014018: 36000040     tbz     w0, #0x0, 0x180014020 <.code3+0xf020>
-# DISASMX-NEXT: 18001401c: d65f...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/115202


More information about the llvm-commits mailing list