297 lines · plain
1# REQUIRES: aarch642 3# RUN: yaml2obj %s -o %t.obj4# RUN: llvm-objdump --no-print-imm-hex -d %t.obj | FileCheck %s --check-prefix BEFORE5# RUN: lld-link /entry:main /subsystem:console /out:%t.exe %t.obj %p/Inputs/library-arm64.lib6# RUN: llvm-objdump --no-print-imm-hex -d %t.exe | FileCheck %s --check-prefix AFTER7 8# BEFORE: Disassembly of section .text:9# BEFORE-EMPTY:10# BEFORE: 0: f81f0ffe str x30, [sp, #-16]!11# BEFORE: 4: 90000000 adrp x0, 0x012# BEFORE: 8: 91000800 add x0, x0, #213# BEFORE: c: 94000000 bl 0xc14# BEFORE: 10: 39400100 ldrb w0, [x8]15# BEFORE: 14: 79400100 ldrh w0, [x8]16# BEFORE: 18: b9400100 ldr w0, [x8]17# BEFORE: 1c: f9400100 ldr x0, [x8]18# BEFORE: 20: 39000100 strb w0, [x8]19# BEFORE: 24: 79000100 strh w0, [x8]20# BEFORE: 28: b9000100 str w0, [x8]21# BEFORE: 2c: f9000100 str x0, [x8]22# BEFORE: 30: 3d400100 ldr b0, [x8]23# BEFORE: 34: 7d400100 ldr h0, [x8]24# BEFORE: 38: bd400100 ldr s0, [x8]25# BEFORE: 3c: fd400100 ldr d0, [x8]26# BEFORE: 40: 3dc00100 ldr q0, [x8]27# BEFORE: 44: 3d000100 str b0, [x8]28# BEFORE: 48: 7d000100 str h0, [x8]29# BEFORE: 4c: bd000100 str s0, [x8]30# BEFORE: 50: fd000100 str d0, [x8]31# BEFORE: 54: 3d800100 str q0, [x8]32# BEFORE: 58: f9400500 ldr x0, [x8, #8]33# BEFORE: 5c: b0011a20 adrp x0, 0x234500034# BEFORE: 60: f94ffc00 ldr x0, [x0, #8184]35# BEFORE: 64: 2a1f03e0 mov w0, wzr36# BEFORE: 68: f84107fe ldr x30, [sp], #1637# BEFORE: 6c: d65f03c0 ret38# BEFORE: 70: 00000008 udf #839# BEFORE: 74: 00000000 udf #040# BEFORE: 78: 00000001 udf #141# BEFORE: 7c: 00000001 udf #142# BEFORE: 80: 91000000 add x0, x0, #043# BEFORE: 84: 91400000 add x0, x0, #0, lsl #1244# BEFORE: 88: f9400000 ldr x0, [x0]45# BEFORE: 8c: 00000001 udf #146# BEFORE: 90: 30091a20 adr x0, 0x123d547# BEFORE: 94: 54000001 b.ne 0x9448# BEFORE: 98: 36000000 tbz w0, #0, 0x9849# BEFORE: 9c: 00000001 udf #150# BEFORE: a0: 90800002 adrp x2, 0xffffffff0000000051 52# AFTER: Disassembly of section .text:53# AFTER-EMPTY:54# AFTER: 140001000: f81f0ffe str x30, [sp, #-16]!55# AFTER: 140001004: b0000000 adrp x0, 0x14000200056# AFTER: 140001008: 91001800 add x0, x0, #657# AFTER: 14000100c: 94000026 bl 0x1400010a458# AFTER: 140001010: 39402100 ldrb w0, [x8, #8]59# AFTER: 140001014: 79401100 ldrh w0, [x8, #8]60# AFTER: 140001018: b9400900 ldr w0, [x8, #8]61# AFTER: 14000101c: f9400500 ldr x0, [x8, #8]62# AFTER: 140001020: 39002100 strb w0, [x8, #8]63# AFTER: 140001024: 79001100 strh w0, [x8, #8]64# AFTER: 140001028: b9000900 str w0, [x8, #8]65# AFTER: 14000102c: f9000500 str x0, [x8, #8]66# AFTER: 140001030: 3d404100 ldr b0, [x8, #16]67# AFTER: 140001034: 7d402100 ldr h0, [x8, #16]68# AFTER: 140001038: bd401100 ldr s0, [x8, #16]69# AFTER: 14000103c: fd400900 ldr d0, [x8, #16]70# AFTER: 140001040: 3dc00500 ldr q0, [x8, #16]71# AFTER: 140001044: 3d004100 str b0, [x8, #16]72# AFTER: 140001048: 7d002100 str h0, [x8, #16]73# AFTER: 14000104c: bd001100 str s0, [x8, #16]74# AFTER: 140001050: fd000900 str d0, [x8, #16]75# AFTER: 140001054: 3d800500 str q0, [x8, #16]76# AFTER: 140001058: f9400900 ldr x0, [x8, #16]77# AFTER: 14000105c: f0000000 adrp x0, 0x14000400078# AFTER: 140001060: f947fc00 ldr x0, [x0, #4088]79# AFTER: 140001064: 2a1f03e0 mov w0, wzr80# AFTER: 140001068: f84107fe ldr x30, [sp], #1681# AFTER: 14000106c: d65f03c0 ret82# AFTER: 140001070: 40002010 <unknown>83# AFTER: 140001074: 00000001 udf #184# AFTER: 140001078: 00002009 udf #820185# AFTER: 14000107c: 00000009 udf #986# AFTER: 140001080: 910e2000 add x0, x0, #90487# AFTER: 140001084: 91400400 add x0, x0, #1, lsl #1288# AFTER: 140001088: f941c400 ldr x0, [x0, #904]89# AFTER: 14000108c: 00000003 udf #390# AFTER: 140001090: 300995e0 adr x0, 0x14001434d91# AFTER: 140001094: 54000081 b.ne 0x1400010a492# AFTER: 140001098: 36000060 tbz w0, #0, 0x1400010a493# AFTER: 14000109c: ffffff61 <unknown>94# AFTER: 1400010a0: b0fff802 adrp x2, 0x13ff0200095# AFTER: 1400010a4: b0000010 adrp x16, 0x14000200096# AFTER: 1400010a8: f9402a10 ldr x16, [x16, #80]97# AFTER: 1400010ac: d61f0200 br x1698 99--- !COFF100header:101 Machine: IMAGE_FILE_MACHINE_ARM64102 Characteristics: [ ]103sections:104 - Name: .text105 Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]106 Alignment: 4107 SectionData: FE0F1FF80000009000080091000000940001403900014079000140B9000140F90001003900010079000100B9000100F90001403D0001407D000140BD000140FD0001C03D0001003D0001007D000100BD000100FD0001803D000540F9201A01B000FC4FF9E0031F2AFE0741F8C0035FD6080000000000000001000000010000000000009100004091000040f901000000201a093001000054000000360100000002008090108 Relocations:109 - VirtualAddress: 4110 SymbolName: .Lstr111 Type: IMAGE_REL_ARM64_PAGEBASE_REL21112 - VirtualAddress: 8113 SymbolName: .Lstr114 Type: IMAGE_REL_ARM64_PAGEOFFSET_12A115 - VirtualAddress: 12116 SymbolName: function117 Type: IMAGE_REL_ARM64_BRANCH26118 - VirtualAddress: 16119 SymbolName: .Lglobal120 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L121 - VirtualAddress: 20122 SymbolName: .Lglobal123 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L124 - VirtualAddress: 24125 SymbolName: .Lglobal126 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L127 - VirtualAddress: 28128 SymbolName: .Lglobal129 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L130 - VirtualAddress: 32131 SymbolName: .Lglobal132 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L133 - VirtualAddress: 36134 SymbolName: .Lglobal135 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L136 - VirtualAddress: 40137 SymbolName: .Lglobal138 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L139 - VirtualAddress: 44140 SymbolName: .Lglobal141 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L142 - VirtualAddress: 48143 SymbolName: .Lglobal16144 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L145 - VirtualAddress: 52146 SymbolName: .Lglobal16147 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L148 - VirtualAddress: 56149 SymbolName: .Lglobal16150 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L151 - VirtualAddress: 60152 SymbolName: .Lglobal16153 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L154 - VirtualAddress: 64155 SymbolName: .Lglobal16156 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L157 - VirtualAddress: 68158 SymbolName: .Lglobal16159 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L160 - VirtualAddress: 72161 SymbolName: .Lglobal16162 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L163 - VirtualAddress: 76164 SymbolName: .Lglobal16165 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L166 - VirtualAddress: 80167 SymbolName: .Lglobal16168 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L169 - VirtualAddress: 84170 SymbolName: .Lglobal16171 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L172 - VirtualAddress: 88173 SymbolName: .Lglobal174 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L175 - VirtualAddress: 92176 SymbolName: .Lglobal16177 Type: IMAGE_REL_ARM64_PAGEBASE_REL21178 - VirtualAddress: 96179 SymbolName: .Lglobal0180 Type: IMAGE_REL_ARM64_PAGEOFFSET_12L181 - VirtualAddress: 112182 SymbolName: .Lglobal183 Type: IMAGE_REL_ARM64_ADDR64184 - VirtualAddress: 120185 SymbolName: .Lglobal186 Type: IMAGE_REL_ARM64_ADDR32NB187 - VirtualAddress: 124188 SymbolName: .Lglobal189 Type: IMAGE_REL_ARM64_SECREL190 - VirtualAddress: 128191 SymbolName: .Lglobal5000192 Type: IMAGE_REL_ARM64_SECREL_LOW12A193 - VirtualAddress: 132194 SymbolName: .Lglobal5000195 Type: IMAGE_REL_ARM64_SECREL_HIGH12A196 - VirtualAddress: 136197 SymbolName: .Lglobal5000198 Type: IMAGE_REL_ARM64_SECREL_LOW12L199 - VirtualAddress: 140200 SymbolName: .Lglobal201 Type: IMAGE_REL_ARM64_SECTION202 - VirtualAddress: 144203 SymbolName: .Lglobal204 Type: IMAGE_REL_ARM64_REL21205 - VirtualAddress: 148206 SymbolName: function207 Type: IMAGE_REL_ARM64_BRANCH19208 - VirtualAddress: 152209 SymbolName: function210 Type: IMAGE_REL_ARM64_BRANCH14211 - VirtualAddress: 156212 SymbolName: main213 Type: IMAGE_REL_ARM64_REL32214 - VirtualAddress: 160215 SymbolName: .Lstr216 Type: IMAGE_REL_ARM64_PAGEBASE_REL21217 - Name: .data218 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]219 Alignment: 4220 SectionData: ''221 - Name: .bss222 Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]223 Alignment: 4224 SectionData: ''225 - Name: .rdata226 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]227 Alignment: 1228 SectionData: 00000000202068656C6C6F20776F726C6400229symbols:230 - Name: .text231 Value: 0232 SectionNumber: 1233 SimpleType: IMAGE_SYM_TYPE_NULL234 ComplexType: IMAGE_SYM_DTYPE_NULL235 StorageClass: IMAGE_SYM_CLASS_STATIC236 SectionDefinition:237 Length: 28238 NumberOfRelocations: 3239 NumberOfLinenumbers: 0240 CheckSum: 1438860354241 Number: 1242 - Name: .rdata243 Value: 0244 SectionNumber: 4245 SimpleType: IMAGE_SYM_TYPE_NULL246 ComplexType: IMAGE_SYM_DTYPE_NULL247 StorageClass: IMAGE_SYM_CLASS_STATIC248 SectionDefinition:249 Length: 12250 NumberOfRelocations: 0251 NumberOfLinenumbers: 0252 CheckSum: 872944732253 Number: 4254 - Name: main255 Value: 0256 SectionNumber: 1257 SimpleType: IMAGE_SYM_TYPE_NULL258 ComplexType: IMAGE_SYM_DTYPE_NULL259 StorageClass: IMAGE_SYM_CLASS_EXTERNAL260 - Name: .Lstr261 Value: 4262 SectionNumber: 4263 SimpleType: IMAGE_SYM_TYPE_NULL264 ComplexType: IMAGE_SYM_DTYPE_NULL265 StorageClass: IMAGE_SYM_CLASS_STATIC266 - Name: .Lglobal267 Value: 8268 SectionNumber: 4269 SimpleType: IMAGE_SYM_TYPE_NULL270 ComplexType: IMAGE_SYM_DTYPE_NULL271 StorageClass: IMAGE_SYM_CLASS_STATIC272 - Name: .Lglobal16273 Value: 16274 SectionNumber: 4275 SimpleType: IMAGE_SYM_TYPE_NULL276 ComplexType: IMAGE_SYM_DTYPE_NULL277 StorageClass: IMAGE_SYM_CLASS_STATIC278 - Name: .Lglobal0279 Value: 0280 SectionNumber: 4281 SimpleType: IMAGE_SYM_TYPE_NULL282 ComplexType: IMAGE_SYM_DTYPE_NULL283 StorageClass: IMAGE_SYM_CLASS_STATIC284 - Name: function285 Value: 0286 SectionNumber: 0287 SimpleType: IMAGE_SYM_TYPE_NULL288 ComplexType: IMAGE_SYM_DTYPE_NULL289 StorageClass: IMAGE_SYM_CLASS_EXTERNAL290 - Name: .Lglobal5000291 Value: 5000292 SectionNumber: 4293 SimpleType: IMAGE_SYM_TYPE_NULL294 ComplexType: IMAGE_SYM_DTYPE_NULL295 StorageClass: IMAGE_SYM_CLASS_STATIC296...297