sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits if TARGET_ARCH32.
authorJakub Jelinek <jakub@redhat.com>
Wed, 8 Dec 1999 15:28:00 +0000 (16:28 +0100)
committerDavid S. Miller <davem@gcc.gnu.org>
Wed, 8 Dec 1999 15:28:00 +0000 (07:28 -0800)
* config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
if TARGET_ARCH32.

From-SVN: r30833

gcc/ChangeLog
gcc/config/sparc/sparc.h

index 44abe5f0a1bca73b5662ea474e56a298d373fe2d..b66687dc452e524fe0b38250b625bcc1a0249952 100644 (file)
@@ -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
index c051c7848e2524f22c173d9358c2f9fc72448ada..1a44547a0489ee14da39b2b79c44bc41dece8b5e 100644 (file)
@@ -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)                 \