From e601abce765f2da080c862bddda1bfa767a35723 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Thu, 31 Dec 1992 14:24:49 -0800 Subject: [PATCH] (print_operand): For invalid operands, call output_operand_lossage instead of aborting. From-SVN: r3027 --- gcc/config/sparc/sparc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 1a50fbcf501..97ab72cab4a 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -2814,7 +2814,9 @@ print_operand (file, x, code) output_addr_const (file, XEXP (x, 1)); fputc (')', file); } - else if (GET_CODE (x) == CONST_DOUBLE) + else if (GET_CODE (x) == CONST_DOUBLE + && (GET_MODE (x) == VOIDmode + || GET_MODE_CLASS (GET_MODE (x)) == MODE_INT)) { if (CONST_DOUBLE_HIGH (x) == 0) fprintf (file, "%u", CONST_DOUBLE_LOW (x)); @@ -2822,8 +2824,10 @@ print_operand (file, x, code) && CONST_DOUBLE_LOW (x) < 0) fprintf (file, "%d", CONST_DOUBLE_LOW (x)); else - abort (); + output_operand_lossage ("long long constant not a valid immediate operand"); } + else if (GET_CODE (x) == CONST_DOUBLE) + output_operand_lossage ("floating point constant not a valid immediate operand"); else { output_addr_const (file, x); } } -- 2.30.2