Commit 302359da by Richard Sandiford Committed by Richard Sandiford

crtn.asm: Don't use __mips16 to determine the return-address offset.

	* config/mips/crtn.asm: Don't use __mips16 to determine the
	return-address offset.  Define RA to a suitable temporary
	register for the return address.

From-SVN: r55903
parent ead0c1d5
2002-07-31 Richard Sandiford <rsandifo@redhat.com>
* config/mips/crtn.asm: Don't use __mips16 to determine the
return-address offset. Define RA to a suitable temporary
register for the return address.
2002-07-31 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.md (eh_set_lr_si, eh_set_lr_di): Change
constraints to 'd'.
......
/* 4 slots for argument spill area. 1 for cpreturn, 1 for stack.
Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */
.section .init,"ax",@progbits
#ifdef __mips16
/* The mips16 uses $7 for a return address. We use that here too. */
lw $7,20($sp)
addu $sp,$sp,32
j $7
#define RA $7
#else
#define RA $31
#endif
.section .init,"ax",@progbits
#ifdef __mips64
ld $31,40($sp)
ld RA,40($sp)
daddu $sp,$sp,48
#else
lw $31,20($sp)
lw RA,20($sp)
addu $sp,$sp,32
#endif
j $31
#endif
j RA
.section .fini,"ax",@progbits
#ifdef __mips16
/* The mips16 uses $7 for a return address. We use that here too. */
lw $7,20($sp)
addu $sp,$sp,32
j $7
#else
#ifdef __mips64
ld $31,40($sp)
ld RA,40($sp)
daddu $sp,$sp,48
#else
lw $31,20($sp)
lw RA,20($sp)
addu $sp,$sp,32
#endif
j $31
#endif
j RA
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment