OSDN Git Service

* config/pdp11/pdp11-protos.h (pdp11_asm_output_var): Declare.
authorpkoning <pkoning@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Dec 2010 02:09:04 +0000 (02:09 +0000)
committerpkoning <pkoning@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 30 Dec 2010 02:09:04 +0000 (02:09 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168333 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/pdp11/pdp11-protos.h
gcc/config/pdp11/pdp11.c
gcc/config/pdp11/pdp11.h

index 5dcd78b..4f29072 100644 (file)
@@ -1,3 +1,11 @@
+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
index 09ba7b2..56ad909 100644 (file)
@@ -44,3 +44,4 @@ extern enum reg_class pdp11_regno_reg_class (int);
 #endif /* RTX_CODE */
 
 extern void output_ascii (FILE *, const char *, int);
+extern void pdp11_asm_output_var (FILE *, const char *, int, int, bool);
index fedb22a..9c7b476 100644 (file)
@@ -716,6 +716,19 @@ output_ascii (FILE *file, const char *p, int size)
 
 
 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;
index 6ee9bd8..37e0348 100644 (file)
@@ -648,20 +648,15 @@ extern struct rtx_def *cc0_reg_rtx;
 /* 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.