aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c5
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/mips/branch-misc-2.l6
-rw-r--r--gas/testsuite/gas/mips/branch-misc-2pic.l10
-rw-r--r--gas/testsuite/gas/mips/branch-misc-2pic.s43
-rw-r--r--gas/testsuite/gas/mips/mips.exp3
7 files changed, 71 insertions, 9 deletions
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 <cgd@broadcom.com>
+
+ * 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 <nickc@redhat.com>
* 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 <cgd@broadcom.com>
+
+ * 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 <rsandifo@redhat.com>
* 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"