(untyped_call) Avoid SIGFPE.

From-SVN: r12610
This commit is contained in:
Stan Cox 1996-08-09 20:51:08 +00:00
parent 66050251ac
commit 88b1b95551
2 changed files with 7 additions and 9 deletions

View File

@ -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;
}

View File

@ -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++)
{