]> gcc.gnu.org Git - gcc.git/commitdiff
(untyped_call) Avoid SIGFPE.
authorStan Cox <coxs@gnu.org>
Fri, 9 Aug 1996 20:51:08 +0000 (20:51 +0000)
committerStan Cox <coxs@gnu.org>
Fri, 9 Aug 1996 20:51:08 +0000 (20:51 +0000)
From-SVN: r12610

gcc/config/i386/i386.c
gcc/config/i386/i386.md

index 8a84fe198fa39cffda2fc1edf73862d4c409684d..2eaee7d575e0087f366fc9f8f1507c1e0df5b685 100644 (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;
        }
index e9cc5d5cbddbf5238df29901279abb294a92f09a..96bdac51bd6fa0c19aa391890081f093d2e59414 100644 (file)
      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++)
     {
This page took 0.089383 seconds and 5 git commands to generate.