fr30.md (movsf_constant_store): Move code to detect 0.0 into fr30.c.
* 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. From-SVN: r59349
This commit is contained in:
parent
4d938a0912
commit
3d5ee65b2e
@ -1,3 +1,12 @@
|
||||
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
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
@ -39,6 +39,7 @@ extern int low_register_operand PARAMS ((rtx, Mmode));
|
||||
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 */
|
||||
|
@ -951,6 +951,20 @@ fr30_check_multiple_regs (operands, num_operands, descending)
|
||||
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 */
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
;; 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.
|
||||
@ -571,14 +571,9 @@
|
||||
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];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user