diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.h | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 44abe5f..b66687d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -3,6 +3,9 @@ * config/sparc/sparc.c (ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix. + * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits + if TARGET_ARCH32. + 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br> * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index c051c78..1a44547 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -1440,7 +1440,8 @@ extern char leaf_reg_remap[]; /* 13 bit immediate, considering only the low 32 bits */ #define SMALL_INT32(X) (SPARC_SIMM13_P ((int)INTVAL (X) & 0xffffffff)) #define SPARC_SETHI_P(X) \ -(((unsigned HOST_WIDE_INT) (X) & ~(unsigned HOST_WIDE_INT) 0xfffffc00) == 0) +(((unsigned HOST_WIDE_INT) (X) & \ + (TARGET_ARCH64 ? ~(unsigned HOST_WIDE_INT) 0xfffffc00 : 0x3ff)) == 0) #define CONST_OK_FOR_LETTER_P(VALUE, C) \ ((C) == 'I' ? SPARC_SIMM13_P (VALUE) \ |