diff options
author | Jan Beulich <jbeulich@novell.com> | 2005-01-31 09:17:14 +0000 |
---|---|---|
committer | Jan Beulich <jbeulich@novell.com> | 2005-01-31 09:17:14 +0000 |
commit | f4660e2c883d36c3551141051ec3917e2656f3eb (patch) | |
tree | cf9ee02cf11c7b4b39fafd21bcb2a42438692ccd /gas/testsuite | |
parent | 60b9a617725df23ea629c34a83919bf320082a7d (diff) | |
download | gdb-f4660e2c883d36c3551141051ec3917e2656f3eb.zip gdb-f4660e2c883d36c3551141051ec3917e2656f3eb.tar.gz gdb-f4660e2c883d36c3551141051ec3917e2656f3eb.tar.bz2 |
gas/
2005-01-31 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (emit_one_bundle): Snapshot manual bundling state
before actually using it. Don't generate an error in manual bundling
mode when looking at an insn requiring slot 2 but not yet at slot 2.
Don't generate an error in manual bundling mode when looking at an
insn required to be last in its group but the required slot hasn't
been reached, yet. Allow conversion from MII to MI;I for bundle
consisting of only 2 insns with the stop between them. Suppress
various meaningless errors resulting from detecting earlier ones.
gas/testsuite/
2005-01-31 Jan Beulich <jbeulich@novell.com>
* gas/ia64/bundling.[ds]: New.
* gas/ia64/label.[ls]: New.
* gas/ia64/last.[ls]: New.
* gas/ia64/slot2.[ls]: New.
* gas/ia64/ia64.exp: Run new tests.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/bundling.d | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/bundling.s | 15 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/ia64.exp | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/label.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/label.s | 25 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/last.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/last.s | 12 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/slot2.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/ia64/slot2.s | 18 |
10 files changed, 106 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 004ed44..bfc1de6 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2005-01-31 Jan Beulich <jbeulich@novell.com> + * gas/ia64/bundling.[ds]: New. + * gas/ia64/label.[ls]: New. + * gas/ia64/last.[ls]: New. + * gas/ia64/slot2.[ls]: New. + * gas/ia64/ia64.exp: Run new tests. + +2005-01-31 Jan Beulich <jbeulich@novell.com> + * gas/ia64/pseudo.[ds]: New. * gas/ia64/ia64.exp: Run new test. diff --git a/gas/testsuite/gas/ia64/bundling.d b/gas/testsuite/gas/ia64/bundling.d new file mode 100644 index 0000000..2ddece1 --- /dev/null +++ b/gas/testsuite/gas/ia64/bundling.d @@ -0,0 +1,14 @@ +# objdump: -d +# name: ia64 explicit bundling + +.*: +file format .* + +Disassembly of section \.text: + +0+0 <_start>: +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MII] nop\.m 0x0 +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.i 0x0;; +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i r31=ar\.lc;; +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[..B] nop\.. 0x0 +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.. 0x0 +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+br\.ret\.sptk\.few b0;; diff --git a/gas/testsuite/gas/ia64/bundling.s b/gas/testsuite/gas/ia64/bundling.s new file mode 100644 index 0000000..23a987d --- /dev/null +++ b/gas/testsuite/gas/ia64/bundling.s @@ -0,0 +1,15 @@ +.explicit +.proc _start +_start: + .prologue +{.mii + nop.m 0 + ;; + .save ar.lc, r31 + mov r31 = ar.lc +} ;; + .body +{.mfb + br.ret.sptk rp +} ;; +.endp _start diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp index 8419410..57cea89 100644 --- a/gas/testsuite/gas/ia64/ia64.exp +++ b/gas/testsuite/gas/ia64/ia64.exp @@ -61,4 +61,9 @@ if [istarget "ia64-*"] then { run_dump_test "alias" run_dump_test "group-1" } + + run_dump_test "bundling" + run_list_test "label" "" + run_list_test "last" "" + run_list_test "slot2" "" } diff --git a/gas/testsuite/gas/ia64/label.l b/gas/testsuite/gas/ia64/label.l new file mode 100644 index 0000000..288fce5 --- /dev/null +++ b/gas/testsuite/gas/ia64/label.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:11: Error: Label must be first in a bundle +.*:18: Error: Label must be first in a bundle diff --git a/gas/testsuite/gas/ia64/label.s b/gas/testsuite/gas/ia64/label.s new file mode 100644 index 0000000..6eff4c9 --- /dev/null +++ b/gas/testsuite/gas/ia64/label.s @@ -0,0 +1,25 @@ +start: +{.mii +label0: + nop 0 + nop 0 + nop 0 +} +{.mii + nop 0 +label1: + nop 0 + nop 0 +} +{.mii + nop 0 + nop 0 +label2: + nop 0 +} +{.mii + nop 0 + nop 0 + nop 0 +label3: +} diff --git a/gas/testsuite/gas/ia64/last.l b/gas/testsuite/gas/ia64/last.l new file mode 100644 index 0000000..946b4d2 --- /dev/null +++ b/gas/testsuite/gas/ia64/last.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:4: Error: .* must be last in instruction group +.*:10: Error: .* must be last in instruction group diff --git a/gas/testsuite/gas/ia64/last.s b/gas/testsuite/gas/ia64/last.s new file mode 100644 index 0000000..d7b0de0 --- /dev/null +++ b/gas/testsuite/gas/ia64/last.s @@ -0,0 +1,12 @@ +.explicit +_start: +{.mib + itc.d r0 +} ;; +{.mib + cover +} ;; +{.mbb + cover + nop 0 +} ;; diff --git a/gas/testsuite/gas/ia64/slot2.l b/gas/testsuite/gas/ia64/slot2.l new file mode 100644 index 0000000..f52299a --- /dev/null +++ b/gas/testsuite/gas/ia64/slot2.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:11: Error: .* must be last in bundle +.*:16: Error: .* must be last in bundle diff --git a/gas/testsuite/gas/ia64/slot2.s b/gas/testsuite/gas/ia64/slot2.s new file mode 100644 index 0000000..030db8e --- /dev/null +++ b/gas/testsuite/gas/ia64/slot2.s @@ -0,0 +1,18 @@ +.explicit +_start: +{.mib + br.cloop.sptk start +} ;; +{.mib + nop 0 + br.cloop.sptk start +} ;; +{.mbb + br.cloop.sptk start + nop 0 +} ;; +{.mbb + nop 0 + br.cloop.sptk start + nop 0 +} ;; |