/* PLT trampolines.  SH version.
   Copyright (C) 2005-2018 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */

#include <sysdep.h>

	.text
	.globl _dl_runtime_resolve
	.type _dl_runtime_resolve, @function
	cfi_startproc
	.align 5
_dl_runtime_resolve:
	mov.l r2,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r3,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r4,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r5,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r6,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r7,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r12,@-r15
	cfi_adjust_cfa_offset (4)
	sts.l macl,@-r15
	cfi_adjust_cfa_offset (4)
	sts.l mach,@-r15
	cfi_adjust_cfa_offset (4)
	movt r3			! Save T flag.
	mov.l r3,@-r15
	cfi_adjust_cfa_offset (4)
#ifdef HAVE_FPU
	sts.l	fpscr,@-r15
	cfi_adjust_cfa_offset (4)
	mov	#8,r3
	swap.w	r3,r3
	lds	r3,fpscr
	fmov.s	fr11,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr10,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr9,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr8,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr7,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr6,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr5,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr4,@-r15
	cfi_adjust_cfa_offset (4)
#endif
	sts.l pr,@-r15
	cfi_adjust_cfa_offset (4)
	tst r0,r0
	bt 1f
	mov r0,r2
1:
	mov r0,r4		! PLT type
	mov r2,r5		! link map address
#ifdef SHARED
	mov.l 2f,r2
	mova 2f,r0
	add r0,r2		! Get GOT address in r2
	mov.l 3f,r0
	add r2,r0
#else
	mov.l 3f,r0
#endif
	jsr @r0			! Call resolver.
	 mov r1,r6		! reloc offset
	lds.l @r15+,pr		! Get register content back.
	cfi_adjust_cfa_offset (-4)
#ifdef HAVE_FPU
	fmov.s	@r15+,fr4
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr5
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr6
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr7
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr8
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr9
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr10
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr11
	cfi_adjust_cfa_offset (-4)
	lds.l	@r15+,fpscr
	cfi_adjust_cfa_offset (-4)
#endif
	mov.l @r15+,r3
	cfi_adjust_cfa_offset (-4)
	shal r3			! Lode T flag.
	lds.l @r15+,mach
	cfi_adjust_cfa_offset (-4)
	lds.l @r15+,macl
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r12
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r7
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r6
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r5
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r4
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r3
	cfi_adjust_cfa_offset (-4)
	jmp @r0			! Jump to function address.
	 mov.l @r15+,r2
	cfi_adjust_cfa_offset (-4)
	.align 2
#ifdef SHARED
2:	.long _GLOBAL_OFFSET_TABLE_
3:	.long _dl_fixup@GOTOFF
#else
3:	.long _dl_fixup
#endif
	cfi_endproc
	.size _dl_runtime_resolve, .-_dl_runtime_resolve


	.globl _dl_runtime_profile
	.type _dl_runtime_profile,@function
	cfi_startproc
	.align 5
_dl_runtime_profile:
	mov.l r12,@-r15
	cfi_adjust_cfa_offset (4)
#ifdef HAVE_FPU
	sts.l	fpscr,@-r15
	cfi_adjust_cfa_offset (4)
	mov	#8,r12
	swap.w	r12,r12
	lds	r12,fpscr
	fmov.s	fr11,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr10,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr9,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr8,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr7,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr6,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr5,@-r15
	cfi_adjust_cfa_offset (4)
	fmov.s	fr4,@-r15
	cfi_adjust_cfa_offset (4)
#else
	add #-36,r15
	cfi_adjust_cfa_offset (36)
#endif
	mov.l r7,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r6,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r5,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r4,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r3,@-r15
	cfi_adjust_cfa_offset (4)
	mov.l r2,@-r15
	cfi_adjust_cfa_offset (4)
	sts.l macl,@-r15
	cfi_adjust_cfa_offset (4)
	sts.l mach,@-r15
	cfi_adjust_cfa_offset (4)
	movt r3			! Save T flag.
	mov.l r3,@-r15
	cfi_adjust_cfa_offset (4)
	sts.l pr,@-r15
	cfi_adjust_cfa_offset (4)
	tst r0,r0
	bt 1f
	mov r0,r2
1:
	mov r0,r4		! PLT type
	mov r2,r5		! link map address
	sts pr,r7		! return address
	add #-24,r15
	cfi_adjust_cfa_offset (24)
	mov #40,r0
	add r15,r0
	mov.l r0,@r15		! Address of the register structure
	mov #-1,r0
	mov.l r0,@(8,r15)
	mov #8,r0
	add r15,r0
	mov.l r0,@(4,r15)
	mov.l r5,@(12,r15)
	mov.l r1,@(16,r15)
#ifdef SHARED
	mov.l 2f,r12
	mova 2f,r0
	add r0,r12		! Get GOT address in r12
	mov.l 3f,r0
	add r12,r0
#else
	mov.l 3f,r0
