On Fri, Jun 04, 2010 at 08:32:26AM -0700, Ian Lance Taylor wrote:
> Nathan Froyd <froy...@codesourcery.com> writes:
> > Looking at things a little more closely, output_address is exported in
> > output.h.  I suppose output_operand should be exported there as well?
> 
> Yes, put the declaration there, by output_operand_lossage.

This is what I committed.

-Nathan

        * config/i386/i386-protos.h (ix86_print_operand): Declare.
        * config/i386/i386.c (ix86_print_operand): Make non-static.
        * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
        * output.h (output_operand): Declare.
        * final.c (output_operand): Make non-static.

Index: final.c
===================================================================
--- final.c     (revision 160285)
+++ final.c     (working copy)
@@ -220,7 +220,6 @@ static void output_asm_name (void);
 static void output_alternate_entry_point (FILE *, rtx);
 static tree get_mem_expr_from_op (rtx, int *);
 static void output_asm_operand_names (rtx *, int *, int);
-static void output_operand (rtx, int);
 #ifdef LEAF_REGISTERS
 static void leaf_renumber_regs (rtx);
 #endif
@@ -3478,7 +3477,7 @@ mark_symbol_refs_as_used (rtx x)
    The meanings of the letters are machine-dependent and controlled
    by TARGET_PRINT_OPERAND.  */
 
-static void
+void
 output_operand (rtx x, int code ATTRIBUTE_UNUSED)
 {
   if (x && GET_CODE (x) == SUBREG)
Index: ChangeLog
===================================================================
Index: output.h
===================================================================
--- output.h    (revision 160285)
+++ output.h    (working copy)
@@ -77,6 +77,9 @@ extern rtx final_scan_insn (rtx, FILE *,
    subreg of.  */
 extern rtx alter_subreg (rtx *);
 
+/* Print an operand using machine-dependent assembler syntax.  */
+extern void output_operand (rtx, int);
+
 /* Report inconsistency between the assembler template and the operands.
    In an `asm', it's the user's fault; otherwise, the compiler's fault.  */
 extern void output_operand_lossage (const char *, ...) ATTRIBUTE_PRINTF_1;
Index: config/i386/sol2.h
===================================================================
--- config/i386/sol2.h  (revision 160285)
+++ config/i386/sol2.h  (working copy)
@@ -145,7 +145,7 @@ along with GCC; see the file COPYING3.  
   do                                                           \
     {                                                          \
       fprintf (FILE, "\tcall\t");                              \
-      print_operand (FILE, XEXP (DECL_RTL (FN), 0), 'P');      \
+      ix86_print_operand (FILE, XEXP (DECL_RTL (FN), 0), 'P'); \
       fprintf (FILE, "\n");                                    \
     }                                                          \
   while (0)
Index: config/i386/i386-protos.h
===================================================================
--- config/i386/i386-protos.h   (revision 160285)
+++ config/i386/i386-protos.h   (working copy)
@@ -60,6 +60,7 @@ extern bool legitimate_pic_operand_p (rt
 extern int legitimate_pic_address_disp_p (rtx);
 
 extern void print_reg (rtx, int, FILE*);
+extern void ix86_print_operand (FILE *, rtx, int);
 extern bool output_addr_const_extra (FILE*, rtx);
 
 extern void split_di (rtx[], int, rtx[], rtx[]);
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c  (revision 160285)
+++ config/i386/i386.c  (working copy)
@@ -11579,7 +11579,7 @@ get_some_local_dynamic_name (void)
    ; -- print a semicolon (after prefixes due to bug in older gas).
  */
 
-static void
+void
 ix86_print_operand (FILE *file, rtx x, int code)
 {
   if (code)

Reply via email to