diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c804c892ba3a6185e840d1245146266671fd0af2..066519f751c5e5870358d8f4ece0e1bb33fa2ca5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2000-08-11 Richard Henderson <rth@cygnus.com> + + * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode. + 2000-08-11 Mark Elbrecht <snowball3@bigfoot.com> * gcc.texi (The Configuration File): Document diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 23a27b85e78152ba31c730ffbd49dca6afc5a2ce..11913308c22df791cef94120b3f8d8517da581af 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -300,15 +300,12 @@ extern const char *ia64_fixed_range_string; /* A macro to update MODE and UNSIGNEDP when an object whose type is TYPE and which has the specified mode and signedness is to be stored in a register. This macro is only called when TYPE is a scalar type. */ - -/* ??? Maybe sign-extend 32 bit values like the alpha? Or maybe zero-extend - because we only have zero-extending loads? */ #define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \ do \ { \ if (GET_MODE_CLASS (MODE) == MODE_INT \ - && GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \ - (MODE) = DImode; \ + && GET_MODE_SIZE (MODE) < 4) \ + (MODE) = SImode; \ } \ while (0)