+2013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
+
2013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
{
switch (code)
{
+ /* An integer or symbol address without a preceding # sign. */
+ case 'c':
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+ fprintf (f, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
+ break;
+
+ case SYMBOL_REF:
+ output_addr_const (f, x);
+ break;
+
+ case CONST:
+ if (GET_CODE (XEXP (x, 0)) == PLUS
+ && GET_CODE (XEXP (XEXP (x, 0), 0)) == SYMBOL_REF)
+ {
+ output_addr_const (f, x);
+ break;
+ }
+ /* Fall through. */
+
+ default:
+ output_operand_lossage ("Unsupported operand for code '%c'", code);
+ }
+ break;
+
case 'e':
/* Print the sign/zero-extend size as a character 8->b, 16->h, 32->w. */
{
+2013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * gcc.target/aarch64/c-output-template.c: New testcase.
+ * gcc.target/aarch64/c-output-template-2.c: Likewise.
+ * gcc.target/aarch64/c-output-template-3.c: Likewise.
+
2013-10-17 Michael Hudson-Doyle <michael.hudson@linaro.org>
* gcc/testsuite/lib/target-supports.exp
--- /dev/null
+/* { dg-do compile } */
+
+struct tracepoint {
+ int dummy;
+ int state;
+};
+static struct tracepoint tp;
+
+void
+test (void)
+{
+ __asm__ ("@ %c0" : : "i" (&tp));
+}
+
+/* { dg-final { scan-assembler "@ tp" } } */
--- /dev/null
+/* { dg-do compile } */
+
+struct tracepoint {
+ int dummy;
+ int state;
+};
+static struct tracepoint tp;
+
+void
+test (void)
+{
+ __asm__ ("@ %c0" : : "i" (&tp.state));
+}
+
+/* { dg-final { scan-assembler "@ tp\\+4" } } */
--- /dev/null
+/* { dg-do compile } */
+
+void
+test (void)
+{
+ __asm__ ("@ %c0" : : "i" (42));
+}
+
+/* { dg-final { scan-assembler "@ 42" } } */