e4b2530e0d17928fabfaf9939156cc26b365d068
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / general.s
1 .psize 0
2 .text
3 #test jumps and calls
4 1: jmp 1b
5 jmp xxx
6 jmp *xxx
7 jmp xxx(,1)
8 jmp *%edi
9 jmp %edi
10 jmp *(%edi)
11 jmp (%edi)
12 ljmp *xxx(,%edi,4)
13 ljmp xxx(,%edi,4)
14 ljmp *xxx
15 ljmp xxx(,1)
16 ljmp $0x1234,$xxx
17
18 call 1b
19 call xxx
20 call *xxx
21 call xxx(,1)
22 call *%edi
23 call %edi
24 call *(%edi)
25 call (%edi)
26 lcall *xxx(,%edi,4)
27 lcall xxx(,%edi,4)
28 lcall *xxx
29 lcall xxx(,1)
30 lcall $0x1234,$xxx
31
32 # test various segment reg insns
33 push %ds
34 pushl %ds
35 pop %ds
36 popl %ds
37 mov %ds,%eax
38 movl %ds,%eax
39 movl %ds,%ax
40 mov %eax,%ds
41 movl %ax,%ds
42 movl %eax,%ds
43
44 pushw %ds
45 popw %ds
46 mov %ds,%ax
47 movw %ds,%ax
48 movw %ds,%eax
49 mov %ax,%ds
50 movw %ax,%ds
51 movw %eax,%ds
52
53 # test various pushes
54 pushl $10
55 pushw $10
56 push $10
57 pushl $1000
58 pushw $1000
59 push $1000
60 pushl 1f
61 pushw 1f
62 push 1f
63 push (1f-.)(%ebx)
64 push 1f-.
65 # these, and others like them should have no operand size prefix
66 1: lldt %cx
67 lmsw %ax
68
69 # Just to make sure these don't become illegal due to over-enthusiastic
70 # register checking
71 movsbw %al,%di
72 movsbl %al,%ecx
73 movswl %ax,%ecx
74 movzbw %al,%di
75 movzbl %al,%ecx
76 movzwl %ax,%ecx
77
78 in %dx,%al
79 in %dx,%ax
80 in %dx,%eax
81 in (%dx),%al
82 in (%dx),%ax
83 in (%dx),%eax
84 inb %dx,%al
85 inw %dx,%ax
86 inl %dx,%eax
87 inb %dx
88 inw %dx
89 inl %dx
90 inb $255
91 inw $2
92 inl $4
93 in $13, %ax
94 out %al,%dx
95 out %ax,%dx
96 out %eax,%dx
97 out %al,(%dx)
98 out %ax,(%dx)
99 out %eax,(%dx)
100 outb %al,%dx
101 outw %ax,%dx
102 outl %eax,%dx
103 outb %dx
104 outw %dx
105 outl %dx
106 outb $255
107 outw $2
108 outl $4
109 out %ax, $13
110 # These are used in AIX.
111 inw (%dx)
112 outw (%dx)
113
114 movsb
115 cmpsw
116 scasl
117 xlatb
118 movsl %cs:(%esi),%es:(%edi)
119 setae (%ebx)
120 setaeb (%ebx)
121 setae %al
122
123 #these should give warnings
124 orb $1,%ax
125 orb $1,%eax
126 orb $1,%bx
127 orb $1,%ebx
128 fldl %st(1)
129 fstl %st(2)
130 fstpl %st(3)
131 fcoml %st(4)
132 fcompl %st(5)
133 faddp %st(1),%st
134 fmulp %st(2),%st
135 fsub %st(3),%st
136 fsubr %st(4),%st
137 fdiv %st(5),%st
138 fdivr %st(6),%st
139 fadd
140 fsub
141 fmul
142 fdiv
143 fsubr
144 fdivr
145 #these should all be legal
146 btl %edx, 0x123456
147 btl %edx, %eax
148 orb $1,%al
149 orb $1,%bl
150 movl 17,%eax
151 mov 17,%eax
152 inw %dx,%ax
153 inl %dx,%eax
154 inw (%dx),%ax
155 inl (%dx),%eax
156 in (%dx),%al
157 in (%dx),%ax
158 in (%dx),%eax
159 movzbl (%edi,%esi),%edx
160 movzbl 28(%ebp),%eax
161 movzbl %al,%eax
162 movzbl %cl,%esi
163 xlat %es:(%ebx)
164 xlat
165 xlatb
166 1: fstp %st(0)
167 loop 1b
168 divb %cl
169 divw %cx
170 divl %ecx
171 div %cl
172 div %cx
173 div %ecx
174 div %cl,%al
175 div %cx,%ax
176 div %ecx,%eax
177 mov %si,%ds
178 movl %si,%ds # warning here
179 pushl %ds
180 push %ds
181 mov 0,%al
182 mov 0x10000,%ax
183 mov %eax,%ebx
184 pushf
185 pushfl
186 pushfw
187 popf
188 popfl
189 popfw
190 mov %esi,(,%ebx,1)
191 andb $~0x80,foo
192
193 and $0xfffe,%ax
194 and $0xff00,%ax
195 and $0xfffe,%eax
196 and $0xff00,%eax
197 and $0xfffffffe,%eax
198
199 .code16
200 and $0xfffe,%ax
201 and $0xff00,%ax
202 and $0xfffe,%eax
203 and $0xff00,%eax
204 and $0xfffffffe,%eax
205
206 #check 16-bit code auto address prefix
207 .code16gcc
208 leal -256(%ebp),%edx
209 mov %al,-129(%ebp)
210 mov %ah,-128(%ebp)
211 leal -1760(%ebp),%ebx
212 movl %eax,140(%esp)
213
214 .code32
215 # Make sure that we won't remove movzb by accident.
216 movzb %al,%di
217 movzb %al,%ecx
218
219 .code16gcc
220 # Use 16-bit layout by default for fldenv.
221 fldenv (%eax)
222 fldenvs (%eax)
223 fldenvl (%eax)
224
225 # Force a good alignment.
226 .p2align 4,0
This page took 0.035644 seconds and 3 git commands to generate.