aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-01-31 09:46:15 +0000
committerJan Beulich <jbeulich@novell.com>2005-01-31 09:46:15 +0000
commit75e0991382fb4617434490056616fab346359fc2 (patch)
treeee462516b5bfbb7befa70abf62d2dcf1fc5b2480 /gas/testsuite
parentf4660e2c883d36c3551141051ec3917e2656f3eb (diff)
downloadgdb-75e0991382fb4617434490056616fab346359fc2.zip
gdb-75e0991382fb4617434490056616fab346359fc2.tar.gz
gdb-75e0991382fb4617434490056616fab346359fc2.tar.bz2
gas/
2005-01-31 Jan Beulich <jbeulich@novell.com> * config/tc-ia64.c (unwind): Remove proc_end (now an automatic variable in dot_endp). Add body and insn. Make prologue, prologue_mask, body, and insn bitfields. (fixup_unw_records): Remove spurious new-lines from end of diagnostic messages. (in_procedure, in_prologue, in_body): New. (dot_fframe, dot_vframe, dot_vframesp, dot_vframepsp, dot_save, dot_restore, dot_restorereg, dot_restorereg_p, dot_handlerdata, dot_unwentry, dot_altrp, dot_savemem, dot_saveg, dot_savef, dot_saveb, dot_savegf, dot_spill, dot_spillreg, dot_spillmem, dot_spillreg_p, dot_spillmem_p, dot_label_state, dot_copy_state, dot_unwabi, dot_personality): Use the appropriate one of the above. (dot_proc): Clear unwind.proc_start; set to current location only if none of the entry points were valid. Check for non-zero-length entry point names. Check that entry points aren't defined, yet. Clear unwind.prologue, unwind.body, and unwind.insn. (dot_body): Call in_procedure. Check that first directive in procedure had no insns emitted before. Set unwind.body. (dot_prologue): Call in_procedure. Check that not already in prologue. Check that first directive in procedure had no insns emitted before. Clear unwind.body. (dot_endp): Call in_procedure. Declare proc_end. Check for non-zero- length entry point names. Check that entry points became defined. (md_assemble): Set unwind.insn once unwind.proc_start is defined. gas/testsuite/ 2005-01-31 Jan Beulich <jbeulich@novell.com> * gas/ia64/proc.[ls]: New. * gas/ia64/unwind-err.[ls]: New. * gas/ia64/ia64.exp: Run new tests.
Diffstat (limited to 'gas/testsuite')
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/ia64/ia64.exp2
-rw-r--r--gas/testsuite/gas/ia64/proc.l5
-rw-r--r--gas/testsuite/gas/ia64/proc.s13
-rw-r--r--gas/testsuite/gas/ia64/unwind-err.l34
-rw-r--r--gas/testsuite/gas/ia64/unwind-err.s68
6 files changed, 128 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index bfc1de6..353e3ff 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2005-01-31 Jan Beulich <jbeulich@novell.com>
+ * gas/ia64/proc.[ls]: New.
+ * gas/ia64/unwind-err.[ls]: New.
+ * gas/ia64/ia64.exp: Run new tests.
+
+2005-01-31 Jan Beulich <jbeulich@novell.com>
+
* gas/ia64/bundling.[ds]: New.
* gas/ia64/label.[ls]: New.
* gas/ia64/last.[ls]: New.
diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp
index 57cea89..c5dc9e1 100644
--- a/gas/testsuite/gas/ia64/ia64.exp
+++ b/gas/testsuite/gas/ia64/ia64.exp
@@ -65,5 +65,7 @@ if [istarget "ia64-*"] then {
run_dump_test "bundling"
run_list_test "label" ""
run_list_test "last" ""
+ run_list_test "proc" ""
run_list_test "slot2" ""
+ run_list_test "unwind-err" ""
}
diff --git a/gas/testsuite/gas/ia64/proc.l b/gas/testsuite/gas/ia64/proc.l
new file mode 100644
index 0000000..8b33228
--- /dev/null
+++ b/gas/testsuite/gas/ia64/proc.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*:4: Error: .* already defined.*
+.*:7: Error: .* not defined.*
+.*:12: Error: Empty argument of .proc
+.*:13: Error: Empty argument of .endp
diff --git a/gas/testsuite/gas/ia64/proc.s b/gas/testsuite/gas/ia64/proc.s
new file mode 100644
index 0000000..9225a0a
--- /dev/null
+++ b/gas/testsuite/gas/ia64/proc.s
@@ -0,0 +1,13 @@
+func1::
+ br.ret.sptk rp
+
+.proc func, func1, func2
+func::
+ br.ret.sptk rp
+.endp func, func1, func2
+
+func2::
+ br.ret.sptk rp
+
+.proc
+.endp
diff --git a/gas/testsuite/gas/ia64/unwind-err.l b/gas/testsuite/gas/ia64/unwind-err.l
new file mode 100644
index 0000000..7641df7
--- /dev/null
+++ b/gas/testsuite/gas/ia64/unwind-err.l
@@ -0,0 +1,34 @@
+.*: Assembler messages:
+.*:1: Error: .endp outside of procedure
+.*:2: Error: .personality outside of procedure
+.*:3: Error: .unwentry outside of procedure
+.*:4: Error: .unwabi outside of procedure
+.*:5: Error: .handlerdata outside of procedure
+.*:6: Error: .prologue outside of procedure
+.*:7: Error: .body outside of procedure
+.*:8: Error: .spillreg outside of procedure
+.*:9: Error: .spillreg.p outside of procedure
+.*:10: Error: .spillmem outside of procedure
+.*:11: Error: .spillmem.p outside of procedure
+.*:12: Error: .spillmem outside of procedure
+.*:13: Error: .spillmem.p outside of procedure
+.*:14: Error: .restorereg outside of procedure
+.*:15: Error: .restorereg.p outside of procedure
+.*:24: Error: .label_state outside of body region
+.*:25: Error: .copy_state outside of body region
+.*:26: Error: .fframe outside of prologue
+.*:27: Error: .vframe outside of prologue
+.*:28: Error: .spill outside of prologue
+.*:29: Error: .restore outside of body region
+.*:30: Error: .save outside of prologue
+.*:31: Error: .savesp outside of prologue
+.*:32: Error: .savepsp outside of prologue
+.*:33: Error: .save.g outside of prologue
+.*:34: Error: .save.gf outside of prologue
+.*:35: Error: .save.f outside of prologue
+.*:36: Error: .save.b outside of prologue
+.*:37: Error: .altrp outside of prologue
+.*:42: Error: .prologue within prologue
+.*:52: Error: .body outside of procedure
+.*:59: Warning: Initial .prologue.*
+.*:66: Warning: Initial .body.*
diff --git a/gas/testsuite/gas/ia64/unwind-err.s b/gas/testsuite/gas/ia64/unwind-err.s
new file mode 100644
index 0000000..49cb6c9
--- /dev/null
+++ b/gas/testsuite/gas/ia64/unwind-err.s
@@ -0,0 +1,68 @@
+.endp xyz
+.personality personality
+.unwentry
+.unwabi @svr4, 0
+.handlerdata
+.prologue
+.body
+.spillreg r4, r8
+.spillreg.p p1, r4, r8
+.spillsp r5, 0
+.spillsp.p p2, r5, 0
+.spillpsp r6, 0
+.spillpsp.p p2, r6, 0
+.restorereg r4
+.restorereg.p p1, r4
+
+.proc personality
+personality:
+.endp personality
+
+.proc start
+start:
+
+.label_state 1
+.copy_state 1
+.fframe 0
+.vframe r0
+.spill 0
+.restore sp
+.save rp, r0
+.savesp pr, 0
+.savepsp ar.fpsr, 0
+.save.g 2
+.save.gf 2,2
+.save.f 2
+.save.b 2
+.altrp b7
+.body
+
+
+ .prologue
+ .prologue
+ .save ar.lc, r31
+ mov r31 = ar.lc
+ ;;
+ .body
+ .body
+ br.ret.sptk rp
+ ;;
+.personality personality
+.handlerdata
+.body
+
+.endp start
+
+.proc late_prologue
+late_prologue:
+ nop 0
+ .prologue
+ nop 0
+.endp late_prologue
+
+.proc late_body
+late_body:
+ nop 0
+ .body
+ nop 0
+.endp late_body