Commit 21302ab0 by Torbjorn Granlund

(singlemove_string): Make case with SFmode CONST_DOUBLE abort.

(print_operand): #ifdef out CONST_DOUBLE cases.

From-SVN: r8847
parent 925cf581
...@@ -1046,6 +1046,11 @@ singlemove_string (operands) ...@@ -1046,6 +1046,11 @@ singlemove_string (operands)
else if (GET_CODE (operands[1]) == CONST_DOUBLE else if (GET_CODE (operands[1]) == CONST_DOUBLE
&& GET_MODE (operands[1]) == SFmode) && GET_MODE (operands[1]) == SFmode)
{ {
abort ();
#if 0
/* Switched off since it is wrong, and should never really be used
anyway. If we want to switch this on again, we have to make it use
the REAL_ARITHMETIC stuff. */
int i; int i;
union real_extract u; union real_extract u;
union float_extract { float f; int i; } v; union float_extract { float f; int i; } v;
...@@ -1072,6 +1077,7 @@ singlemove_string (operands) ...@@ -1072,6 +1077,7 @@ singlemove_string (operands)
} }
else else
return "ldil L'%1,%0\n\tldo R'%1(%0),%0"; return "ldil L'%1,%0\n\tldo R'%1(%0),%0";
#endif
} }
else if (GET_CODE (operands[1]) == CONST_INT) else if (GET_CODE (operands[1]) == CONST_INT)
...@@ -3091,6 +3097,12 @@ print_operand (file, x, code) ...@@ -3091,6 +3097,12 @@ print_operand (file, x, code)
break; break;
} }
} }
#if 0
/* The code here is completely wrong. It attempts to extract parts of
a CONST_DOUBLE which is wrong since REAL_ARITHMETIC is defined, and it
extracts the wrong indices (0 instead of 2 and 1 instead of 3) using
the wrong macro (XINT instead of XWINT).
Just disable it for now, since the code will never be used anyway! */
else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) == SFmode) else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) == SFmode)
{ {
union { double d; int i[2]; } u; union { double d; int i[2]; } u;
...@@ -3108,6 +3120,7 @@ print_operand (file, x, code) ...@@ -3108,6 +3120,7 @@ print_operand (file, x, code)
u.i[0] = XINT (x, 0); u.i[1] = XINT (x, 1); u.i[0] = XINT (x, 0); u.i[1] = XINT (x, 1);
fprintf (file, "0r%.20g", u.d); fprintf (file, "0r%.20g", u.d);
} }
#endif
else else
output_addr_const (file, x); output_addr_const (file, x);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment