(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);
|
||||
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]);
|
||||
|
||||
rtx tmp;
|
||||
if (! STACK_TOP_P (operands[0]))
|
||||
@ -3612,18 +3611,14 @@ output_float_compare (insn, operands)
|
||||
strcat (buf, "p");
|
||||
|
||||
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)));
|
||||
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);
|
||||
RET;
|
||||
}
|
||||
|
@ -5955,10 +5955,13 @@
|
||||
coprocessor registers as containing a possible return value,
|
||||
simply pretend the untyped call returns a complex long double
|
||||
value. */
|
||||
/*
|
||||
emit_call_insn (TARGET_80387
|
||||
? gen_call_value (gen_rtx (REG, XCmode, FIRST_FLOAT_REG),
|
||||
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++)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user