xref: /aosp_15_r20/external/llvm/test/MC/Mips/elf-N64.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj -triple=mips64el-pc-linux -mcpu=mips64  %s -o - | llvm-readobj -r | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -filetype=obj -triple=mips64-pc-linux -mcpu=mips64  %s -o - | llvm-readobj -r | FileCheck %s
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker// Check for N64 relocation production.
5*9880d681SAndroid Build Coastguard Worker// Check that the appropriate relocations were created.
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker// CHECK: Relocations [
8*9880d681SAndroid Build Coastguard Worker// CHECK:   0x{{[0-9,A-F]+}} R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16
9*9880d681SAndroid Build Coastguard Worker// CHECK:   0x{{[0-9,A-F]+}} R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16
10*9880d681SAndroid Build Coastguard Worker// CHECK:   0x{{[0-9,A-F]+}} R_MIPS_GOT_PAGE/R_MIPS_NONE/R_MIPS_NONE
11*9880d681SAndroid Build Coastguard Worker// CHECK:   0x{{[0-9,A-F]+}} R_MIPS_GOT_OFST/R_MIPS_NONE/R_MIPS_NONE
12*9880d681SAndroid Build Coastguard Worker// CHECK: ]
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker	.text
16*9880d681SAndroid Build Coastguard Worker	.abicalls
17*9880d681SAndroid Build Coastguard Worker	.section	.mdebug.abi64,"",@progbits
18*9880d681SAndroid Build Coastguard Worker	.file	"/home/espindola/llvm/llvm/test/MC/Mips/elf-N64.ll"
19*9880d681SAndroid Build Coastguard Worker	.text
20*9880d681SAndroid Build Coastguard Worker	.globl	main
21*9880d681SAndroid Build Coastguard Worker	.align	3
22*9880d681SAndroid Build Coastguard Worker	.type	main,@function
23*9880d681SAndroid Build Coastguard Worker	.set	nomips16
24*9880d681SAndroid Build Coastguard Worker	.ent	main
25*9880d681SAndroid Build Coastguard Workermain:                                   # @main
26*9880d681SAndroid Build Coastguard Worker	.frame	$sp,16,$ra
27*9880d681SAndroid Build Coastguard Worker	.mask 	0x00000000,0
28*9880d681SAndroid Build Coastguard Worker	.fmask	0x90000000,-4
29*9880d681SAndroid Build Coastguard Worker	.set	noreorder
30*9880d681SAndroid Build Coastguard Worker	.set	nomacro
31*9880d681SAndroid Build Coastguard Worker	.set	noat
32*9880d681SAndroid Build Coastguard Worker# BB#0:                                 # %entry
33*9880d681SAndroid Build Coastguard Worker	daddiu	$sp, $sp, -16
34*9880d681SAndroid Build Coastguard Worker	sd	$ra, 8($sp)             # 8-byte Folded Spill
35*9880d681SAndroid Build Coastguard Worker	sd	$gp, 0($sp)             # 8-byte Folded Spill
36*9880d681SAndroid Build Coastguard Worker	lui	$1, %hi(%neg(%gp_rel(main)))
37*9880d681SAndroid Build Coastguard Worker	daddu	$1, $1, $25
38*9880d681SAndroid Build Coastguard Worker	daddiu	$gp, $1, %lo(%neg(%gp_rel(main)))
39*9880d681SAndroid Build Coastguard Worker	ld	$1, %got_page($str)($gp)
40*9880d681SAndroid Build Coastguard Worker	daddiu	$4, $1, %got_ofst($str)
41*9880d681SAndroid Build Coastguard Worker	ld	$25, %call16(puts)($gp)
42*9880d681SAndroid Build Coastguard Worker	jalr	$25
43*9880d681SAndroid Build Coastguard Worker	nop
44*9880d681SAndroid Build Coastguard Worker	addiu	$2, $zero, 0
45*9880d681SAndroid Build Coastguard Worker	ld	$gp, 0($sp)             # 8-byte Folded Reload
46*9880d681SAndroid Build Coastguard Worker	ld	$ra, 8($sp)             # 8-byte Folded Reload
47*9880d681SAndroid Build Coastguard Worker	daddiu	$sp, $sp, 16
48*9880d681SAndroid Build Coastguard Worker	jr	$ra
49*9880d681SAndroid Build Coastguard Worker	nop
50*9880d681SAndroid Build Coastguard Worker	.set	at
51*9880d681SAndroid Build Coastguard Worker	.set	macro
52*9880d681SAndroid Build Coastguard Worker	.set	reorder
53*9880d681SAndroid Build Coastguard Worker	.end	main
54*9880d681SAndroid Build Coastguard Worker$tmp0:
55*9880d681SAndroid Build Coastguard Worker	.size	main, ($tmp0)-main
56*9880d681SAndroid Build Coastguard Worker
57*9880d681SAndroid Build Coastguard Worker	.type	$str,@object            # @str
58*9880d681SAndroid Build Coastguard Worker	.section	.rodata.str1.4,"aMS",@progbits,1
59*9880d681SAndroid Build Coastguard Worker	.align	2
60*9880d681SAndroid Build Coastguard Worker$str:
61*9880d681SAndroid Build Coastguard Worker	.asciz	"hello world"
62*9880d681SAndroid Build Coastguard Worker	.size	$str, 12
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker
65*9880d681SAndroid Build Coastguard Worker	.text
66