diff options
author | Michael Meissner <meissner@cygnus.com> | 1998-05-07 14:39:02 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 1998-05-07 14:39:02 +0000 |
commit | a1b5a7e19329695ee7cfde2f262060d81c511c45 (patch) | |
tree | b4480ba98614a829eb3acf92fe3c401dc0b1eaa5 /gcc | |
parent | 3474f46290510e6238e03e61d499afa14a5376e9 (diff) | |
download | gcc-a1b5a7e19329695ee7cfde2f262060d81c511c45.zip gcc-a1b5a7e19329695ee7cfde2f262060d81c511c45.tar.gz gcc-a1b5a7e19329695ee7cfde2f262060d81c511c45.tar.bz2 |
Restore LR in case __eabi was called multiple times
From-SVN: r19612
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/eabi.asm | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 36d43c0..a772a8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu May 7 17:38:03 1998 Michael Meissner <meissner@cygnus.com> + + * r6000/eabi.asm (__eabi): Restore LR in case __eabi is called + multiple times. + Thu May 7 14:26:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * aclocal.m4 (GCC_FUNC_VFPRINTF_DOPRNT): New macro. diff --git a/gcc/config/rs6000/eabi.asm b/gcc/config/rs6000/eabi.asm index f7bbeb2..60bcfe2 100644 --- a/gcc/config/rs6000/eabi.asm +++ b/gcc/config/rs6000/eabi.asm @@ -152,6 +152,7 @@ FUNC_START(__eabi) subf. 12,12,11 /* calculate difference */ lwzx 9,10,12 /* done flag */ cmplwi 2,9,0 /* init flag != 0? */ + mtlr 0 /* restore in case branch was taken */ bnelr 2 /* return now, if we've been called already */ stwx 1,10,12 /* store a non-zero value in the done flag */ beq+ 0,.Lsdata /* skip if we don't need to relocate */ |