* config/fr30/fr30-protos.h (fr30_const_double_is_zero): Prototype.
* config/fr30/fr30.c (fr30_const_double_is_zero): New function. Return true if the rtx is 0.0.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59349
138bc75d-0d04-0410-961f-
82ee72b054a4
+2002-11-21 Nick Clifton <nickc@redhat.com>
+
+ * config/fr30/fr30.md (movsf_constant_store): Move code to
+ detect 0.0 into fr30.c.
+ * config/fr30/fr30-protos.h (fr30_const_double_is_zero):
+ Prototype.
+ * config/fr30/fr30.c (fr30_const_double_is_zero): New
+ function. Return true if the rtx is 0.0.
+
2002-11-21 Jason Thorpe <thorpej@wasabisystems.com>
* config/arm/elf.h (ASM_SPEC, LINK_SPEC): Pass -EL
/* Prototypes for fr30.c functions used in the md file & elsewhere.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
This file is part of GNU CC.
extern int call_operand PARAMS ((rtx, Mmode));
extern int di_operand PARAMS ((rtx, Mmode));
extern int nonimmediate_di_operand PARAMS ((rtx, Mmode));
+extern int fr30_const_double_is_zero PARAMS ((rtx));
#undef Mmode
#endif /* HAVE_MACHINE_MODES */
#endif /* RTX_CODE */
return 1;
}
+int
+fr30_const_double_is_zero (operand)
+ rtx operand;
+{
+ REAL_VALUE_TYPE d;
+
+ if (operand == NULL || GET_CODE (operand) != CONST_DOUBLE)
+ return 0;
+
+ REAL_VALUE_FROM_CONST_DOUBLE (d, operand);
+
+ return REAL_VALUES_EQUAL (d, dconst0);
+}
+
/*}}}*/
/*{{{ Instruction Output Routines */
;; FR30 machine description.
-;; Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
;; Contributed by Cygnus Solutions.
;; This file is part of GNU CC.
const char * ldi_instr;
const char * tmp_reg;
static char buffer[100];
- REAL_VALUE_TYPE d;
- REAL_VALUE_FROM_CONST_DOUBLE (d, operands[1]);
-
- if (REAL_VALUES_EQUAL (d, dconst0))
- ldi_instr = \"ldi:8\";
- else
- ldi_instr = \"ldi:32\";
+ ldi_instr = fr30_const_double_is_zero (operands[1])
+ ? ldi_instr = \"ldi:8\" : \"ldi:32\";
tmp_reg = reg_names [COMPILER_SCRATCH_REGISTER];