From: Richard Earnshaw Date: Thu, 27 Nov 1997 16:35:21 +0000 (+0000) Subject: arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid. X-Git-Tag: releases/egcs-1.0.0~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=15994d38d5c9d7f3986e3724582c51f9135c9836;p=thirdparty%2Fgcc.git arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid. * arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] valid. From-SVN: r16797 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f9d6aaf21382..74262c8f1883 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Nov 27 09:32:39 1997 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (movsfcc): If not TARGET_HARD_FLOAT, ensure operand[3] + valid. + Wed Nov 26 13:04:46 1997 Michael Meissner * rs6000.c (SMALL_DATA_REG): Register to use for small data relocs. diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md index afc2794ea1e3..f2987403a213 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -3874,8 +3874,14 @@ " { enum rtx_code code = GET_CODE (operands[1]); - rtx ccreg = gen_compare_reg (code, arm_compare_op0, arm_compare_op1, - arm_compare_fp); + rtx ccreg; + + /* When compiling for SOFT_FLOAT, ensure both arms are in registers. */ + if (! TARGET_HARD_FLOAT) + operands[3] = force_reg (SFmode, operands[3]); + + ccreg = gen_compare_reg (code, arm_compare_op0, arm_compare_op1, + arm_compare_fp); operands[1] = gen_rtx (code, VOIDmode, ccreg, const0_rtx); }")