* rs6000.md (indirect_jump): Prefer CTR over LR.
* xcoff.h (ASM_DECLARE_FUNCTION_NAME): Handle weak function.
From-SVN: r48315
+2001-12-26 David Edelsohn <edelsohn@gnu.org>
+
+ * rs6000.md (indirect_jump): Prefer CTR over LR.
+ * xcoff.h (ASM_DECLARE_FUNCTION_NAME): Handle weak function.
+
Tue Dec 25 12:04:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* dwarf2out.c: Reformatting and minor code rearrangement.
}")
(define_insn "indirect_jumpsi"
- [(set (pc) (match_operand:SI 0 "register_operand" "cl"))]
+ [(set (pc) (match_operand:SI 0 "register_operand" "c,*l"))]
"TARGET_32BIT"
- "b%T0"
+ "@
+ bctr
+ {br|blr}"
[(set_attr "type" "jmpreg")])
(define_insn "indirect_jumpdi"
- [(set (pc) (match_operand:DI 0 "register_operand" "cl"))]
+ [(set (pc) (match_operand:DI 0 "register_operand" "c,*l"))]
"TARGET_64BIT"
- "b%T0"
+ "@
+ bctr
+ blr"
[(set_attr "type" "jmpreg")])
;; Table jump for switch statements:
SYMBOL_REF_FLAG (sym_ref) = 1; \
if (TREE_PUBLIC (DECL)) \
{ \
- fputs ("\t.globl .", FILE); \
- RS6000_OUTPUT_BASENAME (FILE, NAME); \
- putc ('\n', FILE); \
+ if (RS6000_WEAK && DECL_WEAK (decl)) \
+ { \
+ fputs ("\t.weak .", FILE); \
+ RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ putc ('\n', FILE); \
+ } \
+ else \
+ { \
+ fputs ("\t.globl .", FILE); \
+ RS6000_OUTPUT_BASENAME (FILE, NAME); \
+ putc ('\n', FILE); \
+ } \
} \
else \
{ \