diff options
author | Andrew Haley <aph@cygnus.com> | 1999-07-26 12:19:16 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 1999-07-26 12:19:16 +0000 |
commit | 63063278a7c7e2bdd42d790462e26ed60572fa33 (patch) | |
tree | 4b5150dab3c6c4db5da5a9f2ef6bce4bc7d3738a /gcc | |
parent | dd18ae5606550f3abcc694e9cf482ed5941dd8d7 (diff) | |
download | gcc-63063278a7c7e2bdd42d790462e26ed60572fa33.zip gcc-63063278a7c7e2bdd42d790462e26ed60572fa33.tar.gz gcc-63063278a7c7e2bdd42d790462e26ed60572fa33.tar.bz2 |
initfini.c (__init): Use a full word immediate for __fini...
1999-07-26 Andrew Haley <aph@cygnus.com>
* config/m32r/initfini.c (__init): Use a full word immediate for
__fini: this allows it to be placed in any memory region.
* config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
-mmodel=medium. This is OK for all memory models.
From-SVN: r28266
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/m32r/initfini.c | 3 | ||||
-rw-r--r-- | gcc/config/m32r/t-m32r | 4 |
3 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2b5ce97..6b34124 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +1999-07-26 Andrew Haley <aph@cygnus.com> + + * config/m32r/initfini.c (__init): Use a full word immediate for + __fini: this allows it to be placed in any memory region. + + * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for + -mmodel=medium. This is OK for all memory models. + Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com> * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r. diff --git a/gcc/config/m32r/initfini.c b/gcc/config/m32r/initfini.c index 5144427..4198e57 100644 --- a/gcc/config/m32r/initfini.c +++ b/gcc/config/m32r/initfini.c @@ -88,7 +88,8 @@ __init:\n\ push fp\n\ push lr\n\ mv fp,sp\n\ - ld24 r0,#__fini\n\ + seth r0, #shigh(__fini)\n\ + add3 r0, r0, #low(__fini)\n\ bl atexit\n\ .fillinsn\n\ "); diff --git a/gcc/config/m32r/t-m32r b/gcc/config/m32r/t-m32r index 3d8da58..4b8f417 100644 --- a/gcc/config/m32r/t-m32r +++ b/gcc/config/m32r/t-m32r @@ -32,12 +32,12 @@ CRTSTUFF_T_CFLAGS = crtinit.o: $(srcdir)/config/m32r/initfini.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_INIT -finhibit-size-directive -fno-inline-functions \ - -g0 -c $(srcdir)/config/m32r/initfini.c -o crtinit.o + -g0 -mmodel=medium -c $(srcdir)/config/m32r/initfini.c -o crtinit.o crtfini.o: $(srcdir)/config/m32r/initfini.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_FINI -finhibit-size-directive -fno-inline-functions \ - -g0 -c $(srcdir)/config/m32r/initfini.c -o crtfini.o + -g0 -mmodel=medium -c $(srcdir)/config/m32r/initfini.c -o crtfini.o # -mmodel={small,medium} requires separate libraries. |