xref: /aosp_15_r20/external/llvm/test/MC/Mips/elf-relsym.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-readobj -t | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker// Check that the appropriate symbols were created.
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Worker// CHECK: Symbols [
6*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
7*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: $.str
8*9880d681SAndroid Build Coastguard Worker// CHECK:   }
9*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
10*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: $.str1
11*9880d681SAndroid Build Coastguard Worker// CHECK:   }
12*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
13*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: $CPI0_0
14*9880d681SAndroid Build Coastguard Worker// CHECK:   }
15*9880d681SAndroid Build Coastguard Worker// CHECK:   Symbol {
16*9880d681SAndroid Build Coastguard Worker// CHECK:     Name: $CPI0_1
17*9880d681SAndroid Build Coastguard Worker// CHECK:   }
18*9880d681SAndroid Build Coastguard Worker// CHECK: ]
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker	.text
21*9880d681SAndroid Build Coastguard Worker	.abicalls
22*9880d681SAndroid Build Coastguard Worker	.section	.mdebug.abi32,"",@progbits
23*9880d681SAndroid Build Coastguard Worker	.file	"/home/espindola/llvm/llvm/test/MC/Mips/elf-relsym.ll"
24*9880d681SAndroid Build Coastguard Worker	.section	.rodata.cst8,"aM",@progbits,8
25*9880d681SAndroid Build Coastguard Worker	.align	3
26*9880d681SAndroid Build Coastguard Worker$CPI0_0:
27*9880d681SAndroid Build Coastguard Worker	.8byte	4612811918334230528     # double 2.5
28*9880d681SAndroid Build Coastguard Worker$CPI0_1:
29*9880d681SAndroid Build Coastguard Worker	.8byte	4616752568008179712     # double 4.5
30*9880d681SAndroid Build Coastguard Worker	.text
31*9880d681SAndroid Build Coastguard Worker	.globl	foo1
32*9880d681SAndroid Build Coastguard Worker	.align	2
33*9880d681SAndroid Build Coastguard Worker	.type	foo1,@function
34*9880d681SAndroid Build Coastguard Worker	.set	nomips16
35*9880d681SAndroid Build Coastguard Worker	.ent	foo1
36*9880d681SAndroid Build Coastguard Workerfoo1:                                   # @foo1
37*9880d681SAndroid Build Coastguard Worker	.frame	$sp,0,$ra
38*9880d681SAndroid Build Coastguard Worker	.mask 	0x00000000,0
39*9880d681SAndroid Build Coastguard Worker	.fmask	0x00000000,0
40*9880d681SAndroid Build Coastguard Worker	.set	noreorder
41*9880d681SAndroid Build Coastguard Worker	.set	nomacro
42*9880d681SAndroid Build Coastguard Worker	.set	noat
43*9880d681SAndroid Build Coastguard Worker# BB#0:                                 # %entry
44*9880d681SAndroid Build Coastguard Worker	lui	$2, %hi(_gp_disp)
45*9880d681SAndroid Build Coastguard Worker	addiu	$2, $2, %lo(_gp_disp)
46*9880d681SAndroid Build Coastguard Worker	addu	$1, $2, $25
47*9880d681SAndroid Build Coastguard Worker	lw	$2, %got($.str)($1)
48*9880d681SAndroid Build Coastguard Worker	addiu	$2, $2, %lo($.str)
49*9880d681SAndroid Build Coastguard Worker	lw	$3, %got(gc1)($1)
50*9880d681SAndroid Build Coastguard Worker	sw	$2, 0($3)
51*9880d681SAndroid Build Coastguard Worker	lw	$2, %got($.str1)($1)
52*9880d681SAndroid Build Coastguard Worker	addiu	$2, $2, %lo($.str1)
53*9880d681SAndroid Build Coastguard Worker	lw	$3, %got(gc2)($1)
54*9880d681SAndroid Build Coastguard Worker	sw	$2, 0($3)
55*9880d681SAndroid Build Coastguard Worker	lw	$2, %got($CPI0_0)($1)
56*9880d681SAndroid Build Coastguard Worker	ldc1	$f0, %lo($CPI0_0)($2)
57*9880d681SAndroid Build Coastguard Worker	lw	$2, %got(gd1)($1)
58*9880d681SAndroid Build Coastguard Worker	ldc1	$f2, 0($2)
59*9880d681SAndroid Build Coastguard Worker	lw	$3, %got($CPI0_1)($1)
60*9880d681SAndroid Build Coastguard Worker	ldc1	$f4, %lo($CPI0_1)($3)
61*9880d681SAndroid Build Coastguard Worker	lw	$1, %got(gd2)($1)
62*9880d681SAndroid Build Coastguard Worker	add.d	$f0, $f2, $f0
63*9880d681SAndroid Build Coastguard Worker	sdc1	$f0, 0($2)
64*9880d681SAndroid Build Coastguard Worker	ldc1	$f0, 0($1)
65*9880d681SAndroid Build Coastguard Worker	add.d	$f0, $f0, $f4
66*9880d681SAndroid Build Coastguard Worker	jr	$ra
67*9880d681SAndroid Build Coastguard Worker	sdc1	$f0, 0($1)
68*9880d681SAndroid Build Coastguard Worker	.set	at
69*9880d681SAndroid Build Coastguard Worker	.set	macro
70*9880d681SAndroid Build Coastguard Worker	.set	reorder
71*9880d681SAndroid Build Coastguard Worker	.end	foo1
72*9880d681SAndroid Build Coastguard Worker$tmp0:
73*9880d681SAndroid Build Coastguard Worker	.size	foo1, ($tmp0)-foo1
74*9880d681SAndroid Build Coastguard Worker
75*9880d681SAndroid Build Coastguard Worker	.type	$.str,@object           # @.str
76*9880d681SAndroid Build Coastguard Worker	.section	.rodata.str1.1,"aMS",@progbits,1
77*9880d681SAndroid Build Coastguard Worker$.str:
78*9880d681SAndroid Build Coastguard Worker	.asciz	"abcde"
79*9880d681SAndroid Build Coastguard Worker	.size	$.str, 6
80*9880d681SAndroid Build Coastguard Worker
81*9880d681SAndroid Build Coastguard Worker	.type	$.str1,@object          # @.str1
82*9880d681SAndroid Build Coastguard Worker$.str1:
83*9880d681SAndroid Build Coastguard Worker	.asciz	"fghi"
84*9880d681SAndroid Build Coastguard Worker	.size	$.str1, 5
85*9880d681SAndroid Build Coastguard Worker
86*9880d681SAndroid Build Coastguard Worker
87*9880d681SAndroid Build Coastguard Worker	.text
88