diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-02-14 07:47:51 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-02-14 07:47:51 +0000 |
commit | b9272bdf34f264669fba32cfd0ed88d82c6becf1 (patch) | |
tree | 60489628dd378ed9f9ba7346bb3e5cddcccb2a21 /gas/testsuite | |
parent | 660792bda0337b7225a54936cf14e47713326b75 (diff) | |
download | binutils-redhat-b9272bdf34f264669fba32cfd0ed88d82c6becf1.tar.gz |
gas/
2005-02-13 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (dot_rot): Add comment that name strings should
be freed when wiping out previous state. Canonicalize names before
use. Free name string when detecting redefinition.
(dot_pred_rel): Call generic expression parser to process arguments.
Handle O_register case for individual predicates and O_subtract for
ranges.
(ia64_parse_name): Canonicalize name before looking it up in dynamic
register hash.
(ia64_canonicalize_symbol_name): Strip off all trailing # characters.
Warn if multiple found, issue error if resulting symbol name has zero
length.
(dot_alias): Canonicalize name before use.
gas/testsuite/
2005-02-13 Jan Beulich <jbeulich@novell.com>
* gas/ia64/pound.[ls]: New.
* gas/ia64/ia64.exp: Run new test.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/ia64.exp | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/pound.l | 58 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/pound.s | 43 |
4 files changed, 107 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 7f4b209f69..823d36e057 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-02-13 Jan Beulich <jbeulich@novell.com> + + * gas/ia64/pound.[ls]: New. + * gas/ia64/ia64.exp: Run new test. + 2005-02-13 H.J. Lu <hongjiu.lu@intel.com> * gas/ia64/ia64.exp: Add "operand-or". diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp index 9d628c9e7f..0455b2e76f 100644 --- a/gas/testsuite/gas/ia64/ia64.exp +++ b/gas/testsuite/gas/ia64/ia64.exp @@ -67,6 +67,7 @@ if [istarget "ia64-*"] then { run_dump_test "bundling" run_list_test "label" "" run_list_test "last" "" + run_list_test "pound" "-al" run_list_test "proc" "-munwind-check=error" run_list_test "slot2" "" run_list_test "unwind-err" "-munwind-check=error" diff --git a/gas/testsuite/gas/ia64/pound.l b/gas/testsuite/gas/ia64/pound.l new file mode 100644 index 0000000000..71f2a4fa25 --- /dev/null +++ b/gas/testsuite/gas/ia64/pound.l @@ -0,0 +1,58 @@ +.*: Assembler messages: +.*:35: Warning: .* WAW .* +#... +.*:41: Error: symbol .esym. .* .efunction. +.*:43: Error: section .\.extra. .* .esection. +GAS LISTING .* +#... +[[:space:]]*[[:digit:]]+[[:space:]]+\.explicit +[[:space:]]*[[:digit:]]+[[:space:]]+ +[[:space:]]*[[:digit:]]+[[:space:]]+\.global esym# +[[:space:]]*[[:digit:]]+[[:space:]]+ +[[:space:]]*[[:digit:]]+[[:space:]]+\.section \.extra#, "a", @progbits +[[:space:]]*[[:digit:]]+[[:space:]]+ +[[:space:]]*[[:digit:]]+[[:space:]]+\.text +[[:space:]]*[[:digit:]]+[[:space:]]+ +[[:space:]]*[[:digit:]]+[[:space:]]+ break 0 +[[:space:]]*[[:digit:]]+[[:space:]]+ +[[:space:]]*[[:digit:]]+[[:space:]]+\?*[[:space:]]+[[:xdigit:]]+[[:space:]]+\.proc psym +#... +[[:space:]]*[[:digit:]]+[[:space:]]+psym: +[[:space:]]*[[:digit:]]+[[:space:]]+ mov\.ret\.sptk b7 = r0, tag# +[[:space:]]*[[:digit:]]+[[:space:]]+ mov r8 = 0 +[[:space:]]*[[:digit:]]+[[:space:]]+\[tag:\] br\.ret\.sptk rp +[[:space:]]*[[:digit:]]+[[:space:]]+\?*[[:space:]]+[[:xdigit:]]+[[:space:]]+\.endp psym +#... +[[:space:]]*[[:digit:]]+[[:space:]]+ +[[:space:]]*[[:digit:]]+[[:space:]]+\.proc esym# +[[:space:]]*[[:digit:]]+[[:space:]]+\.entry entry# +[[:space:]]*[[:digit:]]+[[:space:]]+esym: +[[:space:]]*[[:digit:]]+[[:space:]]+\.unwentry +[[:space:]]*[[:digit:]]+[[:space:]]+\.personality psym# +[[:space:]]*[[:digit:]]+[[:space:]]+\.regstk 0, 8, 0, 8 +[[:space:]]*[[:digit:]]+[[:space:]]+\.rotp p#\[2\], p1#\[4\] +[[:space:]]*[[:digit:]]+[[:space:]]+\.rotr r#\[2\], r1#\[4\] +[[:space:]]*[[:digit:]]+[[:space:]]+\.reg\.val r#\[1\], 0 +[[:space:]]*[[:digit:]]+[[:space:]]+\.reg\.val r1#\[3\], 0 +[[:space:]]*[[:digit:]]+[[:space:]]+\(p1#\[1\]\) cmp\.eq p\[0\] = r\[1\], r1#\[1\] +[[:space:]]*[[:digit:]]+[[:space:]]+\(p1#\[3\]\) cmp\.eq p#\[1\] = r#\[1\], r1#\[3\] +[[:space:]]*[[:digit:]]+[[:space:]]+\.pred\.rel "mutex", p#\[0\], p\[1\] +[[:space:]]*[[:digit:]]+[[:space:]]+ nop 0 +[[:space:]]*[[:digit:]]+[[:space:]]+ ;; +[[:space:]]*[[:digit:]]+[[:space:]]+entry: +[[:space:]]*[[:digit:]]+[[:space:]]+\?*[[:space:]]+61828446[[:space:]]+\(p\[0\]\) mov r8 = 1 +[[:space:]]*[[:digit:]]+[[:space:]]+00781509[[:space:]]* +[[:space:]]*[[:digit:]]+[[:space:]]+95007000[[:space:]]* +[[:space:]]*[[:digit:]]+[[:space:]]+00000400[[:space:]]* +[[:space:]]*[[:digit:]]+[[:space:]]+\(p#\[1\]\) mov r8 = 0 +[[:space:]]*[[:digit:]]+[[:space:]]+ br\.ret\.sptk rp +[[:space:]]*[[:digit:]]+[[:space:]]+\.xdata4 \.extra#, -1 +[[:space:]]*[[:digit:]]+[[:space:]]+\?*[[:space:]]+11420400+[[:space:]]+\.endp esym# +[[:space:]]*[[:digit:]]+[[:space:]]+00648400[[:space:]]* +[[:space:]]*[[:digit:]]+[[:space:]]+00004880[[:space:]]* +[[:space:]]*[[:digit:]]+[[:space:]]+00008400[[:space:]]* +#... +[[:space:]]*[[:digit:]]+[[:space:]]+\.alias esym#, "efunction" +[[:space:]]*[[:digit:]]+[[:space:]]+\.alias esym, "efunc" +[[:space:]]*[[:digit:]]+[[:space:]]+\.secalias \.extra#, "esection" +[[:space:]]*[[:digit:]]+[[:space:]]+\.secalias \.extra, "esec" diff --git a/gas/testsuite/gas/ia64/pound.s b/gas/testsuite/gas/ia64/pound.s new file mode 100644 index 0000000000..f54c072f5b --- /dev/null +++ b/gas/testsuite/gas/ia64/pound.s @@ -0,0 +1,43 @@ +.explicit + +.global esym# + +.section .extra#, "a", @progbits + +.text + + break 0 + +.proc psym +psym: + mov.ret.sptk b7 = r0, tag# + mov r8 = 0 +[tag:] br.ret.sptk rp +.endp psym + +.proc esym# +.entry entry# +esym: +.unwentry +.personality psym# +.regstk 0, 8, 0, 8 +.rotp p#[2], p1#[4] +.rotr r#[2], r1#[4] +.reg.val r#[1], 0 +.reg.val r1#[3], 0 +(p1#[1]) cmp.eq p[0] = r[1], r1#[1] +(p1#[3]) cmp.eq p#[1] = r#[1], r1#[3] +.pred.rel "mutex", p#[0], p[1] + nop 0 + ;; +entry: +(p[0]) mov r8 = 1 +(p#[1]) mov r8 = 0 + br.ret.sptk rp +.xdata4 .extra#, -1 +.endp esym# + +.alias esym#, "efunction" +.alias esym, "efunc" +.secalias .extra#, "esection" +.secalias .extra, "esec" |