summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-20 23:05:59 +0000
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-20 23:05:59 +0000
commit964d057cbb4cee7704c5e4e32bab22d1ef72e93f (patch)
tree27ff2933a8b8d3766088f082ac8e3c703fd06230
parente6e5d4bf2d8dbe3d76d07dc147d6e3da8af2892d (diff)
downloadppe42-gcc-964d057cbb4cee7704c5e4e32bab22d1ef72e93f.tar.gz
ppe42-gcc-964d057cbb4cee7704c5e4e32bab22d1ef72e93f.zip
* config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up.
* config/mn10300/mn10300.c (print_operand): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34062 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/mn10300/mn10300.c20
-rw-r--r--gcc/config/mn10300/mn10300.md12
3 files changed, 24 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a1a00b16193..fa37460e93c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
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.
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index 8104a508e64..fcd86a242a7 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -177,8 +177,12 @@ print_operand (file, x, code)
}
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 ();
@@ -231,11 +235,13 @@ print_operand (file, x, code)
}
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 ();
}
diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md
index 3accb095cd4..125815b1037 100644
--- a/gcc/config/mn10300/mn10300.md
+++ b/gcc/config/mn10300/mn10300.md
@@ -419,8 +419,10 @@
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)
{
@@ -567,8 +569,10 @@
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)
{
OpenPOWER on IntegriCloud