aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/ia64/ia64.exp2
-rw-r--r--gas/testsuite/gas/ia64/invalid-ar.l124
-rw-r--r--gas/testsuite/gas/ia64/invalid-ar.s134
4 files changed, 267 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 9998368..2169b61 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2004-05-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gas/ia64/ia64.exp: Run invalid-ar.
+
+ * gas/ia64/invalid-ar.l: New file. Test invalid AR access.
+ * gas/ia64/invalid-ar.s: Likewise.
+
2004-05-24 Peter Barada <peter@the-baradas.com>
* gas/m68k/mcf-emac.d: Provide correct disassembler results.
diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp
index 9990d27..df9feb0 100644
--- a/gas/testsuite/gas/ia64/ia64.exp
+++ b/gas/testsuite/gas/ia64/ia64.exp
@@ -40,6 +40,8 @@ if [istarget "ia64-*"] then {
run_list_test "ldxmov-2" ""
run_dump_test "ltoff22x-1"
+ run_list_test "invalid-ar" ""
+
run_dump_test "dependency-1"
run_dump_test "real"
diff --git a/gas/testsuite/gas/ia64/invalid-ar.l b/gas/testsuite/gas/ia64/invalid-ar.l
new file mode 100644
index 0000000..be8ed25
--- /dev/null
+++ b/gas/testsuite/gas/ia64/invalid-ar.l
@@ -0,0 +1,124 @@
+.*: Assembler messages:
+.*:2: Error: AR 0 cannot be accessed by M-unit
+.*:3: Error: AR 1 cannot be accessed by M-unit
+.*:4: Error: AR 2 cannot be accessed by M-unit
+.*:5: Error: AR 3 cannot be accessed by M-unit
+.*:6: Error: AR 4 cannot be accessed by M-unit
+.*:7: Error: AR 5 cannot be accessed by M-unit
+.*:8: Error: AR 6 cannot be accessed by M-unit
+.*:9: Error: AR 7 cannot be accessed by M-unit
+.*:10: Error: AR 8 cannot be accessed by M-unit
+.*:11: Error: AR 9 cannot be accessed by M-unit
+.*:12: Error: AR 10 cannot be accessed by M-unit
+.*:13: Error: AR 11 cannot be accessed by M-unit
+.*:14: Error: AR 12 cannot be accessed by M-unit
+.*:15: Error: AR 13 cannot be accessed by M-unit
+.*:16: Error: AR 14 cannot be accessed by M-unit
+.*:17: Error: AR 15 cannot be accessed by M-unit
+.*:18: Error: AR 16 cannot be accessed by M-unit
+.*:19: Error: AR 17 cannot be accessed by M-unit
+.*:20: Error: AR 18 cannot be accessed by M-unit
+.*:21: Error: AR 19 cannot be accessed by M-unit
+.*:22: Error: AR 20 cannot be accessed by M-unit
+.*:23: Error: AR 21 cannot be accessed by M-unit
+.*:24: Error: AR 22 cannot be accessed by M-unit
+.*:25: Error: AR 23 cannot be accessed by M-unit
+.*:26: Error: AR 24 cannot be accessed by M-unit
+.*:27: Error: AR 25 cannot be accessed by M-unit
+.*:28: Error: AR 26 cannot be accessed by M-unit
+.*:29: Error: AR 27 cannot be accessed by M-unit
+.*:30: Error: AR 28 cannot be accessed by M-unit
+.*:31: Error: AR 29 cannot be accessed by M-unit
+.*:32: Error: AR 30 cannot be accessed by M-unit
+.*:33: Error: AR 31 cannot be accessed by M-unit
+.*:34: Error: AR 32 cannot be accessed by M-unit
+.*:35: Error: AR 33 cannot be accessed by M-unit
+.*:36: Error: AR 34 cannot be accessed by M-unit
+.*:37: Error: AR 35 cannot be accessed by M-unit
+.*:38: Error: AR 36 cannot be accessed by M-unit
+.*:39: Error: AR 37 cannot be accessed by M-unit
+.*:40: Error: AR 38 cannot be accessed by M-unit
+.*:41: Error: AR 39 cannot be accessed by M-unit
+.*:42: Error: AR 40 cannot be accessed by M-unit
+.*:43: Error: AR 41 cannot be accessed by M-unit
+.*:44: Error: AR 42 cannot be accessed by M-unit
+.*:45: Error: AR 43 cannot be accessed by M-unit
+.*:46: Error: AR 44 cannot be accessed by M-unit
+.*:47: Error: AR 45 cannot be accessed by M-unit
+.*:48: Error: AR 46 cannot be accessed by M-unit
+.*:49: Error: AR 47 cannot be accessed by M-unit
+.*:54: Error: AR 64 cannot be accessed by I-unit
+.*:55: Error: AR 65 cannot be accessed by I-unit
+.*:56: Error: AR 66 cannot be accessed by I-unit
+.*:57: Error: AR 67 cannot be accessed by I-unit
+.*:58: Error: AR 68 cannot be accessed by I-unit
+.*:59: Error: AR 69 cannot be accessed by I-unit
+.*:60: Error: AR 70 cannot be accessed by I-unit
+.*:61: Error: AR 71 cannot be accessed by I-unit
+.*:62: Error: AR 72 cannot be accessed by I-unit
+.*:63: Error: AR 73 cannot be accessed by I-unit
+.*:64: Error: AR 74 cannot be accessed by I-unit
+.*:65: Error: AR 75 cannot be accessed by I-unit
+.*:66: Error: AR 76 cannot be accessed by I-unit
+.*:67: Error: AR 77 cannot be accessed by I-unit
+.*:68: Error: AR 78 cannot be accessed by I-unit
+.*:69: Error: AR 79 cannot be accessed by I-unit
+.*:70: Error: AR 80 cannot be accessed by I-unit
+.*:71: Error: AR 81 cannot be accessed by I-unit
+.*:72: Error: AR 82 cannot be accessed by I-unit
+.*:73: Error: AR 83 cannot be accessed by I-unit
+.*:74: Error: AR 84 cannot be accessed by I-unit
+.*:75: Error: AR 85 cannot be accessed by I-unit
+.*:76: Error: AR 86 cannot be accessed by I-unit
+.*:77: Error: AR 87 cannot be accessed by I-unit
+.*:78: Error: AR 88 cannot be accessed by I-unit
+.*:79: Error: AR 89 cannot be accessed by I-unit
+.*:80: Error: AR 90 cannot be accessed by I-unit
+.*:81: Error: AR 91 cannot be accessed by I-unit
+.*:82: Error: AR 92 cannot be accessed by I-unit
+.*:83: Error: AR 93 cannot be accessed by I-unit
+.*:84: Error: AR 94 cannot be accessed by I-unit
+.*:85: Error: AR 95 cannot be accessed by I-unit
+.*:86: Error: AR 96 cannot be accessed by I-unit
+.*:87: Error: AR 97 cannot be accessed by I-unit
+.*:88: Error: AR 98 cannot be accessed by I-unit
+.*:89: Error: AR 99 cannot be accessed by I-unit
+.*:90: Error: AR 100 cannot be accessed by I-unit
+.*:91: Error: AR 101 cannot be accessed by I-unit
+.*:92: Error: AR 102 cannot be accessed by I-unit
+.*:93: Error: AR 103 cannot be accessed by I-unit
+.*:94: Error: AR 104 cannot be accessed by I-unit
+.*:95: Error: AR 105 cannot be accessed by I-unit
+.*:96: Error: AR 106 cannot be accessed by I-unit
+.*:97: Error: AR 107 cannot be accessed by I-unit
+.*:98: Error: AR 108 cannot be accessed by I-unit
+.*:99: Error: AR 109 cannot be accessed by I-unit
+.*:100: Error: AR 110 cannot be accessed by I-unit
+.*:101: Error: AR 111 cannot be accessed by I-unit
+.*:106: Error: AR 0 cannot be accessed by M-unit
+.*:107: Error: AR 1 cannot be accessed by M-unit
+.*:108: Error: AR 2 cannot be accessed by M-unit
+.*:109: Error: AR 3 cannot be accessed by M-unit
+.*:110: Error: AR 4 cannot be accessed by M-unit
+.*:111: Error: AR 5 cannot be accessed by M-unit
+.*:112: Error: AR 6 cannot be accessed by M-unit
+.*:113: Error: AR 7 cannot be accessed by M-unit
+.*:114: Error: AR 16 cannot be accessed by M-unit
+.*:115: Error: AR 17 cannot be accessed by M-unit
+.*:116: Error: AR 18 cannot be accessed by M-unit
+.*:117: Error: AR 19 cannot be accessed by M-unit
+.*:118: Error: AR 21 cannot be accessed by M-unit
+.*:119: Error: AR 24 cannot be accessed by M-unit
+.*:120: Error: AR 25 cannot be accessed by M-unit
+.*:121: Error: AR 26 cannot be accessed by M-unit
+.*:122: Error: AR 27 cannot be accessed by M-unit
+.*:123: Error: AR 28 cannot be accessed by M-unit
+.*:124: Error: AR 29 cannot be accessed by M-unit
+.*:125: Error: AR 30 cannot be accessed by M-unit
+.*:126: Error: AR 32 cannot be accessed by M-unit
+.*:127: Error: AR 36 cannot be accessed by M-unit
+.*:128: Error: AR 40 cannot be accessed by M-unit
+.*:129: Error: AR 44 cannot be accessed by M-unit
+.*:132: Error: AR 64 cannot be accessed by I-unit
+.*:133: Error: AR 65 cannot be accessed by I-unit
+.*:134: Error: AR 66 cannot be accessed by I-unit
diff --git a/gas/testsuite/gas/ia64/invalid-ar.s b/gas/testsuite/gas/ia64/invalid-ar.s
new file mode 100644
index 0000000..79c2641
--- /dev/null
+++ b/gas/testsuite/gas/ia64/invalid-ar.s
@@ -0,0 +1,134 @@
+// AR 0 to AR 47 can be accessed only by M unit.
+ mov.i r1 = ar0
+ mov.i r1 = ar1
+ mov.i r1 = ar2
+ mov.i r1 = ar3
+ mov.i r1 = ar4
+ mov.i r1 = ar5
+ mov.i r1 = ar6
+ mov.i r1 = ar7
+ mov.i r1 = ar8
+ mov.i r1 = ar9
+ mov.i r1 = ar10
+ mov.i r1 = ar11
+ mov.i r1 = ar12
+ mov.i r1 = ar13
+ mov.i r1 = ar14
+ mov.i r1 = ar15
+ mov.i r1 = ar16
+ mov.i r1 = ar17
+ mov.i r1 = ar18
+ mov.i r1 = ar19
+ mov.i r1 = ar20
+ mov.i r1 = ar21
+ mov.i r1 = ar22
+ mov.i r1 = ar23
+ mov.i r1 = ar24
+ mov.i r1 = ar25
+ mov.i r1 = ar26
+ mov.i r1 = ar27
+ mov.i r1 = ar28
+ mov.i r1 = ar29
+ mov.i r1 = ar30
+ mov.i r1 = ar31
+ mov.i r1 = ar32
+ mov.i r1 = ar33
+ mov.i r1 = ar34
+ mov.i r1 = ar35
+ mov.i r1 = ar36
+ mov.i r1 = ar37
+ mov.i r1 = ar38
+ mov.i r1 = ar39
+ mov.i r1 = ar40
+ mov.i r1 = ar41
+ mov.i r1 = ar42
+ mov.i r1 = ar43
+ mov.i r1 = ar44
+ mov.i r1 = ar45
+ mov.i r1 = ar46
+ mov.i r1 = ar47
+
+// AR 48 to 63 can be accessed by I or M units.
+
+// AR 64 to AR 111 can be accessed only by I unit.
+ mov.m r1 = ar64
+ mov.m r1 = ar65
+ mov.m r1 = ar66
+ mov.m r1 = ar67
+ mov.m r1 = ar68
+ mov.m r1 = ar69
+ mov.m r1 = ar70
+ mov.m r1 = ar71
+ mov.m r1 = ar72
+ mov.m r1 = ar73
+ mov.m r1 = ar74
+ mov.m r1 = ar75
+ mov.m r1 = ar76
+ mov.m r1 = ar77
+ mov.m r1 = ar78
+ mov.m r1 = ar79
+ mov.m r1 = ar80
+ mov.m r1 = ar81
+ mov.m r1 = ar82
+ mov.m r1 = ar83
+ mov.m r1 = ar84
+ mov.m r1 = ar85
+ mov.m r1 = ar86
+ mov.m r1 = ar87
+ mov.m r1 = ar88
+ mov.m r1 = ar89
+ mov.m r1 = ar90
+ mov.m r1 = ar91
+ mov.m r1 = ar92
+ mov.m r1 = ar93
+ mov.m r1 = ar94
+ mov.m r1 = ar95
+ mov.m r1 = ar96
+ mov.m r1 = ar97
+ mov.m r1 = ar98
+ mov.m r1 = ar99
+ mov.m r1 = ar100
+ mov.m r1 = ar101
+ mov.m r1 = ar102
+ mov.m r1 = ar103
+ mov.m r1 = ar104
+ mov.m r1 = ar105
+ mov.m r1 = ar106
+ mov.m r1 = ar107
+ mov.m r1 = ar108
+ mov.m r1 = ar109
+ mov.m r1 = ar110
+ mov.m r1 = ar111
+
+// AR 112 to 127 can be accessed by I or M units.
+
+// AR K0 to AR ITC can be accessed only by M unit.
+ mov.i r1 = ar.k0
+ mov.i r1 = ar.k1
+ mov.i r1 = ar.k2
+ mov.i r1 = ar.k3
+ mov.i r1 = ar.k4
+ mov.i r1 = ar.k5
+ mov.i r1 = ar.k6
+ mov.i r1 = ar.k7
+ mov.i r1 = ar.rsc
+ mov.i r1 = ar.bsp
+ mov.i r1 = ar.bspstore
+ mov.i r1 = ar.rnat
+ mov.i r1 = ar.fcr
+ mov.i r1 = ar.eflag
+ mov.i r1 = ar.csd
+ mov.i r1 = ar.ssd
+ mov.i r1 = ar.cflg
+ mov.i r1 = ar.fsr
+ mov.i r1 = ar.fir
+ mov.i r1 = ar.fdr
+ mov.i r1 = ar.ccv
+ mov.i r1 = ar.unat
+ mov.i r1 = ar.fpsr
+ mov.i r1 = ar.itc
+
+// AR PFS, LC and EC can be accessed only by I unit.
+ mov.m r1 = ar.pfs
+ mov.m r1 = ar.lc
+ mov.m r1 = ar.ec