diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2002-07-31 08:55:57 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2002-07-31 08:55:57 +0000 |
commit | 302359da8665c7293042fdd1f2f4207c1ffc453d (patch) | |
tree | f656347de36eddfa0f4267e90c1335be4eb3069d | |
parent | ead0c1d554e1292d5da0c2cc81e8999e0fd91a78 (diff) | |
download | gcc-302359da8665c7293042fdd1f2f4207c1ffc453d.zip gcc-302359da8665c7293042fdd1f2f4207c1ffc453d.tar.gz gcc-302359da8665c7293042fdd1f2f4207c1ffc453d.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/mips/crtn.asm | 34 |
2 files changed, 18 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46eb1da..ff553ab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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'. diff --git a/gcc/config/mips/crtn.asm b/gcc/config/mips/crtn.asm index 54ab2a5..5d41d3d 100644 --- a/gcc/config/mips/crtn.asm +++ b/gcc/config/mips/crtn.asm @@ -1,39 +1,29 @@ /* 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 + |