From 82d8cc5a77f517fe78ba6290d4b2f58a563ace37 Mon Sep 17 00:00:00 2001 From: rth Date: Sun, 27 Jan 2002 03:42:07 +0000 Subject: [PATCH] * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49259 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 b6a374c..57fd4b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 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. (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': -- 2.7.4