From: H.J. Lu Date: Mon, 9 Jan 2006 17:14:40 +0000 (+0000) Subject: gas/ X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4dcb3903aa6c0c1cfcc88b850c7d91bf4d7d4d97;p=binutils-gdb.git gas/ 2006-01-09 H.J. Lu PR gas/2117 * symbols.c (snapshot_symbol): Don't change a defined symbol. gas/testsuite/ 2006-01-09 H.J. Lu 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 1fd2f9ea6d1..f7c8d3fb40c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2006-01-09 H.J. Lu + + PR gas/2117 + * symbols.c (snapshot_symbol): Don't change a defined symbol. + 2006-01-03 Hans-Peter Nilsson PR gas/2101 diff --git a/gas/symbols.c b/gas/symbols.c index c9298e044cb..ca2d41ea9ca 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -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; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 05b6967d03a..7fe9e787abd 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2006-01-09 H.J. Lu + + 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 PR gas/2101 diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp index 0c755195515..f68c107f528 100644 --- a/gas/testsuite/gas/ia64/ia64.exp +++ b/gas/testsuite/gas/ia64/ia64.exp @@ -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 index 00000000000..8a2dbda120d --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-2.d @@ -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 index 00000000000..cbd27f2819c --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-2.s @@ -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 index 00000000000..724cc59d23b --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-3.d @@ -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 index 00000000000..f0ebd10258e --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-3.s @@ -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 index 00000000000..feedbae63cb --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-4.d @@ -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 index 00000000000..fa43f34682d --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-4.s @@ -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 index 00000000000..e6081b45ce2 --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-5.d @@ -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 index 00000000000..a6c5137b96f --- /dev/null +++ b/gas/testsuite/gas/ia64/ltoff22x-5.s @@ -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#