136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! RUN: llvm-mc %s -arch=sparcv9 --relocation-model=pic -filetype=obj | llvm-readobj -r | FileCheck %s 236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK: Relocations [ 536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK-NOT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 .text 0xC 636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK: 0x{{[0-9,A-F]+}} R_SPARC_PC22 _GLOBAL_OFFSET_TABLE_ 0x4 736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x8 836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0 936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0 1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0 1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines! CHECK: ] 1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .text 1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .globl foo 1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .align 4 1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .type foo,@function 1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesfoo: 1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .cfi_startproc 1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines save %sp, -176, %sp 2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .cfi_def_cfa_register %fp 2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .cfi_window_save 2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .cfi_register 15, 31 2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.Ltmp4: 2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines call .Ltmp5 2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.Ltmp6: 2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines sethi %hi(_GLOBAL_OFFSET_TABLE_+(.Ltmp6-.Ltmp4)), %i1 2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.Ltmp5: 2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines or %i1, %lo(_GLOBAL_OFFSET_TABLE_+(.Ltmp5-.Ltmp4)), %i1 2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines add %i1, %o7, %i1 3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines sethi %hi(AGlobalVar), %i2 3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines add %i2, %lo(AGlobalVar), %i2 3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldx [%i1+%i2], %i1 3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ldx [%i1], %i1 3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines call bar 3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines add %i0, %i1, %o0 3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines ret 3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines restore %g0, %o0, %o0 3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines.Ltmp7: 3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .size foo, .Ltmp7-foo 4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .cfi_endproc 4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .type AGlobalVar,@object ! @AGlobalVar 4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .section .bss,#alloc,#write 4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .globl AGlobalVar 4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .align 8 4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesAGlobalVar: 4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .xword 0 ! 0x0 4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines .size AGlobalVar, 8 4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines 50