diff options
| author | cpopetz <cpopetz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-04 11:52:08 +0000 |
|---|---|---|
| committer | cpopetz <cpopetz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-08-04 11:52:08 +0000 |
| commit | 8cd20a21a0ea0610ed635b2000b0c7294415901c (patch) | |
| tree | c77879c83ef860d7773982e2d871694160d594e7 | |
| parent | 85895852fcc5d527469c410586108f79a338b62b (diff) | |
| download | ppe42-gcc-8cd20a21a0ea0610ed635b2000b0c7294415901c.tar.gz ppe42-gcc-8cd20a21a0ea0610ed635b2000b0c7294415901c.zip | |
* (mips_legitimate_address_p): Don't allow register+offset
if the offset is large and negative, and we are compiling
for 64 bit registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35477 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/config/mips/mips.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb6cdc005a4..5c8f92062ee 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Fri Aug 4 06:53:46 2000 Clinton Popetz <cpopetz@cygnus.com> + + * (mips_legitimate_address_p): Don't allow register+offset + if the offset is large and negative, and we are compiling + for 64 bit registers. + 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> * gencodes.c (main): Define CODE_FOR_nothing as the last possible diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index e9258ba1e8f..f4d0d12f497 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -1329,6 +1329,10 @@ mips_legitimate_address_p (mode, xinsn, strict) && (!TARGET_EMBEDDED_PIC || code1 != CONST || GET_CODE (XEXP (xplus1, 0)) != MINUS) + /* When assembling for machines with 64 bit registers, + the assembler will not sign-extend the constant "foo" + in "la x, foo(x)" */ + && (!TARGET_64BIT || (INTVAL (xplus1) > 0)) && !TARGET_MIPS16) return 1; } |

