+2007-11-03 David S. Miller <davem@davemloft.net>
+
+ * sparc/sparc-codegen.h (sparc_set32, sparc_set): A plain sethi
+ can be used if the constant value only has the top 22 bits set.
+
2007-11-01 Geoff Norton <gnorton@novell.com>
* x86/Makefile.am: Only compile tramp.c if INTERP_SUPPORTED is true
do { \
if ((val) == 0) \
sparc_clr_reg((ins),(reg)); \
- else if (((guint32)(val) & 0x1fff) == 0) \
+ else if (((guint32)(val) & 0x3ff) == 0) \
sparc_sethi((ins),(guint32)(val),(reg)); \
else if (((gint32)(val) >= -4096) && ((gint32)(val) <= 4095)) \
sparc_or_imm((ins),FALSE,sparc_g0,(gint32)(val),(reg)); \
else if ((val >= -4096) && ((val) <= 4095)) \
sparc_or_imm((ins),FALSE,sparc_g0,bottom_word,(reg)); \
else if ((val >= 0) && (val <= 4294967295L)) { \
- sparc_sethi((ins),bottom_word,(reg)); \
+ sparc_sethi((ins),bottom_word,(reg)); \
+ if (bottom_word & 0x3ff) \
sparc_or_imm((ins),FALSE,(reg),bottom_word&0x3ff,(reg)); \
} \
else if ((val >= 0) && (val <= (1L << 44) - 1)) { \
do { \
if ((val) == 0) \
sparc_clr_reg((ins),(reg)); \
- else if (((guint32)(val) & 0x1fff) == 0) \
+ else if (((guint32)(val) & 0x3ff) == 0) \
sparc_sethi((ins),(guint32)(val),(reg)); \
else if (((gint32)(val) >= -4096) && ((gint32)(val) <= 4095)) \
sparc_or_imm((ins),FALSE,sparc_g0,(gint32)(val),(reg)); \