+2010-12-29 Paul Koning <ni1d@arrl.net>
+
+ * config/pdp11/pdp11-protos.h (pdp11_asm_output_var): Declare.
+ * config/pdp11/pdp11.c (pdp11_asm_output_var): New function.
+ * config/pdp11/pdp11.h (ASM_OUTPUT_ALIGNED_COMMON,
+ ASM_OUTPUT_ALIGNED_LOCAL): New macros.
+ (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
+
2010-12-30 Joern Rennecke <amylaar@spamcop.net>
PR target/47129
void
+pdp11_asm_output_var (FILE *file, const char *name, int size,
+ int align, bool global)
+{
+ if (align > 8)
+ fprintf (file, "\n\t.even\n");
+ fprintf (file, ".globl ");
+ assemble_name (file, name);
+ fprintf (file, "\n");
+ assemble_name (file, name);
+ fprintf (file, ": .=.+ %#ho\n", (unsigned short)size);
+}
+
+void
print_operand_address (FILE *file, register rtx addr)
{
register rtx breg;
/* This says how to output an assembler line
to define a global common symbol. */
-#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
-( fprintf ((FILE), ".globl "), \
- assemble_name ((FILE), (NAME)), \
- fprintf ((FILE), "\n"), \
- assemble_name ((FILE), (NAME)), \
- fprintf ((FILE), ": .=.+ %#ho\n", (unsigned short)(ROUNDED)) \
-)
+#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
+ pdp11_asm_output_var (FILE, NAME, SIZE, ALIGN, true)
+
/* This says how to output an assembler line
to define a local common symbol. */
-#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
-( assemble_name ((FILE), (NAME)), \
- fprintf ((FILE), ":\t.=.+ %#ho\n", (unsigned short)(ROUNDED)))
+#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
+ pdp11_asm_output_var (FILE, NAME, SIZE, ALIGN, false)
/* Print operand X (an rtx) in assembler syntax to file FILE.
CODE is a letter or dot (`z' in `%z0') or 0 if no letter was specified.