pa.h (SELECT_RTX_SECTION): Place symbolic operands into the data section.
authorJeff Law <law@gcc.gnu.org>
Fri, 13 Jun 1997 17:58:30 +0000 (11:58 -0600)
committerJeff Law <law@gcc.gnu.org>
Fri, 13 Jun 1997 17:58:30 +0000 (11:58 -0600)
        * pa.h (SELECT_RTX_SECTION): Place symbolic operands into the
        data section.

From-SVN: r14235

gcc/config/pa/pa.c
gcc/config/pa/pa.h

index 2f9ea94c7657578a5a15ce717060ea3a39de34b3..5297cad7b46c702913dde5503132f53a58639c82 100644 (file)
@@ -1251,7 +1251,7 @@ emit_move_sequence (operands, mode, scratch_reg)
              && GET_CODE (XEXP (operand1, 0)) == PLUS
              && function_label_operand (XEXP (XEXP (operand1, 0), 0), Pmode))
            {
-             rtx scratch_reg, temp, const_part;
+             rtx temp, const_part;
 
              /* Figure out what (if any) scratch register to use.  */
              if (reload_in_progress || reload_completed)
index 25e8d547a051c0ab2c6d14afb7c203855adae97b..780557c90341c348c59288d51ffd488359cecbe4 100644 (file)
@@ -1664,13 +1664,13 @@ while (0)
   else \
     data_section ();
    
-/* Arghh.  This is used for stuff in the constant pool; this may include
-   function addresses on the PA, which during PIC code generation must
-   reside in the data space.  Unfortunately, there's no way to determine
-   if a particular label in the constant pool refers to a function address.
-   So just force everything into the data space during PIC generation.  */
-#define SELECT_RTX_SECTION(RTX,MODE)   \
-  if (flag_pic)                                \
+/* Arghh.  The hpux10 linker chokes if we have a reference to symbols
+   in a readonly data section when the symbol is defined in a shared
+   library.  Since we can't know at compile time if a symbol will be
+   satisfied by a shared library or main program we put any symbolic
+   constant into the normal data section.  */
+#define SELECT_RTX_SECTION(MODE,RTX)   \
+  if (symbolic_operand (RTX, MODE))    \
     data_section ();                   \
   else                                 \
     readonly_data_section ();