OSDN Git Service

* pa-protos.h (get_deferred_plabel): New prototype.
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Oct 2005 02:38:25 +0000 (02:38 +0000)
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Oct 2005 02:38:25 +0000 (02:38 +0000)
* pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
Make global.
(output_call): Adjust calls.

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

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

index 54db2b2..d274822 100644 (file)
@@ -1,3 +1,10 @@
+2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa-protos.h (get_deferred_plabel): New prototype.
+       * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
+       Make global.
+       (output_call): Adjust calls.
+
 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
index 3bc4c30..7422cd9 100644 (file)
@@ -132,6 +132,7 @@ extern enum direction function_arg_padding (enum machine_mode, tree);
 extern int non_hard_reg_operand (rtx, enum machine_mode);
 extern int eq_neq_comparison_operator (rtx, enum machine_mode);
 extern int insn_refs_are_delayed (rtx);
 extern int non_hard_reg_operand (rtx, enum machine_mode);
 extern int eq_neq_comparison_operator (rtx, enum machine_mode);
 extern int insn_refs_are_delayed (rtx);
+extern rtx get_deferred_plabel (rtx);
 #endif /* RTX_CODE */
 
 /* Prototype function used in macro CONST_OK_FOR_LETTER_P.  */
 #endif /* RTX_CODE */
 
 /* Prototype function used in macro CONST_OK_FOR_LETTER_P.  */
index d7ce82b..adeabed 100644 (file)
@@ -127,7 +127,6 @@ static bool pa_scalar_mode_supported_p (enum machine_mode);
 static bool pa_commutative_p (rtx x, int outer_code);
 static void copy_fp_args (rtx) ATTRIBUTE_UNUSED;
 static int length_fp_args (rtx) ATTRIBUTE_UNUSED;
 static bool pa_commutative_p (rtx x, int outer_code);
 static void copy_fp_args (rtx) ATTRIBUTE_UNUSED;
 static int length_fp_args (rtx) ATTRIBUTE_UNUSED;
-static struct deferred_plabel *get_plabel (rtx) ATTRIBUTE_UNUSED;
 static inline void pa_file_start_level (void) ATTRIBUTE_UNUSED;
 static inline void pa_file_start_space (int) ATTRIBUTE_UNUSED;
 static inline void pa_file_start_file (int) ATTRIBUTE_UNUSED;
 static inline void pa_file_start_level (void) ATTRIBUTE_UNUSED;
 static inline void pa_file_start_space (int) ATTRIBUTE_UNUSED;
 static inline void pa_file_start_file (int) ATTRIBUTE_UNUSED;
@@ -5224,8 +5223,11 @@ pa_hpux64_hpas_file_start (void)
 }
 #undef aputs
 
 }
 #undef aputs
 
-static struct deferred_plabel *
-get_plabel (rtx symbol)
+/* Search the deferred plabel list for SYMBOL and return its internal
+   label.  If an entry for SYMBOL is not found, a new entry is created.  */
+
+rtx
+get_deferred_plabel (rtx symbol)
 {
   const char *fname = XSTR (symbol, 0);
   size_t i;
 {
   const char *fname = XSTR (symbol, 0);
   size_t i;
@@ -5263,7 +5265,7 @@ get_plabel (rtx symbol)
        mark_referenced (id);
     }
 
        mark_referenced (id);
     }
 
-  return &deferred_plabels[i];
+  return deferred_plabels[i].internal_label;
 }
 
 static void
 }
 
 static void
@@ -7103,9 +7105,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
          /* ??? As far as I can tell, the HP linker doesn't support the
             long pc-relative sequence described in the 64-bit runtime
             architecture.  So, we use a slightly longer indirect call.  */
          /* ??? As far as I can tell, the HP linker doesn't support the
             long pc-relative sequence described in the 64-bit runtime
             architecture.  So, we use a slightly longer indirect call.  */
-         struct deferred_plabel *p = get_plabel (call_dest);
-
-         xoperands[0] = p->internal_label;
+         xoperands[0] = get_deferred_plabel (call_dest);
          xoperands[1] = gen_label_rtx ();
 
          /* If this isn't a sibcall, we put the load of %r27 into the
          xoperands[1] = gen_label_rtx ();
 
          /* If this isn't a sibcall, we put the load of %r27 into the
@@ -7232,9 +7232,7 @@ output_call (rtx insn, rtx call_dest, int sibcall)
                     essentially an inline implementation of $$dyncall.
                     We don't actually try to call $$dyncall as this is
                     as difficult as calling the function itself.  */
                     essentially an inline implementation of $$dyncall.
                     We don't actually try to call $$dyncall as this is
                     as difficult as calling the function itself.  */
-                 struct deferred_plabel *p = get_plabel (call_dest);
-
-                 xoperands[0] = p->internal_label;
+                 xoperands[0] = get_deferred_plabel (call_dest);
                  xoperands[1] = gen_label_rtx ();
 
                  /* Since the call is indirect, FP arguments in registers
                  xoperands[1] = gen_label_rtx ();
 
                  /* Since the call is indirect, FP arguments in registers