Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -march=sparcv9 -filetype=obj --relocation-model=static | llvm-readobj -r | FileCheck %s --check-prefix=CHECK-ABS |
| 2 | ; RUN: llc < %s -march=sparcv9 -filetype=obj --relocation-model=pic | llvm-readobj -r | FileCheck %s --check-prefix=CHECK-PIC |
| 3 | |
James Y Knight | f90346f | 2015-06-18 15:05:15 +0000 | [diff] [blame] | 4 | ;CHECK-ABS: Relocations [ |
| 5 | ;CHECK-ABS: 0x{{[0-9,A-F]+}} R_SPARC_H44 AGlobalVar 0x0 |
| 6 | ;CHECK-ABS-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_M44 AGlobalVar 0x0 |
| 7 | ;CHECK-ABS-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_L44 AGlobalVar 0x0 |
| 8 | ;CHECK-ABS-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_H44 .rodata.str1.1 0x0 |
| 9 | ;CHECK-ABS-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_M44 .rodata.str1.1 0x0 |
| 10 | ;CHECK-ABS-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WDISP30 bar 0x0 |
| 11 | ;CHECK-ABS-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_L44 .rodata.str1.1 0x0 |
| 12 | ;CHECK-ABS: ] |
Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 13 | |
James Y Knight | f90346f | 2015-06-18 15:05:15 +0000 | [diff] [blame] | 14 | ; CHECK-PIC: Relocations [ |
| 15 | ; CHECK-PIC: 0x{{[0-9,A-F]+}} R_SPARC_PC22 _GLOBAL_OFFSET_TABLE_ 0x4 |
| 16 | ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x8 |
| 17 | ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0 |
| 18 | ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0 |
Daniel Jasper | 41de802 | 2015-06-23 11:31:32 +0000 | [diff] [blame] | 19 | ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 .L.mystr 0x0 |
| 20 | ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 .L.mystr 0x0 |
James Y Knight | f90346f | 2015-06-18 15:05:15 +0000 | [diff] [blame] | 21 | ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0 |
| 22 | ; CHECK-PIC: ] |
Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 23 | |
| 24 | |
| 25 | @AGlobalVar = global i64 0, align 8 |
James Y Knight | f90346f | 2015-06-18 15:05:15 +0000 | [diff] [blame] | 26 | @.mystr = private unnamed_addr constant [6 x i8] c"hello\00", align 1 |
Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 27 | |
Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 28 | define i64 @foo(i64 %a) { |
| 29 | entry: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 30 | %0 = load i64, i64* @AGlobalVar, align 4 |
Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 31 | %1 = add i64 %a, %0 |
James Y Knight | f90346f | 2015-06-18 15:05:15 +0000 | [diff] [blame] | 32 | %2 = call i64 @bar(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.mystr, i32 0, i32 0), i64 %1) |
Venkatraman Govindaraju | 104643d | 2014-02-07 04:24:35 +0000 | [diff] [blame] | 33 | ret i64 %2 |
| 34 | } |
| 35 | |
| 36 | |
James Y Knight | f90346f | 2015-06-18 15:05:15 +0000 | [diff] [blame] | 37 | declare i64 @bar(i8*, i64) |