gas/
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 9 Jan 2006 17:14:40 +0000 (17:14 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 9 Jan 2006 17:14:40 +0000 (17:14 +0000)
2006-01-09  H.J. Lu  <hongjiu.lu@intel.com>

PR gas/2117
* symbols.c (snapshot_symbol): Don't change a defined symbol.

gas/testsuite/

2006-01-09  H.J. Lu  <hongjiu.lu@intel.com>

PR gas/2117
* gas/ia64/ia64.exp: Add ltoff22x-2, ltoff22x-3, ltoff22x-4 and
ltoff22x-5.

* gas/ia64/ltoff22x-2.d: New file.
* gas/ia64/ltoff22x-2.s: Likewise.
* gas/ia64/ltoff22x-3.d: Likewise.
* gas/ia64/ltoff22x-3.s: Likewise.
* gas/ia64/ltoff22x-4.d: Likewise.
* gas/ia64/ltoff22x-4.s: Likewise.
* gas/ia64/ltoff22x-5.d: Likewise.
* gas/ia64/ltoff22x-5.s: Likewise.

12 files changed:
gas/ChangeLog
gas/symbols.c
gas/testsuite/ChangeLog
gas/testsuite/gas/ia64/ia64.exp
gas/testsuite/gas/ia64/ltoff22x-2.d [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-2.s [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-3.d [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-3.s [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-4.d [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-4.s [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-5.d [new file with mode: 0644]
gas/testsuite/gas/ia64/ltoff22x-5.s [new file with mode: 0644]

index 1fd2f9ea6d15b5da17ce750b24f0ac0857435f9a..f7c8d3fb40cf4a690bf01dc1187f23fbb6f15044 100644 (file)
@@ -1,3 +1,8 @@
+2006-01-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/2117
+       * symbols.c (snapshot_symbol): Don't change a defined symbol.
+
 2006-01-03  Hans-Peter Nilsson  <hp@bitrange.com>
 
        PR gas/2101
index c9298e044cb4b5a6f82ef3c4c2c3b66f0fa9c093..ca2d41ea9ca5beb0cd055d39618bf0fbcc3ae947 100644 (file)
@@ -1399,7 +1399,10 @@ snapshot_symbol (symbolS **symbolPP, valueT *valueP, segT *segP, fragS **fragPP)
            }
        }
 
-      *symbolPP = symbolP;
+      /* Never change a defined symbol.  */
+      if (symbolP->bsym->section == undefined_section
+         || symbolP->bsym->section == expr_section)
+       *symbolPP = symbolP;
       *valueP = expr.X_add_number;
       *segP = symbolP->bsym->section;
       *fragPP = symbolP->sy_frag;
index 05b6967d03a286e52faf9dffc7713f5100e564cd..7fe9e787abdc2f605f53fda0852b4566cc682b7c 100644 (file)
@@ -1,3 +1,18 @@
+2006-01-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR gas/2117
+       * gas/ia64/ia64.exp: Add ltoff22x-2, ltoff22x-3, ltoff22x-4 and
+       ltoff22x-5.
+
+       * gas/ia64/ltoff22x-2.d: New file.
+       * gas/ia64/ltoff22x-2.s: Likewise.
+       * gas/ia64/ltoff22x-3.d: Likewise.
+       * gas/ia64/ltoff22x-3.s: Likewise.
+       * gas/ia64/ltoff22x-4.d: Likewise.
+       * gas/ia64/ltoff22x-4.s: Likewise.
+       * gas/ia64/ltoff22x-5.d: Likewise.
+       * gas/ia64/ltoff22x-5.s: Likewise.
+
 2006-01-03  Hans-Peter Nilsson  <hp@bitrange.com>
 
        PR gas/2101
index 0c7551955159d4d8af68b3b258e108b3765cfa60..f68c107f528bd60b8c921597d6af046c3170b498 100644 (file)
@@ -46,6 +46,13 @@ if [istarget "ia64-*"] then {
     run_dump_test "ldxmov-1"
     run_list_test "ldxmov-2" ""
     run_dump_test "ltoff22x-1"
+    run_dump_test "ltoff22x-2"
+    run_dump_test "ltoff22x-3"
+    run_dump_test "ltoff22x-4"
+    run_dump_test "ltoff22x-5"
+
+    run_dump_test "nostkreg"
+    run_list_test "invalid-ar" ""
 
     run_dump_test "nostkreg"
     run_list_test "invalid-ar" ""
diff --git a/gas/testsuite/gas/ia64/ltoff22x-2.d b/gas/testsuite/gas/ia64/ltoff22x-2.d
new file mode 100644 (file)
index 0000000..8a2dbda
--- /dev/null
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-2
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[        ]+TYPE[         ]+VALUE 
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
diff --git a/gas/testsuite/gas/ia64/ltoff22x-2.s b/gas/testsuite/gas/ia64/ltoff22x-2.s
new file mode 100644 (file)
index 0000000..cbd27f2
--- /dev/null
@@ -0,0 +1,13 @@
+       .global foo#
+       foo# = bar#
+       .global bar#
+       .data
+bar:
+       data4 0
+       .text
+       addl    r3 = @ltoffx(foo#), gp
+       nop.i   0
+       nop.i   0
+       ld8.mov r3 = [r3], foo#
+       nop.i   0
+       nop.i   0
diff --git a/gas/testsuite/gas/ia64/ltoff22x-3.d b/gas/testsuite/gas/ia64/ltoff22x-3.d
new file mode 100644 (file)
index 0000000..724cc59
--- /dev/null
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-3
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[        ]+TYPE[         ]+VALUE 
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
diff --git a/gas/testsuite/gas/ia64/ltoff22x-3.s b/gas/testsuite/gas/ia64/ltoff22x-3.s
new file mode 100644 (file)
index 0000000..f0ebd10
--- /dev/null
@@ -0,0 +1,13 @@
+       .global bar#
+       .data
+bar:
+       data4 0
+       .global foo#
+       foo# = bar#
+       .text
+       addl    r3 = @ltoffx(foo#), gp
+       nop.i   0
+       nop.i   0
+       ld8.mov r3 = [r3], foo#
+       nop.i   0
+       nop.i   0
diff --git a/gas/testsuite/gas/ia64/ltoff22x-4.d b/gas/testsuite/gas/ia64/ltoff22x-4.d
new file mode 100644 (file)
index 0000000..feedbae
--- /dev/null
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-4
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[        ]+TYPE[         ]+VALUE 
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
diff --git a/gas/testsuite/gas/ia64/ltoff22x-4.s b/gas/testsuite/gas/ia64/ltoff22x-4.s
new file mode 100644 (file)
index 0000000..fa43f34
--- /dev/null
@@ -0,0 +1,13 @@
+       .text
+       addl    r3 = @ltoffx(foo#), gp
+       nop.i   0
+       nop.i   0
+       ld8.mov r3 = [r3], foo#
+       nop.i   0
+       nop.i   0
+       .global foo#
+       foo# = bar#
+       .global bar#
+       .data
+bar:
+       data4 0
diff --git a/gas/testsuite/gas/ia64/ltoff22x-5.d b/gas/testsuite/gas/ia64/ltoff22x-5.d
new file mode 100644 (file)
index 0000000..e6081b4
--- /dev/null
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-5
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[        ]+TYPE[         ]+VALUE 
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
diff --git a/gas/testsuite/gas/ia64/ltoff22x-5.s b/gas/testsuite/gas/ia64/ltoff22x-5.s
new file mode 100644 (file)
index 0000000..a6c5137
--- /dev/null
@@ -0,0 +1,13 @@
+       .text
+       addl    r3 = @ltoffx(foo#), gp
+       nop.i   0
+       nop.i   0
+       ld8.mov r3 = [r3], foo#
+       nop.i   0
+       nop.i   0
+       .global bar#
+       .data
+bar:
+       data4 0
+       .global foo#
+       foo# = bar#