* 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.
From-SVN: r35240
+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.
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;
/* ??? 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
"*
{
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.