summaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/i386/general.l
blob: e07e7664c18693dbb853d8995ff3ae7a324f4a37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
.*: Assembler messages:
.*:10: Warning:.*
.*:12: Warning:.*
.*:19: Warning:.*
.*:22: Warning:.*
.*:81: Warning:.*
.*:82: Warning:.*
.*:83: Warning:.*
.*:84: Warning:.*
.*:85: Warning:.*
.*:86: Warning:.*
.*:87: Warning:.*
.*:88: Warning:.*
.*:89: Warning:.*
.*:90: Warning:.*
.*:91: Warning:.*
.*:92: Warning:.*
.*:93: Warning:.*
.*:94: Warning:.*
.*:95: Warning:.*
.*:96: Warning:.*
.*:97: Warning:.*
.*:98: Warning:.*
.*:99: Warning:.*
.*:100: Warning:.*
.*:101: Warning:.*
.*:135: Warning:.*
   1                       	.psize 0
   2                       	.text
   3                       	# test various segment reg insns
   4 0000 1E                		push	%ds
   5 0001 1E                		pushl	%ds
   6 0002 1F                		pop	%ds
   7 0003 1F                		popl	%ds
   8 0004 8CD8              		mov	%ds,%eax
   9 0006 8CD8              		movl	%ds,%eax
  10 0008 8CD8              		movl	%ds,%ax
.*Warning:.*
  11 000a 8ED8              		mov	%eax,%ds
  12 000c 8ED8              		movl	%ax,%ds
.*Warning:.*
  13 000e 8ED8              		movl	%eax,%ds
  14                       	
  15 0010 661E              		pushw	%ds
  16 0012 661F              		popw	%ds
  17 0014 668CD8            		mov	%ds,%ax
  18 0017 668CD8            		movw	%ds,%ax
  19 001a 668CD8            		movw	%ds,%eax
.*Warning:.*
  20 001d 8ED8              		mov	%ax,%ds
  21 001f 8ED8              		movw	%ax,%ds
  22 0021 8ED8              		movw	%eax,%ds
.*Warning:.*
  23                       	
  24                       	# test various pushes
  25 0023 6A0A              		pushl	\$10
  26 0025 666A0A            		pushw	\$10
  27 0028 6A0A              		push	\$10
  28 002a 68E80300 00       		pushl	\$1000
  29 002f 6668E803          		pushw	\$1000
  30 0033 68E80300 00       		push	\$1000
  31 0038 FF355700 0000     		pushl	1f
  32 003e 66FF3557 000000   		pushw	1f
  33 0045 FF355700 0000     		push	1f
  34 004b FFB30C00 0000     		push	\(1f-.\)\(%ebx\)
  35 0051 FF350600 0000     		push	1f-.
  36                       	# these, and others like them should have no operand size prefix
  37 0057 0F00D1            	1:	lldt	%cx
  38 005a 0F01F0            		lmsw	%ax
  39                       	
  40                       	# Just to make sure these don't become illegal due to over-enthusiastic
  41                       	# register checking
  42 005d 660FBEF8          		movsbw	%al,%di
  43 0061 0FBEC8            		movsbl	%al,%ecx
  44 0064 0FBFC8            		movswl	%ax,%ecx
  45 0067 660FB6F8          		movzbw	%al,%di
  46 006b 0FB6C8            		movzbl	%al,%ecx
  47 006e 0FB7C8            		movzwl	%ax,%ecx
  48                       	
  49 0071 EC                		in	%dx,%al
  50 0072 66ED              		in	%dx,%ax
  51 0074 ED                		in	%dx,%eax
  52 0075 EC                		in	\(%dx\),%al
  53 0076 66ED              		in	\(%dx\),%ax
  54 0078 ED                		in	\(%dx\),%eax
  55 0079 EC                		inb	%dx,%al
  56 007a 66ED              		inw	%dx,%ax
  57 007c ED                		inl	%dx,%eax
  58 007d EC                		inb	%dx
  59 007e 66ED              		inw	%dx
  60 0080 ED                		inl	%dx
  61 0081 E4FF              		inb	\$255
  62 0083 66E502            		inw	\$2
  63 0086 E504              		inl	\$4
  64 0088 EF                		outl	%eax,%dx
  65 0089 E62A              		out	%al, \$42
  66 008b 66E50D            		in	\$13, %ax
  67                       	# These are used in AIX.
  68 008e 66ED              		inw	\(%dx\)
  69 0090 66EF              		outw	\(%dx\)
  70                       	
  71 0092 A4                		movsb
  72 0093 66A7              		cmpsw
  73 0095 AF                		scasl
  74 0096 D7                		xlatb
  75 0097 2EA5              		movsl	%cs:\(%esi\),%es:\(%edi\)
  76 0099 0F9303            		setae	\(%ebx\)
  77 009c 0F9303            		setaeb	\(%ebx\)
  78 009f 0F93C0            		setae	%al
  79                       	
  80                       	#these should give warnings
  81 00a2 0C01              		orb	\$1,%ax
