2000-05-20 Alexandre Oliva <aoliva@cygnus.com>
+ * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
+ * config/mn10300/mn10300.c (print_operand): Likewise.
+
* final.c (split_double): Right shift of negative values is not
portable.
}
case CONST_INT:
- print_operand_address (file, x);
- break;
+ {
+ rtx low, high;
+ split_double (x, &low, &high);
+ fprintf (file, "%ld", (long)INTVAL (low));
+ break;
+ }
default:
abort ();
}
case CONST_INT:
- if (INTVAL (x) < 0)
- print_operand_address (file, GEN_INT (-1));
- else
- print_operand_address (file, GEN_INT (0));
- break;
+ {
+ rtx low, high;
+ split_double (x, &low, &high);
+ fprintf (file, "%ld", (long)INTVAL (high));
+ break;
+ }
+
default:
abort ();
}
case 11:
if (GET_CODE (operands[1]) == CONST_INT)
{
- val[0] = INTVAL (operands[1]);
- val[1] = val[0] < 0 ? -1 : 0;
+ rtx low, high;
+ split_double (operands[1], &low, &high);
+ val[0] = INTVAL (low);
+ val[1] = INTVAL (high);
}
if (GET_CODE (operands[1]) == CONST_DOUBLE)
{
case 11:
if (GET_CODE (operands[1]) == CONST_INT)
{
- val[0] = INTVAL (operands[1]);
- val[1] = val[0] < 0 ? -1 : 0;
+ rtx low, high;
+ split_double (operands[1], &low, &high);
+ val[0] = INTVAL (low);
+ val[1] = INTVAL (high);
}
if (GET_CODE (operands[1]) == CONST_DOUBLE)
{