(untyped_call) Avoid SIGFPE.
From-SVN: r12610
This commit is contained in:
parent
66050251ac
commit
88b1b95551
@ -3562,7 +3562,6 @@ output_float_compare (insn, operands)
|
|||||||
rtx body = XVECEXP (PATTERN (insn), 0, 0);
|
rtx body = XVECEXP (PATTERN (insn), 0, 0);
|
||||||
int unordered_compare = GET_MODE (SET_SRC (body)) == CCFPEQmode;
|
int unordered_compare = GET_MODE (SET_SRC (body)) == CCFPEQmode;
|
||||||
int target_fcomi = TARGET_CMOVE && STACK_REG_P (operands[1]);
|
int target_fcomi = TARGET_CMOVE && STACK_REG_P (operands[1]);
|
||||||
int target_fcomi = TARGET_CMOVE && STACK_REG_P (operands[1]);
|
|
||||||
|
|
||||||
rtx tmp;
|
rtx tmp;
|
||||||
if (! STACK_TOP_P (operands[0]))
|
if (! STACK_TOP_P (operands[0]))
|
||||||
@ -3612,18 +3611,14 @@ output_float_compare (insn, operands)
|
|||||||
strcat (buf, "p");
|
strcat (buf, "p");
|
||||||
|
|
||||||
if (NON_STACK_REG_P (operands[1]))
|
if (NON_STACK_REG_P (operands[1]))
|
||||||
else if (target_fcomi)
|
|
||||||
{
|
|
||||||
rtx xops[] = {operands[0], operands[1], operands[0]};
|
|
||||||
|
|
||||||
output_asm_insn (strcat (buf, AS2 (%z1,%y1,%2)), xops);
|
|
||||||
RET;
|
|
||||||
}
|
|
||||||
output_op_from_reg (operands[1], strcat (buf, AS1 (%z0,%1)));
|
output_op_from_reg (operands[1], strcat (buf, AS1 (%z0,%1)));
|
||||||
else if (target_fcomi)
|
else if (target_fcomi)
|
||||||
{
|
{
|
||||||
rtx xops[] = {operands[0], operands[1], operands[0]};
|
rtx xops[3];
|
||||||
|
|
||||||
|
xops[0] = operands[0];
|
||||||
|
xops[1] = operands[1];
|
||||||
|
xops[2] = operands[0];
|
||||||
output_asm_insn (strcat (buf, AS2 (%z1,%y1,%2)), xops);
|
output_asm_insn (strcat (buf, AS2 (%z1,%y1,%2)), xops);
|
||||||
RET;
|
RET;
|
||||||
}
|
}
|
||||||
|
@ -5955,10 +5955,13 @@
|
|||||||
coprocessor registers as containing a possible return value,
|
coprocessor registers as containing a possible return value,
|
||||||
simply pretend the untyped call returns a complex long double
|
simply pretend the untyped call returns a complex long double
|
||||||
value. */
|
value. */
|
||||||
|
/*
|
||||||
emit_call_insn (TARGET_80387
|
emit_call_insn (TARGET_80387
|
||||||
? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
|
? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
|
||||||
operands[0], const0_rtx)
|
operands[0], const0_rtx)
|
||||||
: gen_call (operands[0], const0_rtx));
|
: gen_call (operands[0], const0_rtx));
|
||||||
|
*/
|
||||||
|
emit_call_insn (gen_call (operands[0], const0_rtx, NULL, const0_rtx));
|
||||||
|
|
||||||
for (i = 0; i < XVECLEN (operands[2], 0); i++)
|
for (i = 0; i < XVECLEN (operands[2], 0); i++)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user