@@ -7,6 +7,7 @@ RUN: llvm-mc -filetype=obj -triple=arm64ec-windows arm64ec-func-sym2.s -o arm64e
77RUN: llvm-mc -filetype=obj -triple=arm64ec-windows data-sec.s -o data-sec.obj
88RUN: llvm-mc -filetype=obj -triple=arm64ec-windows data-sec2.s -o data-sec2.obj
99RUN: llvm-mc -filetype=obj -triple=arm64ec-windows empty-sec.s -o arm64ec-empty-sec.obj
10+ RUN: llvm-mc -filetype=obj -triple=arm64ec-windows entry-thunk.s -o entry-thunk.obj
1011RUN: llvm-mc -filetype=obj -triple=x86_64-windows x86_64-func-sym.s -o x86_64-func-sym.obj
1112RUN: llvm-mc -filetype=obj -triple=x86_64-windows empty-sec.s -o x86_64-empty-sec.obj
1213RUN: llvm-mc -filetype=obj -triple=aarch64-windows %S/Inputs/loadconfig-arm64.s -o loadconfig-arm64.obj
@@ -162,15 +163,17 @@ RUN: loadconfig-arm64ec.obj -dll -noentry -merge:test=.testdata -merge:
162163
163164RUN: llvm-readobj --coff-load-config testcm.dll | FileCheck -check-prefix=CODEMAPCM %s
164165CODEMAPCM: CodeMap [
165- CODEMAPCM-NEXT: 0x4008 - 0x4016 X64
166+ CODEMAPCM-NEXT: 0x4000 - 0x4016 X64
166167CODEMAPCM-NEXT: ]
167168
168169RUN: llvm-objdump -d testcm.dll | FileCheck -check-prefix=DISASMCM %s
169170DISASMCM: Disassembly of section .testdat:
170171DISASMCM-EMPTY:
171172DISASMCM-NEXT: 0000000180004000 <.testdat>:
172- DISASMCM-NEXT: 180004000: 00000001 udf #0x1
173- DISASMCM-NEXT: 180004004: 00000000 udf #0x0
173+ DISASMCM-NEXT: 180004000: 01 00 addl %eax, (%rax)
174+ DISASMCM-NEXT: 180004002: 00 00 addb %al, (%rax)
175+ DISASMCM-NEXT: 180004004: 00 00 addb %al, (%rax)
176+ DISASMCM-NEXT: 180004006: 00 00 addb %al, (%rax)
174177DISASMCM-NEXT: 180004008: b8 03 00 00 00 movl $0x3, %eax
175178DISASMCM-NEXT: 18000400d: c3 retq
176179DISASMCM-NEXT: 18000400e: 00 00 addb %al, (%rax)
@@ -207,6 +210,14 @@ DISASMMS-NEXT: 0000000180006000 <test2>:
207210DISASMMS-NEXT: 180006000: 528000a0 mov w0, #0x5 // =5
208211DISASMMS-NEXT: 180006004: d65f03c0 ret
209212
213+ Test the code map that includes an ARM64EC function padded by its entry-thunk offset.
214+
215+ RUN: lld-link -out:testpad.dll -machine:arm64ec entry-thunk.obj loadconfig-arm64ec.obj -dll -noentry -include:func
216+ RUN: llvm-readobj --coff-load-config testpad.dll | FileCheck -check-prefix=CODEMAPPAD %s
217+ CODEMAPPAD: CodeMap [
218+ CODEMAPPAD: 0x1000 - 0x1010 ARM64EC
219+ CODEMAPPAD-NEXT: ]
220+
210221
211222#--- arm64-func-sym.s
212223 .text
@@ -266,3 +277,22 @@ x86_64_func_sym2:
266277 .section .empty1, "xr"
267278 .section .empty2, "xr"
268279 .section .empty3, "xr"
280+
281+ #--- entry-thunk.s
282+ .section .text,"xr",discard,func
283+ .globl func
284+ .p2align 2, 0x0
285+ func:
286+ mov w0, #1
287+ ret
288+
289+ .section .wowthk$aa,"xr",discard,thunk
290+ .globl thunk
291+ .p2align 2
292+ thunk:
293+ ret
294+
295+ .section .hybmp$x,"yi"
296+ .symidx func
297+ .symidx thunk
298+ .word 1 // entry thunk
0 commit comments