#endif
	jsr @r0			! Call resolver.
	 mov r1,r6		! reloc offset
	mov.l @(8,r15),r1
	cmp/pz r1
	bt 4f
	add #24,r15
	cfi_adjust_cfa_offset (-24)
	lds.l @r15+,pr		! Get register content back.
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r3
	cfi_adjust_cfa_offset (-4)
	shal r3			! Lode T flag.
	lds.l @r15+,mach
	cfi_adjust_cfa_offset (-4)
	lds.l @r15+,macl
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r2
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r3
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r4
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r5
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r6
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r7
	cfi_adjust_cfa_offset (-4)
#ifdef HAVE_FPU
	fmov.s	@r15+,fr4
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr5
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr6
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr7
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr8
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr9
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr10
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr11
	cfi_adjust_cfa_offset (-4)
	lds.l	@r15+,fpscr
	cfi_adjust_cfa_offset (-4)
#else
	add #36,r15
	cfi_adjust_cfa_offset (-36)
#endif
	jmp @r0			! Jump to function address.
	 mov.l @r15+,r12
	cfi_adjust_cfa_offset (-4)
	.align 2
#ifdef SHARED
2:	.long _GLOBAL_OFFSET_TABLE_
3:	.long _dl_profile_fixup@GOTOFF
#else
3:	.long _dl_profile_fixup
#endif

	cfi_adjust_cfa_offset (104)
4:
	mov #104,r3
	add r15,r3		! Original stack
	mov.l r8,@(20,r15)
	cfi_rel_offset (r8, 20)
	mov r15,r8
	sub r1,r15
	shlr2 r15
	shll2 r15
	mov r15,r4
	shlr2 r1
	tst r1,r1
5:
	bt/s 6f
	 dt r1
	mov.l @r3+,r2
	mov.l r2,@r4
	bra 5b
	 add #4,r4
6:
	mov.l @r8,r12
	mov.l @r12+,r2
	mov.l @r12+,r3
	mov.l @r12+,r4
	mov.l @r12+,r5
	mov.l @r12+,r6
	mov.l @r12+,r7
#ifdef HAVE_FPU
	fmov.s	@r12+,fr4
	fmov.s	@r12+,fr5
	fmov.s	@r12+,fr6
	fmov.s	@r12+,fr7
	fmov.s	@r12+,fr8
	fmov.s	@r12+,fr9
	fmov.s	@r12+,fr10
	fmov.s	@r12+,fr11
	lds.l	@r12+,fpscr
#else
	add #36,r2
#endif
	jsr @r0			! Call function.
	 nop
	mov r8,r15
	mov.l @(12,r15),r4	! link map address
	mov.l @(16,r15),r5	! reloc offset
	mov.l @r15,r6		! input registers
#ifdef HAVE_FPU
	mov #16,r8
	add r15,r8
	fmov.s fr1,@-r8
	fmov.s fr0,@-r8
#else
	mov #8,r8
	add r15,r8
#endif
	mov.l r1,@-r8
	mov.l r0,@-r8
	mov.l @(20,r15),r8
	cfi_restore (r8)
#ifdef SHARED
	mov.l 7f,r12
	mova 7f,r0
	add r0,r12		! Get GOT address in r12
	mov.l 8f,r0
	add r12,r0
#else
	mov.l 8f,r0
#endif
	jsr @r0
	 mov r15,r7		! output registers
	mov.l @r15+,r0
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r1
	cfi_adjust_cfa_offset (-4)
#ifdef HAVE_FPU
	fmov.s @r15+,fr0
	cfi_adjust_cfa_offset (-4)
	fmov.s @r15+,fr1
	cfi_adjust_cfa_offset (-4)
	add #8,r15
	cfi_adjust_cfa_offset (-8)
#else
	add #16,r15
	cfi_adjust_cfa_offset (-16)
#endif
	lds.l @r15+,pr		! Get register content back.
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r3
	cfi_adjust_cfa_offset (-4)
	shal r3			! Lode T flag.
	lds.l @r15+,mach
	cfi_adjust_cfa_offset (-4)
	lds.l @r15+,macl
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r2
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r3
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r4
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r5
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r6
	cfi_adjust_cfa_offset (-4)
	mov.l @r15+,r7
	cfi_adjust_cfa_offset (-4)
#ifdef HAVE_FPU
	fmov.s	@r15+,fr4
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr5
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr6
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr7
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr8
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr9
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr10
	cfi_adjust_cfa_offset (-4)
	fmov.s	@r15+,fr11
	cfi_adjust_cfa_offset (-4)
	lds.l	@r15+,fpscr
	cfi_adjust_cfa_offset (-4)
#else
	add #36,r15
	cfi_adjust_cfa_offset (-36)
#endif
	rts			! Jump to function address.
	 mov.l @r15+,r12
	cfi_adjust_cfa_offset (-4)
	cfi_endproc
	.align 2
#ifdef SHARED
7:	.long _GLOBAL_OFFSET_TABLE_
8:	.long _dl_call_pltexit@GOTOFF
#else
8:	.long _dl_call_pltexit
#endif
	.size _dl_runtime_profile, .-_dl_runtime_profile
