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