1 // RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj -mattr=+fp-armv8 < %s | llvm-objdump -r - | FileCheck %s 2 3 .file "<stdin>" 4 .text 5 .globl test_inline_modifier_L 6 .type test_inline_modifier_L,@function 7 test_inline_modifier_L: // @test_inline_modifier_L 8 // BB#0: 9 //APP 10 add x0, x0, #:lo12:var_simple 11 //NO_APP 12 //APP 13 ldr x0, [x0, #:got_lo12:var_got] 14 //NO_APP 15 //APP 16 add x0, x0, #:tlsdesc_lo12:var_tlsgd 17 //NO_APP 18 //APP 19 add x0, x0, #:dtprel_lo12:var_tlsld 20 //NO_APP 21 //APP 22 ldr x0, [x0, #:gottprel_lo12:var_tlsie] 23 //NO_APP 24 //APP 25 add x0, x0, #:tprel_lo12:var_tlsle 26 //NO_APP 27 ret 28 .Ltmp0: 29 .size test_inline_modifier_L, .Ltmp0-test_inline_modifier_L 30 31 // CHECK: R_AARCH64_ADD_ABS_LO12_NC var_simple 32 // CHECK: R_AARCH64_LD64_GOT_LO12_NC var_got 33 // CHECK: R_AARCH64_TLSDESC_ADD_LO12_NC var_tlsgd 34 // CHECK: R_AARCH64_TLSLD_ADD_DTPREL_LO12 var_tlsld 35 // CHECK: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC var_tlsie 36 // CHECK: R_AARCH64_TLSLE_ADD_TPREL_LO12 var_tlsle 37 38 .globl test_inline_modifier_G 39 .type test_inline_modifier_G,@function 40 test_inline_modifier_G: // @test_inline_modifier_G 41 // BB#0: 42 //APP 43 add x0, x0, #:dtprel_hi12:var_tlsld, lsl #12 44 //NO_APP 45 //APP 46 add x0, x0, #:tprel_hi12:var_tlsle, lsl #12 47 //NO_APP 48 ret 49 .Ltmp1: 50 .size test_inline_modifier_G, .Ltmp1-test_inline_modifier_G 51 52 // CHECK: R_AARCH64_TLSLD_ADD_DTPREL_HI12 var_tlsld 53 // CHECK: R_AARCH64_TLSLE_ADD_TPREL_HI12 var_tlsle 54 55 .globl test_inline_modifier_A 56 .type test_inline_modifier_A,@function 57 test_inline_modifier_A: // @test_inline_modifier_A 58 // BB#0: 59 //APP 60 adrp x0, var_simple 61 //NO_APP 62 //APP 63 adrp x0, :got:var_got 64 //NO_APP 65 //APP 66 adrp x0, :tlsdesc:var_tlsgd 67 //NO_APP 68 //APP 69 adrp x0, :gottprel:var_tlsie 70 //NO_APP 71 ret 72 .Ltmp2: 73 .size test_inline_modifier_A, .Ltmp2-test_inline_modifier_A 74 // CHECK: R_AARCH64_ADR_PREL_PG_HI21 var_simple 75 // CHECK: R_AARCH64_ADR_GOT_PAGE var_got 76 // CHECK: R_AARCH64_TLSDESC_ADR_PAGE21 var_tlsgd 77 // CHECK: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 var_tlsie 78 79 .globl test_inline_modifier_wx 80 .type test_inline_modifier_wx,@function 81 test_inline_modifier_wx: // @test_inline_modifier_wx 82 // BB#0: 83 mov w2, w0 84 //APP 85 add w2, w2, w2 86 //NO_APP 87 mov w2, w0 88 //APP 89 add w2, w2, w2 90 //NO_APP 91 //APP 92 add x0, x0, x0 93 //NO_APP 94 mov x0, x1 95 //APP 96 add x0, x0, x0 97 //NO_APP 98 mov x0, x1 99 //APP 100 add w0, w0, w0 101 //NO_APP 102 //APP 103 add x1, x1, x1 104 //NO_APP 105 //APP 106 add w0, wzr, wzr 107 //NO_APP 108 //APP 109 add x0, xzr, xzr 110 //NO_APP 111 ret 112 .Ltmp3: 113 .size test_inline_modifier_wx, .Ltmp3-test_inline_modifier_wx 114 115 .globl test_inline_modifier_bhsdq 116 .type test_inline_modifier_bhsdq,@function 117 test_inline_modifier_bhsdq: // @test_inline_modifier_bhsdq 118 // BB#0: 119 //APP 120 ldr b0, [sp] 121 //NO_APP 122 //APP 123 ldr h0, [sp] 124 //NO_APP 125 //APP 126 ldr s0, [sp] 127 //NO_APP 128 //APP 129 ldr d0, [sp] 130 //NO_APP 131 //APP 132 ldr q0, [sp] 133 //NO_APP 134 //APP 135 ldr b0, [sp] 136 //NO_APP 137 //APP 138 ldr h0, [sp] 139 //NO_APP 140 //APP 141 ldr s0, [sp] 142 //NO_APP 143 //APP 144 ldr d0, [sp] 145 //NO_APP 146 //APP 147 ldr q0, [sp] 148 //NO_APP 149 ret 150 .Ltmp4: 151 .size test_inline_modifier_bhsdq, .Ltmp4-test_inline_modifier_bhsdq 152 153 .globl test_inline_modifier_c 154 .type test_inline_modifier_c,@function 155 test_inline_modifier_c: // @test_inline_modifier_c 156 // BB#0: 157 //APP 158 adr x0, 3 159 //NO_APP 160 ret 161 .Ltmp5: 162 .size test_inline_modifier_c, .Ltmp5-test_inline_modifier_c 163 164 .hidden var_simple // @var_simple 165 .type var_simple,@object 166 .bss 167 .globl var_simple 168 .align 2 169 var_simple: 170 .word 0 // 0x0 171 .size var_simple, 4 172 173 .type var_got,@object // @var_got 174 .globl var_got 175 .align 2 176 var_got: 177 .word 0 // 0x0 178 .size var_got, 4 179 180 .type var_tlsgd,@object // @var_tlsgd 181 .section .tbss,"awT",@nobits 182 .globl var_tlsgd 183 .align 2 184 var_tlsgd: 185 .word 0 // 0x0 186 .size var_tlsgd, 4 187 188 .type var_tlsld,@object // @var_tlsld 189 .globl var_tlsld 190 .align 2 191 var_tlsld: 192 .word 0 // 0x0 193 .size var_tlsld, 4 194 195 .type var_tlsie,@object // @var_tlsie 196 .globl var_tlsie 197 .align 2 198 var_tlsie: 199 .word 0 // 0x0 200 .size var_tlsie, 4 201 202 .type var_tlsle,@object // @var_tlsle 203 .globl var_tlsle 204 .align 2 205 var_tlsle: 206 .word 0 // 0x0 207 .size var_tlsle, 4 208 209 210