153 lines · plain
1// RUN: llvm-mc -triple aarch64-windows -filetype obj -o %t.obj %s2// RUN: llvm-rtdyld -triple aarch64-windows -dummy-extern dummy=0x79563413 -dummy-extern dummyA=0x78566879 -target-addr-start=40960000000000 -verify -check %s %t.obj3 4 .text5 .def _bnamed6 .scl 27 .type 328 .endef9 10 .globl _bnamed11 .align 212_bnamed:13 ret14 15 .def _foo16 .scl 217 .type 3218 .endef19 .globl _foo20 .align 221_foo:22 movz w0, #023 ret24 25 .globl _test_adr_relocation26 .align 227 28# IMAGE_REL_ARM64_REL2129# rtdyld-check: decode_operand(adr1, 1) = (_const[20:0] - adr1[20:0])30_test_adr_relocation:31adr1:32 adr x0, _const33 ret34 35 .globl _test_branch26_reloc36 .align 237 38# IMAGE_REL_ARM64_BRANCH26, test long branch39# rtdyld-check: decode_operand(brel, 0)[25:0] = (stub_addr(COFF_AArch64.s.tmp.obj/.text, dummy) - brel)[27:2]40_test_branch26_reloc:41brel:42 b dummy43 ret44 45 .globl _test_branch19_reloc46 .align 247 48# IMAGE_REL_ARM64_BRANCH1949# rtdyld-check: decode_operand(bcond, 1)[18:0] = (_foo - bcond)[20:2]50_test_branch19_reloc:51 mov x0, #352 cmp x0, #253bcond:54 bne _foo55 ret56 57 .globl _test_branch14_reloc58 .align 259 60# IMAGE_REL_ARM64_BRANCH1461# rtdyld-check: decode_operand(tbz_branch, 2)[13:0] = (_bnamed - tbz_branch)[15:2]62_test_branch14_reloc:63 mov x1, #064tbz_branch:65 tbz x1, #0, _bnamed66 ret67 68 .globl _test_adrp_ldr_reloc69 .align 270 71# IMAGE_REL_ARM64_PAGEBASE_REL2172# rtdyld-check: decode_operand(adrp1, 1) = (_const[32:12] - adrp1[32:12])73_test_adrp_ldr_reloc:74adrp1:75 adrp x0, _const76 77# IMAGE_REL_ARM64_PAGEOFFSET_12L78# rtdyld-check: decode_operand(ldr1, 2) = _const[11:3]79ldr1:80 ldr x0, [x0, #:lo12:_const]81 ret82 83 .globl _test_add_reloc84 .align 285 86# IMAGE_REL_ARM64_PAGEOFFSET_12A87# rtdyld-check: decode_operand(add1, 2) = (tgt+4)[11:0]88_test_add_reloc:89add1:90 add x0, x0, tgt@PAGEOFF+491 ret92 93 .section .data94 .globl _test_addr64_reloc95 .align 296 97# IMAGE_REL_ARM64_ADDR6498# rtdyld-check: *{8}addr64 = tgt+499_test_addr64_reloc:100addr64:101 .quad tgt+4102 103# IMAGE_REL_ARM64_ADDR32104# rtdyld-check: *{4}_test_addr32_reloc = 0x78566879105_test_addr32_reloc:106 .long dummyA107 108 .globl _relocations109 .align 2110 111# IMAGE_REL_ARM64_ADDR32NB, RVA of the target112# rtdyld-check: *{4}_relocations = _foo - 40960000000000113_relocations:114 .long _foo@IMGREL115 116# IMAGE_REL_ARM64_ADDR32NB117# rtdyld-check: *{4}imgrel2 = _string - 40960000000000+5118imgrel2:119 .long _string@IMGREL+5120 121# IMAGE_REL_ARM64_SECTION122# rtdyld-check: *{2}secindex = 1123secindex:124 .secidx _test_addr32_reloc125 126# IMAGE_REL_ARM64_SECREL127# rtdyld-check: *{4}secrel = string - section_addr(COFF_AArch64.s.tmp.obj, .data)128secrel:129 .secrel32 string130 131 .globl _const132 .align 3133_const:134 .quad 4614256650576692846135 136tgt:137 .word 1138 .word 2139 .word 3140 .word 4141 .word 5142 143 .globl string144 .align 2145string:146 .asciz "Hello World\n"147 148 .section .rdata,"dr"149 .globl _string150 .align 2151_string:152 .asciz "Hello World\n"153