From 24a25d457591216fd2d5f5805f44c51fb62ba603 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Thu, 30 Nov 1995 17:02:34 -0800 Subject: (from_compare): Get mode from operands instead of using SImode. From-SVN: r10659 --- gcc/config/sh/sh.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'gcc') diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index aeccf80..5f072d8 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -382,11 +382,15 @@ from_compare (operands, code) { if (code != EQ && code != NE) { + enum machine_mode mode = GET_MODE (sh_compare_op0); + if (mode == VOIDmode) + mode = GET_MODE (sh_compare_op1); + /* Force args into regs, since we can't use constants here. */ - sh_compare_op0 = force_reg (SImode, sh_compare_op0); + sh_compare_op0 = force_reg (mode, sh_compare_op0); if (sh_compare_op1 != const0_rtx || code == GTU || code == GEU || code == LTU || code == LEU) - sh_compare_op1 = force_reg (SImode, sh_compare_op1); + sh_compare_op1 = force_reg (mode, sh_compare_op1); } operands[1] = sh_compare_op0; operands[2] = sh_compare_op1; -- cgit v1.1