1c2884320feebc543d2ce51151d5418dfc18da9e4Amara Emerson// RUN: llvm-mc -triple=aarch64-none-linux-gnu -filetype=obj -mattr=+fp-armv8 < %s | llvm-objdump -r - | FileCheck %s 29540074467ca6af4098467261336edbe61f6deeaRafael Espindola 39540074467ca6af4098467261336edbe61f6deeaRafael Espindola .file "<stdin>" 49540074467ca6af4098467261336edbe61f6deeaRafael Espindola .text 59540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl test_inline_modifier_L 69540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type test_inline_modifier_L,@function 79540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_L: // @test_inline_modifier_L 89540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0: 99540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 109540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, #:lo12:var_simple 119540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 129540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 139540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr x0, [x0, #:got_lo12:var_got] 149540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 159540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 169540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, #:tlsdesc_lo12:var_tlsgd 179540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 189540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 199540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, #:dtprel_lo12:var_tlsld 209540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 219540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 229540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr x0, [x0, #:gottprel_lo12:var_tlsie] 239540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 249540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 259540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, #:tprel_lo12:var_tlsle 269540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 279540074467ca6af4098467261336edbe61f6deeaRafael Espindola ret 289540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp0: 299540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size test_inline_modifier_L, .Ltmp0-test_inline_modifier_L 309540074467ca6af4098467261336edbe61f6deeaRafael Espindola 319540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_ADD_ABS_LO12_NC var_simple 329540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_LD64_GOT_LO12_NC var_got 339540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSDESC_ADD_LO12_NC var_tlsgd 349540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLD_ADD_DTPREL_LO12 var_tlsld 359540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC var_tlsie 369540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLE_ADD_TPREL_LO12 var_tlsle 379540074467ca6af4098467261336edbe61f6deeaRafael Espindola 389540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl test_inline_modifier_G 399540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type test_inline_modifier_G,@function 409540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_G: // @test_inline_modifier_G 419540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0: 429540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 439540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, #:dtprel_hi12:var_tlsld, lsl #12 449540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 459540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 469540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, #:tprel_hi12:var_tlsle, lsl #12 479540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 489540074467ca6af4098467261336edbe61f6deeaRafael Espindola ret 499540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp1: 509540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size test_inline_modifier_G, .Ltmp1-test_inline_modifier_G 519540074467ca6af4098467261336edbe61f6deeaRafael Espindola 529540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLD_ADD_DTPREL_HI12 var_tlsld 539540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSLE_ADD_TPREL_HI12 var_tlsle 549540074467ca6af4098467261336edbe61f6deeaRafael Espindola 559540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl test_inline_modifier_A 569540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type test_inline_modifier_A,@function 579540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_A: // @test_inline_modifier_A 589540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0: 599540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 609540074467ca6af4098467261336edbe61f6deeaRafael Espindola adrp x0, var_simple 619540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 629540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 639540074467ca6af4098467261336edbe61f6deeaRafael Espindola adrp x0, :got:var_got 649540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 659540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 669540074467ca6af4098467261336edbe61f6deeaRafael Espindola adrp x0, :tlsdesc:var_tlsgd 679540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 689540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 699540074467ca6af4098467261336edbe61f6deeaRafael Espindola adrp x0, :gottprel:var_tlsie 709540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 719540074467ca6af4098467261336edbe61f6deeaRafael Espindola ret 729540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp2: 739540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size test_inline_modifier_A, .Ltmp2-test_inline_modifier_A 749540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_ADR_PREL_PG_HI21 var_simple 759540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_ADR_GOT_PAGE var_got 76ebe69fe11e48d322045d5949c83283927a0d790bStephen Hines// CHECK: R_AARCH64_TLSDESC_ADR_PAGE21 var_tlsgd 779540074467ca6af4098467261336edbe61f6deeaRafael Espindola// CHECK: R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 var_tlsie 789540074467ca6af4098467261336edbe61f6deeaRafael Espindola 799540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl test_inline_modifier_wx 809540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type test_inline_modifier_wx,@function 819540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_wx: // @test_inline_modifier_wx 829540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0: 839540074467ca6af4098467261336edbe61f6deeaRafael Espindola mov w2, w0 849540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 859540074467ca6af4098467261336edbe61f6deeaRafael Espindola add w2, w2, w2 869540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 879540074467ca6af4098467261336edbe61f6deeaRafael Espindola mov w2, w0 889540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 899540074467ca6af4098467261336edbe61f6deeaRafael Espindola add w2, w2, w2 909540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 919540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 929540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, x0 939540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 949540074467ca6af4098467261336edbe61f6deeaRafael Espindola mov x0, x1 959540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 969540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, x0, x0 979540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 989540074467ca6af4098467261336edbe61f6deeaRafael Espindola mov x0, x1 999540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1009540074467ca6af4098467261336edbe61f6deeaRafael Espindola add w0, w0, w0 1019540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1029540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1039540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x1, x1, x1 1049540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1059540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1069540074467ca6af4098467261336edbe61f6deeaRafael Espindola add w0, wzr, wzr 1079540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1089540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1099540074467ca6af4098467261336edbe61f6deeaRafael Espindola add x0, xzr, xzr 1109540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1119540074467ca6af4098467261336edbe61f6deeaRafael Espindola ret 1129540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp3: 1139540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size test_inline_modifier_wx, .Ltmp3-test_inline_modifier_wx 1149540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1159540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl test_inline_modifier_bhsdq 1169540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type test_inline_modifier_bhsdq,@function 1179540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_bhsdq: // @test_inline_modifier_bhsdq 1189540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0: 1199540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1209540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr b0, [sp] 1219540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1229540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1239540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr h0, [sp] 1249540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1259540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1269540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr s0, [sp] 1279540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1289540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1299540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr d0, [sp] 1309540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1319540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1329540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr q0, [sp] 1339540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1349540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1359540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr b0, [sp] 1369540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1379540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1389540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr h0, [sp] 1399540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1409540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1419540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr s0, [sp] 1429540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1439540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1449540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr d0, [sp] 1459540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1469540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1479540074467ca6af4098467261336edbe61f6deeaRafael Espindola ldr q0, [sp] 1489540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1499540074467ca6af4098467261336edbe61f6deeaRafael Espindola ret 1509540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp4: 1519540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size test_inline_modifier_bhsdq, .Ltmp4-test_inline_modifier_bhsdq 1529540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1539540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl test_inline_modifier_c 1549540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type test_inline_modifier_c,@function 1559540074467ca6af4098467261336edbe61f6deeaRafael Espindolatest_inline_modifier_c: // @test_inline_modifier_c 1569540074467ca6af4098467261336edbe61f6deeaRafael Espindola// BB#0: 1579540074467ca6af4098467261336edbe61f6deeaRafael Espindola //APP 1589540074467ca6af4098467261336edbe61f6deeaRafael Espindola adr x0, 3 1599540074467ca6af4098467261336edbe61f6deeaRafael Espindola //NO_APP 1609540074467ca6af4098467261336edbe61f6deeaRafael Espindola ret 1619540074467ca6af4098467261336edbe61f6deeaRafael Espindola.Ltmp5: 1629540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size test_inline_modifier_c, .Ltmp5-test_inline_modifier_c 1639540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1649540074467ca6af4098467261336edbe61f6deeaRafael Espindola .hidden var_simple // @var_simple 1659540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type var_simple,@object 1669540074467ca6af4098467261336edbe61f6deeaRafael Espindola .bss 1679540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl var_simple 1689540074467ca6af4098467261336edbe61f6deeaRafael Espindola .align 2 1699540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_simple: 1709540074467ca6af4098467261336edbe61f6deeaRafael Espindola .word 0 // 0x0 1719540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size var_simple, 4 1729540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1739540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type var_got,@object // @var_got 1749540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl var_got 1759540074467ca6af4098467261336edbe61f6deeaRafael Espindola .align 2 1769540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_got: 1779540074467ca6af4098467261336edbe61f6deeaRafael Espindola .word 0 // 0x0 1789540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size var_got, 4 1799540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1809540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type var_tlsgd,@object // @var_tlsgd 1819540074467ca6af4098467261336edbe61f6deeaRafael Espindola .section .tbss,"awT",@nobits 1829540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl var_tlsgd 1839540074467ca6af4098467261336edbe61f6deeaRafael Espindola .align 2 1849540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsgd: 1859540074467ca6af4098467261336edbe61f6deeaRafael Espindola .word 0 // 0x0 1869540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size var_tlsgd, 4 1879540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1889540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type var_tlsld,@object // @var_tlsld 1899540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl var_tlsld 1909540074467ca6af4098467261336edbe61f6deeaRafael Espindola .align 2 1919540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsld: 1929540074467ca6af4098467261336edbe61f6deeaRafael Espindola .word 0 // 0x0 1939540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size var_tlsld, 4 1949540074467ca6af4098467261336edbe61f6deeaRafael Espindola 1959540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type var_tlsie,@object // @var_tlsie 1969540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl var_tlsie 1979540074467ca6af4098467261336edbe61f6deeaRafael Espindola .align 2 1989540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsie: 1999540074467ca6af4098467261336edbe61f6deeaRafael Espindola .word 0 // 0x0 2009540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size var_tlsie, 4 2019540074467ca6af4098467261336edbe61f6deeaRafael Espindola 2029540074467ca6af4098467261336edbe61f6deeaRafael Espindola .type var_tlsle,@object // @var_tlsle 2039540074467ca6af4098467261336edbe61f6deeaRafael Espindola .globl var_tlsle 2049540074467ca6af4098467261336edbe61f6deeaRafael Espindola .align 2 2059540074467ca6af4098467261336edbe61f6deeaRafael Espindolavar_tlsle: 2069540074467ca6af4098467261336edbe61f6deeaRafael Espindola .word 0 // 0x0 2079540074467ca6af4098467261336edbe61f6deeaRafael Espindola .size var_tlsle, 4 2089540074467ca6af4098467261336edbe61f6deeaRafael Espindola 2099540074467ca6af4098467261336edbe61f6deeaRafael Espindola 210