diff options
author | Richard Henderson <rth@redhat.com> | 2002-01-26 19:42:07 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-01-26 19:42:07 -0800 |
commit | 60ffa0e5ba727cd58d9ed2df93a9bdd71465999b (patch) | |
tree | 349a1f22e403e52a334de63072851d5302803e53 /gcc | |
parent | 51584787e0dafac82d5ecab79c9ea596f33a6dc6 (diff) | |
download | gcc-60ffa0e5ba727cd58d9ed2df93a9bdd71465999b.zip gcc-60ffa0e5ba727cd58d9ed2df93a9bdd71465999b.tar.gz gcc-60ffa0e5ba727cd58d9ed2df93a9bdd71465999b.tar.bz2 |
* config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
From-SVN: r49259
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/cris/cris.c | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6a374c..57fd4b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2002-01-26 Richard Henderson <rth@redhat.com> + * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT. + +2002-01-26 Richard Henderson <rth@redhat.com> + * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too. (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs. diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 8d2afa8..480b59c 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -1363,8 +1363,11 @@ cris_print_operand (file, x, code) switch (GET_CODE (operand)) { case CONST_INT: - /* Sign-extension from a normal int to a long long. */ - fprintf (file, INTVAL (operand) < 0 ? "-1" : "0"); + if (HOST_BITS_PER_WIDE_INT == 32) + /* Sign-extension from a normal int to a long long. */ + fprintf (file, INTVAL (operand) < 0 ? "-1" : "0"); + else + fprintf (file, "0x%x", (unsigned int)(INTVAL (x) >> 31 >> 1)); return; case CONST_DOUBLE: @@ -1447,8 +1450,13 @@ cris_print_operand (file, x, code) fprintf (file, "0x%x", CONST_DOUBLE_LOW (x)); return; } - /* If not a CONST_DOUBLE, the least significant part equals the - normal part, so handle it normally. */ + else if (HOST_BITS_PER_WIDE_INT > 32 && GET_CODE (operand) == CONST_INT) + { + fprintf (file, "0x%x", (unsigned int)(INTVAL (x) & 0xffffffff)); + return; + } + /* Otherwise the least significant part equals the normal part, + so handle it normally. */ break; case 'A': |