.*Warning:.*
  82 00a4 0C01              		orb	\$1,%eax
.*Warning:.*
  83 00a6 80CB01            		orb	\$1,%bx
.*Warning:.*
  84 00a9 80CB01            		orb	\$1,%ebx
.*Warning:.*
  85 00ac D9C1              		fldl	%st\(1\)
.*Warning:.*
  86 00ae DDD2              		fstl	%st\(2\)
.*Warning:.*
  87 00b0 DDDB              		fstpl	%st\(3\)
.*Warning:.*
  88 00b2 D8D4              		fcoml	%st\(4\)
.*Warning:.*
  89 00b4 D8DD              		fcompl	%st\(5\)
.*Warning:.*
  90 00b6 DEC1              		faddp	%st\(1\),%st
.*Warning:.*
  91 00b8 DECA              		fmulp	%st\(2\),%st
.*Warning:.*
  92 00ba DEE3              		fsubp	%st\(3\),%st
.*Warning:.*
  93 00bc DEEC              		fsubrp	%st\(4\),%st
.*Warning:.*
  94 00be DEF5              		fdivp	%st\(5\),%st
.*Warning:.*
  95 00c0 DEFE              		fdivrp	%st\(6\),%st
.*Warning:.*
  96 00c2 DEC1              		fadd
.*Warning:.*
  97 00c4 DEE1              		fsub
.*Warning:.*
  98 00c6 DEC9              		fmul
.*Warning:.*
  99 00c8 DEF1              		fdiv
.*Warning:.*
 100 00ca DEE9              		fsubr
.*Warning:.*
 101 00cc DEF9              		fdivr
.*Warning:.*
 102                       	#these should all be legal
 103 00ce 0FA31556 341200   		btl	%edx, 0x123456
 104 00d5 0FA3D0            		btl	%edx, %eax
 105 00d8 0C01              		orb	\$1,%al
 106 00da 80CB01            		orb	\$1,%bl
 107 00dd A1110000 00       		movl	17,%eax
 108 00e2 A1110000 00       		mov	17,%eax
 109 00e7 66ED              		inw	%dx,%ax
 110 00e9 ED                		inl	%dx,%eax
 111 00ea 66ED              		inw	\(%dx\),%ax
 112 00ec ED                		inl	\(%dx\),%eax
 113 00ed EC                		in	\(%dx\),%al
 114 00ee 66ED              		in	\(%dx\),%ax
 115 00f0 ED                		in	\(%dx\),%eax
 116 00f1 0FB61437          		movzbl	\(%edi,%esi\),%edx
 117 00f5 0FB6451C          		movzbl	28\(%ebp\),%eax
 118 00f9 0FB6C0            		movzbl	%al,%eax
 119 00fc 0FB6F1            		movzbl	%cl,%esi
 120 00ff 26D7              		xlat	%es:\(%ebx\)
 121 0101 D7                		xlat
 122 0102 D7                		xlatb
 123 0103 DDD8              	1:	fstp	%st\(0\)
 124 0105 E2FC              		loop	1b
 125 0107 F6F1              		divb    %cl 
 126 0109 66F7F1            		divw    %cx 
 127 010c F7F1              		divl    %ecx
 128 010e F6F1              		div	%cl
 129 0110 66F7F1            		div	%cx
 130 0113 F7F1              		div	%ecx
 131 0115 F6F1              		div	%cl,%al
 132 0117 66F7F1            		div	%cx,%ax
 133 011a F7F1              		div	%ecx,%eax
 134 011c 8EDE              		mov	%si,%ds
 135 011e 8EDE              		movl	%si,%ds		# warning here
.*Warning:.*
 136 0120 1E                		pushl	%ds
 137 0121 1E                		push	%ds
 138 0122 A0000000 00       		mov	0,%al
 139 0127 66A10000 0100     		mov	0x10000,%ax
 140 012d 89C3              		mov	%eax,%ebx
 141 012f 9C                		pushf
 142 0130 9C                		pushfl
 143 0131 669C              		pushfw
 144 0133 9D                		popf
 145 0134 9D                		popfl
 146 0135 669D              		popfw
 147 0137 89341D00 000000   		mov	%esi,\(,%ebx,1\)
 148 013e 80250000 00007F   		andb	\$~0x80,foo
 149                       	
 150                       	#check 16-bit code auto address prefix
 151                       	.code16gcc
 152 0145 67668D95 00FFFFFF 		leal	-256\(%ebp\),%edx
 153 014d 6788857F FFFFFF   		mov	%al,-129\(%ebp\)
 154 0154 67886580          		mov	%ah,-128\(%ebp\)
 155 0158 67668D9D 20F9FFFF 		leal	-1760\(%ebp\),%ebx
 156 0160 67668984 248C0000 		movl	%eax,140\(%esp\)
 156      00
 157                       	
 158                       		# Force a good alignment.
 159 0169 00000000 000000[ 	]*.p2align	4,0