From b92b324de7f13dd6504c1da292bf1ff677359664 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Wed, 26 Dec 2001 18:02:17 +0000 Subject: [PATCH] rs6000.md (indirect_jump): Prefer CTR over LR. * rs6000.md (indirect_jump): Prefer CTR over LR. * xcoff.h (ASM_DECLARE_FUNCTION_NAME): Handle weak function. From-SVN: r48315 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/rs6000.md | 12 ++++++++---- gcc/config/rs6000/xcoff.h | 15 ++++++++++++--- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 30d3831ad18..0a7b1138bb0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-12-26 David Edelsohn + + * 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 * dwarf2out.c: Reformatting and minor code rearrangement. diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index be1a141dbff..bf41db87750 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -13030,15 +13030,19 @@ }") (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: diff --git a/gcc/config/rs6000/xcoff.h b/gcc/config/rs6000/xcoff.h index 095a5663ea8..e60f3fe8282 100644 --- a/gcc/config/rs6000/xcoff.h +++ b/gcc/config/rs6000/xcoff.h @@ -345,9 +345,18 @@ toc_section () \ 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 \ { \ -- 2.30.2