From 115695a81d0bdf18ff318951cdddfa6153782268 Mon Sep 17 00:00:00 2001 From: Chris Demetriou Date: Wed, 9 Jul 2003 01:27:30 +0000 Subject: [ gas/ChangeLog ] 2003-07-08 Chris Demetriou * config/tc-mips.c (mips_validate_fix): Do not warn about branch target being a global symbol if not compiling SVR4 PIC code. [ gas/testsuite/ChangeLog ] 2003-07-08 Chris Demetriou * gas/testsuite/gas/mips/mips.exp: Make sure that branch-misc-2 is run to compile non-PIC code, and add branch-misc-2pic. * gas/mips/branch-misc-2.l: Adjust for change in non-PIC warnings. * gas/mips/branch-misc-2pic.l: New file. * gas/mips/branch-misc-2pic.s: New file. --- gas/ChangeLog | 5 ++++ gas/config/tc-mips.c | 5 ++-- gas/testsuite/ChangeLog | 8 ++++++ gas/testsuite/gas/mips/branch-misc-2.l | 6 ----- gas/testsuite/gas/mips/branch-misc-2pic.l | 10 +++++++ gas/testsuite/gas/mips/branch-misc-2pic.s | 43 +++++++++++++++++++++++++++++++ gas/testsuite/gas/mips/mips.exp | 3 ++- 7 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 gas/testsuite/gas/mips/branch-misc-2pic.l create mode 100644 gas/testsuite/gas/mips/branch-misc-2pic.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 11eb9e6..21167d8 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2003-07-08 Chris Demetriou + + * config/tc-mips.c (mips_validate_fix): Do not warn about branch + target being a global symbol if not compiling SVR4 PIC code. + 2003-07-07 Nick Clifton * doc/c-m32r.texi (M32R-Directives): New node. Document the diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index b66aae4..0aef575 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -11059,8 +11059,9 @@ mips_validate_fix (struct fix *fixP, asection *seg) { symbolS *sym = fixP->fx_addsy; - as_warn_where (fixP->fx_file, fixP->fx_line, - _("Pretending global symbol used as branch target is local.")); + if (mips_pic == SVR4_PIC) + as_warn_where (fixP->fx_file, fixP->fx_line, + _("Pretending global symbol used as branch target is local.")); fixP->fx_addsy = symbol_create (S_GET_NAME (sym), S_GET_SEGMENT (sym), diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 2083d32..9502f00 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2003-07-08 Chris Demetriou + + * gas/testsuite/gas/mips/mips.exp: Make sure that branch-misc-2 is + run to compile non-PIC code, and add branch-misc-2pic. + * gas/mips/branch-misc-2.l: Adjust for change in non-PIC warnings. + * gas/mips/branch-misc-2pic.l: New file. + * gas/mips/branch-misc-2pic.s: New file. + 2003-07-07 Richard Sandiford * gas/h8300/h8sx_disp2.[sd]: Add tests for symbolic displacements. diff --git a/gas/testsuite/gas/mips/branch-misc-2.l b/gas/testsuite/gas/mips/branch-misc-2.l index 3ddc97a..a66aaa6 100644 --- a/gas/testsuite/gas/mips/branch-misc-2.l +++ b/gas/testsuite/gas/mips/branch-misc-2.l @@ -1,10 +1,4 @@ .*: Assembler messages: -.*:21: Warning: Pretending global symbol used as branch target is local. -.*:22: Warning: Pretending global symbol used as branch target is local. -.*:23: Warning: Pretending global symbol used as branch target is local. -.*:24: Warning: Pretending global symbol used as branch target is local. -.*:25: Warning: Pretending global symbol used as branch target is local. -.*:26: Warning: Pretending global symbol used as branch target is local. .*:35: Error: Cannot branch to undefined symbol. .*:36: Error: Cannot branch to undefined symbol. .*:37: Error: Cannot branch to symbol in another section. diff --git a/gas/testsuite/gas/mips/branch-misc-2pic.l b/gas/testsuite/gas/mips/branch-misc-2pic.l new file mode 100644 index 0000000..3ddc97a --- /dev/null +++ b/gas/testsuite/gas/mips/branch-misc-2pic.l @@ -0,0 +1,10 @@ +.*: Assembler messages: +.*:21: Warning: Pretending global symbol used as branch target is local. +.*:22: Warning: Pretending global symbol used as branch target is local. +.*:23: Warning: Pretending global symbol used as branch target is local. +.*:24: Warning: Pretending global symbol used as branch target is local. +.*:25: Warning: Pretending global symbol used as branch target is local. +.*:26: Warning: Pretending global symbol used as branch target is local. +.*:35: Error: Cannot branch to undefined symbol. +.*:36: Error: Cannot branch to undefined symbol. +.*:37: Error: Cannot branch to symbol in another section. diff --git a/gas/testsuite/gas/mips/branch-misc-2pic.s b/gas/testsuite/gas/mips/branch-misc-2pic.s new file mode 100644 index 0000000..3167289 --- /dev/null +++ b/gas/testsuite/gas/mips/branch-misc-2pic.s @@ -0,0 +1,43 @@ +# Source file used to test the backward branches to globals in this file. + + .globl g1 .text + .globl g2 .text + .globl g3 .text + .globl g4 .text + .globl g5 .text + .globl g6 .text + + .globl x1 .text + + .text +g1: + .space 20 +g2: + .space 20 +g3: + .space 20 + +x: + bal g1 + bal g2 + bal g3 + bal g4 + bal g5 + bal g6 + + .space 20 +g4: + .space 20 +g5: + .space 20 +g6: + + b x1 + b x2 + b .Ldata + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .space 8 + + .data +.Ldata: diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 541c86f..25cfdf6 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -423,7 +423,8 @@ if { [istarget mips*-*-*] } then { run_dump_test_arches "blt" [mips_arch_list_matching mips2] run_dump_test_arches "bltu" [mips_arch_list_matching mips2] run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1] - run_list_test_arches "branch-misc-2" "-32" [mips_arch_list_matching mips1] + run_list_test_arches "branch-misc-2" "-32 -non_shared" [mips_arch_list_matching mips1] + run_list_test_arches "branch-misc-2pic" "-32 -call_shared" [mips_arch_list_matching mips1] if $ilocks { run_dump_test "div-ilocks" -- cgit v1.1