From 60ffa0e5ba727cd58d9ed2df93a9bdd71465999b Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 26 Jan 2002 19:42:07 -0800 Subject: [PATCH] * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT. From-SVN: r49259 --- gcc/ChangeLog | 4 ++++ gcc/config/cris/cris.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6a374cdf9e..57fd4b96403 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-01-26 Richard Henderson + + * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT. + 2002-01-26 Richard Henderson * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too. diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 8d2afa82d06..480b59cb563 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': -- 2.30.2