# Check GNU-specific embedded relocs, for ELF.

	.text
	.set noreorder
	nop
l2:	jal	g1		# R_MIPS_GNU_REL16_S2	g1   -1
	nop
	b	g2		# R_MIPS_GNU_REL16_S2	g2   -1
	nop
	b	g2		# R_MIPS_GNU_REL16_S2	g2   -1
	nop
	jal	l1		# R_MIPS_GNU_REL16_S2	.foo 3F
	nop
	jal	l2		# R_MIPS_GNU_REL16_S2	.text 0  or -9
	nop
	b	l1+8		# R_MIPS_GNU_REL16_S2	.foo 41
	nop
l3:
	b	l2		# R_MIPS_GNU_REL16_S2	.text 0  or -D
	nop
	la	$3,g1-l3	# R_MIPS_GNU_REL_HI16   g1   0
				# R_MIPS_GNU_REL_LO16   g1   C
	la	$3,l1-l3	# R_MIPS_GNU_REL_HI16   .foo 0
				# R_MIPS_GNU_REL_LO16   .foo 114
	la	$3,l2-l3	# -30
	.word	g1		# R_MIPS_32	g1    0
	.word	l1		# R_MIPS_32	.foo  100
	.word	l2		# R_MIPS_32	.text 4
	.word	g1-l3		# R_MIPS_PC32	g1    28
	.word	l1-l3		# R_MIPS_PC32	.foo  12C
	.word	l2-l3		# -30
	.align 3
	.dword	g1		# R_MIPS_64	g1    0
	.dword	l1		# R_MIPS_64	.foo  100
	.dword	l2		# R_MIPS_64	.text 4
	.dword	g1-l3		# R_MIPS_PC64	g1    4C
	.dword	l1-l3		# R_MIPS_PC64	.foo  154
	.dword	l2-l3		# -30
l5:
	b	2f		# R_MIPS_GNU_REL16_S2	.text 32
	b	2f+4		# R_MIPS_GNU_REL16_S2	.text 33
	la	$3,2f-l5	# R_MIPS_GNU_REL_HI16	.text 0
	                        # R_MIPS_GNU_REL_LO16   .text D8
	la	$3,2f+8-l5	# R_MIPS_GNU_REL_HI16	.text 0
	                        # R_MIPS_GNU_REL_LO16   .text E8


	.word	2f		# R_MIPS_32	.text CC
	.word	2f-l5		# R_MIPS_PC32	.text EC  or 34
	.dword	2f		# R_MIPS_64	.text CC
	.dword	2f-l5		# R_MIPS_PC64	.text F8  or 34
	nop
2:				# at address 0xCC.
	b	2b		# R_MIPS_GNU_REL16_S2	.text 32
	b	2b+4		# R_MIPS_GNU_REL16_S2	.text 33
	la      $3,2b-l5        # 34
	la      $3,2b+8-l5      # 3C
	.word	2b		# R_MIPS_32	.text CC
	.word	2b-l5		# R_MIPS_PC32	.text 11C  or 34
	nop
	.dword	2b		# R_MIPS_64	.text CC
	.dword	2b-l5		# R_MIPS_PC64	.text 98  or 34

# align section end to 16-byte boundary for easier testing on multiple targets
	.p2align 4

	.section ".foo","ax",@progbits
	nop
l4:	
	la	$3,g1-l4
	la	$3,l1-l4
	la	$3,l2-l4
	la	$3,g1-l4

	dla	$3,g1-l4
	dla	$3,l1-l4
	dla	$3,l2-l4

	.word	g1
	.word	l1
	.word	l2
	.word	g1-l4
	.word	l1-l4
	.word	l2-l4
	.dword	g1
	.dword	l1
	.dword	l2
	.dword	g1-l4
	.dword	l1-l4
	.dword	l2-l4

	la	$3,g1-l4+4
	la	$3,l1-l4+4
	la	$3,l2-l4+4

	dla	$3,g1-l4+4
	dla	$3,l1-l4+4
	dla	$3,l2-l4+4

	.word	g1+4
	.word	l1+4
	.word	l2+4
	.word	g1-l4+4
	.word	l1-l4+4
	.word	l2-l4+4
	.dword	g1+4
	.dword	l1+4
	.dword	l2+4
	.dword	g1-l4+4
	.dword	l1-l4+4
	.dword	l2-l4+4
l1:

	nop

# align section end to 16-byte boundary for easier testing on multiple targets
	.p2align 4
