summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-25 00:48:36 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-07-25 00:48:36 +0000
commit9d23a2c8eeef120ccc67e6b6595c0a24e052de4d (patch)
treef86be8df35b6f6a6310509a5f65773fa78ab7c91
parent6269e47ee11ccb2170e24d6a9931be6f7a8e222b (diff)
downloadppe42-gcc-9d23a2c8eeef120ccc67e6b6595c0a24e052de4d.tar.gz
ppe42-gcc-9d23a2c8eeef120ccc67e6b6595c0a24e052de4d.zip
* config/ia64/ia64.c (ia64_print_operand): Handle "%,".
* config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise. * config/ia64/ia64.md (movdi_internal): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35240 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c13
-rw-r--r--gcc/config/ia64/ia64.h3
-rw-r--r--gcc/config/ia64/ia64.md24
4 files changed, 33 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d69e2324a13..f8c0441b137 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2000-07-24 Richard Henderson <rth@cygnus.com>
+
+ * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
+ * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
+ * config/ia64/ia64.md (movdi_internal): Use it.
+
2000-07-24 Zack Weinberg <zack@wolery.cumb.org>
* cppexp.c: Warn about unary + if -Wtraditional.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index a87d25661c6..470acaa29bf 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -2067,6 +2067,19 @@ ia64_print_operand (file, x, code)
return;
}
+ case ',':
+ x = current_insn_predicate;
+ if (x)
+ {
+ unsigned int regno = REGNO (XEXP (x, 0));
+ if (GET_CODE (x) == EQ)
+ regno += 1;
+ if (code == 'j')
+ regno ^= 1;
+ fprintf (file, "(%s) ", reg_names [regno]);
+ }
+ return;
+
default:
output_operand_lossage ("ia64_print_operand: unknown code");
return;
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index f4fa27af99e..b7f90713e60 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -2475,7 +2475,8 @@ do { \
/* ??? Keep this around for now, as we might need it later. */
-#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '+')
+#define PRINT_OPERAND_PUNCT_VALID_P(CODE) \
+ ((CODE) == '+' || (CODE) == ',')
/* A C compound statement to output to stdio stream STREAM the assembler syntax
for an instruction operand that is a memory reference whose address is X. X
diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md
index 1e5253b2019..857e2bb21db 100644
--- a/gcc/config/ia64/ia64.md
+++ b/gcc/config/ia64/ia64.md
@@ -264,18 +264,18 @@
"*
{
static const char * const alt[] = {
- \"mov %0 = %r1\",
- \"addl %0 = %1, r0\",
- \"movl %0 = %1\",
- \"ld8%O1 %0 = %1%P1\",
- \"st8%Q0 %0 = %r1%P0\",
- \"getf.sig %0 = %1\",
- \"setf.sig %0 = %r1\",
- \"mov %0 = %1\",
- \"ldf8 %0 = %1%P1\",
- \"stf8 %0 = %1%P0\",
- \"mov %0 = %1\",
- \"mov %0 = %r1\"
+ \"%,mov %0 = %r1\",
+ \"%,addl %0 = %1, r0\",
+ \"%,movl %0 = %1\",
+ \"%,ld8%O1 %0 = %1%P1\",
+ \"%,st8%Q0 %0 = %r1%P0\",
+ \"%,getf.sig %0 = %1\",
+ \"%,setf.sig %0 = %r1\",
+ \"%,mov %0 = %1\",
+ \"%,ldf8 %0 = %1%P1\",
+ \"%,stf8 %0 = %1%P0\",
+ \"%,mov %0 = %1\",
+ \"%,mov %0 = %r1\"
};
/* We use 'i' for alternative 2 despite possible PIC problems.
OpenPOWER on IntegriCloud