Add 16-bit immediate tests.
This commit is contained in:
parent
753f6b125b
commit
71851002d0
@ -1,3 +1,9 @@
|
|||||||
|
2000-04-03 Alan Modra <alan@linuxcare.com.au>
|
||||||
|
|
||||||
|
* gas/i386/general.s: Check 16-bit immediates, and move call/jump
|
||||||
|
checks to start.
|
||||||
|
* gas/i386/general.l: Likewise.
|
||||||
|
|
||||||
2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
|
2000-04-01 Alexandre Oliva <aoliva@cygnus.com>
|
||||||
|
|
||||||
* gas/mn10300/am33_5.s: Check that negative SP offsets are encoded
|
* gas/mn10300/am33_5.s: Check that negative SP offsets are encoded
|
||||||
|
@ -1,276 +1,290 @@
|
|||||||
.*: Assembler messages:
|
.*: Assembler messages:
|
||||||
.*:10: Warning:.*
|
.*:7: Warning:.*
|
||||||
.*:12: Warning:.*
|
.*:9: Warning:.*
|
||||||
.*:19: Warning:.*
|
.*:11: Warning:.*
|
||||||
.*:22: Warning:.*
|
.*:13: Warning:.*
|
||||||
.*:95: Warning:.*
|
.*:15: Warning:.*
|
||||||
.*:96: Warning:.*
|
.*:21: Warning:.*
|
||||||
.*:97: Warning:.*
|
.*:23: Warning:.*
|
||||||
.*:98: Warning:.*
|
.*:25: Warning:.*
|
||||||
.*:99: Warning:.*
|
.*:27: Warning:.*
|
||||||
.*:100: Warning:.*
|
.*:29: Warning:.*
|
||||||
.*:101: Warning:.*
|
.*:39: Warning:.*
|
||||||
.*:102: Warning:.*
|
.*:41: Warning:.*
|
||||||
.*:103: Warning:.*
|
.*:48: Warning:.*
|
||||||
.*:104: Warning:.*
|
.*:51: Warning:.*
|
||||||
.*:105: Warning:.*
|
.*:124: Warning:.*
|
||||||
.*:106: Warning:.*
|
.*:125: Warning:.*
|
||||||
.*:107: Warning:.*
|
.*:126: Warning:.*
|
||||||
.*:108: Warning:.*
|
.*:127: Warning:.*
|
||||||
.*:109: Warning:.*
|
.*:128: Warning:.*
|
||||||
.*:110: Warning:.*
|
.*:129: Warning:.*
|
||||||
.*:111: Warning:.*
|
.*:130: Warning:.*
|
||||||
.*:112: Warning:.*
|
.*:131: Warning:.*
|
||||||
.*:113: Warning:.*
|
.*:132: Warning:.*
|
||||||
.*:114: Warning:.*
|
.*:133: Warning:.*
|
||||||
.*:115: Warning:.*
|
.*:134: Warning:.*
|
||||||
.*:149: Warning:.*
|
.*:135: Warning:.*
|
||||||
.*:176: Warning:.*
|
.*:136: Warning:.*
|
||||||
|
.*:137: Warning:.*
|
||||||
|
.*:138: Warning:.*
|
||||||
|
.*:139: Warning:.*
|
||||||
|
.*:140: Warning:.*
|
||||||
|
.*:141: Warning:.*
|
||||||
|
.*:142: Warning:.*
|
||||||
|
.*:143: Warning:.*
|
||||||
|
.*:144: Warning:.*
|
||||||
.*:178: Warning:.*
|
.*:178: Warning:.*
|
||||||
.*:180: Warning:.*
|
|
||||||
.*:182: Warning:.*
|
|
||||||
.*:184: Warning:.*
|
|
||||||
.*:190: Warning:.*
|
|
||||||
.*:192: Warning:.*
|
|
||||||
.*:194: Warning:.*
|
|
||||||
.*:196: Warning:.*
|
|
||||||
.*:198: Warning:.*
|
|
||||||
1 .psize 0
|
1 .psize 0
|
||||||
2 .text
|
2 .text
|
||||||
3 # test various segment reg insns
|
3 #test jumps and calls
|
||||||
4 0000 1E push %ds
|
4 0000 EBFE 1: jmp 1b
|
||||||
5 0001 1E pushl %ds
|
5 0002 E9F(CF|9F)FFF FF jmp xxx
|
||||||
6 0002 1F pop %ds
|
6 0007 FF250000 0000 jmp \*xxx
|
||||||
7 0003 1F popl %ds
|
7 000d FF250000 0000 jmp xxx\(,1\)
|
||||||
8 0004 8CD8 mov %ds,%eax
|
|
||||||
9 0006 8CD8 movl %ds,%eax
|
|
||||||
10 0008 8CD8 movl %ds,%ax
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
11 000a 8ED8 mov %eax,%ds
|
8 0013 FFE7 jmp \*%edi
|
||||||
12 000c 8ED8 movl %ax,%ds
|
9 0015 FFE7 jmp %edi
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
13 000e 8ED8 movl %eax,%ds
|
10 0017 FF27 jmp \*\(%edi\)
|
||||||
14
|
11 0019 FF27 jmp \(%edi\)
|
||||||
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:.*
|
.*Warning:.*
|
||||||
20 001d 8ED8 mov %ax,%ds
|
12 001b FF2CBD00 000000 ljmp \*xxx\(,%edi,4\)
|
||||||
21 001f 8ED8 movw %ax,%ds
|
13 0022 FF2CBD00 000000 ljmp xxx\(,%edi,4\)
|
||||||
22 0021 8ED8 movw %eax,%ds
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
23
|
14 0029 FF2D0000 0000 ljmp \*xxx
|
||||||
24 # test various pushes
|
15 002f FF2D0000 0000 ljmp xxx\(,1\)
|
||||||
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 66E50D in \$13, %ax
|
|
||||||
65 008b EE out %al,%dx
|
|
||||||
66 008c 66EF out %ax,%dx
|
|
||||||
67 008e EF out %eax,%dx
|
|
||||||
68 008f EE out %al,\(%dx\)
|
|
||||||
69 0090 66EF out %ax,\(%dx\)
|
|
||||||
70 0092 EF out %eax,\(%dx\)
|
|
||||||
71 0093 EE outb %al,%dx
|
|
||||||
72 0094 66EF outw %ax,%dx
|
|
||||||
73 0096 EF outl %eax,%dx
|
|
||||||
74 0097 EE outb %dx
|
|
||||||
75 0098 66EF outw %dx
|
|
||||||
76 009a EF outl %dx
|
|
||||||
77 009b E6FF outb \$255
|
|
||||||
78 009d 66E702 outw \$2
|
|
||||||
79 00a0 E704 outl \$4
|
|
||||||
80 00a2 66E70D out %ax, \$13
|
|
||||||
81 # These are used in AIX.
|
|
||||||
82 00a5 66ED inw \(%dx\)
|
|
||||||
83 00a7 66EF outw \(%dx\)
|
|
||||||
84
|
|
||||||
85 00a9 A4 movsb
|
|
||||||
86 00aa 66A7 cmpsw
|
|
||||||
87 00ac AF scasl
|
|
||||||
88 00ad D7 xlatb
|
|
||||||
89 00ae 2EA5 movsl %cs:\(%esi\),%es:\(%edi\)
|
|
||||||
90 00b0 0F9303 setae \(%ebx\)
|
|
||||||
91 00b3 0F9303 setaeb \(%ebx\)
|
|
||||||
92 00b6 0F93C0 setae %al
|
|
||||||
93
|
|
||||||
94 #these should give warnings
|
|
||||||
95 00b9 0C01 orb \$1,%ax
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
96 00bb 0C01 orb \$1,%eax
|
16 0035 EA000000 003412 ljmp \$0x1234,\$xxx
|
||||||
|
17
|
||||||
|
18 003c E8BFFFFF FF call 1b
|
||||||
|
19 0041 E8(FC|BA)FFFF FF call xxx
|
||||||
|
20 0046 FF150000 0000 call \*xxx
|
||||||
|
21 004c FF150000 0000 call xxx\(,1\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
97 00bd 80CB01 orb \$1,%bx
|
22 0052 FFD7 call \*%edi
|
||||||
|
23 0054 FFD7 call %edi
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
98 00c0 80CB01 orb \$1,%ebx
|
24 0056 FF17 call \*\(%edi\)
|
||||||
|
25 0058 FF17 call \(%edi\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
99 00c3 D9C1 fldl %st\(1\)
|
26 005a FF1CBD00 000000 lcall \*xxx\(,%edi,4\)
|
||||||
|
27 0061 FF1CBD00 000000 lcall xxx\(,%edi,4\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
100 00c5 DDD2 fstl %st\(2\)
|
28 0068 FF1D0000 0000 lcall \*xxx
|
||||||
|
29 006e FF1D0000 0000 lcall xxx\(,1\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
101 00c7 DDDB fstpl %st\(3\)
|
30 0074 9A000000 003412 lcall \$0x1234,\$xxx
|
||||||
|
31
|
||||||
|
32 # test various segment reg insns
|
||||||
|
33 007b 1E push %ds
|
||||||
|
34 007c 1E pushl %ds
|
||||||
|
35 007d 1F pop %ds
|
||||||
|
36 007e 1F popl %ds
|
||||||
|
37 007f 8CD8 mov %ds,%eax
|
||||||
|
38 0081 8CD8 movl %ds,%eax
|
||||||
|
39 0083 8CD8 movl %ds,%ax
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
102 00c9 D8D4 fcoml %st\(4\)
|
40 0085 8ED8 mov %eax,%ds
|
||||||
|
41 0087 8ED8 movl %ax,%ds
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
103 00cb D8DD fcompl %st\(5\)
|
42 0089 8ED8 movl %eax,%ds
|
||||||
|
43
|
||||||
|
44 008b 661E pushw %ds
|
||||||
|
45 008d 661F popw %ds
|
||||||
|
46 008f 668CD8 mov %ds,%ax
|
||||||
|
47 0092 668CD8 movw %ds,%ax
|
||||||
|
48 0095 668CD8 movw %ds,%eax
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
104 00cd DEC1 faddp %st\(1\),%st
|
49 0098 8ED8 mov %ax,%ds
|
||||||
|
50 009a 8ED8 movw %ax,%ds
|
||||||
|
51 009c 8ED8 movw %eax,%ds
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
105 00cf DECA fmulp %st\(2\),%st
|
52
|
||||||
|
53 # test various pushes
|
||||||
|
54 009e 6A0A pushl \$10
|
||||||
|
55 00a0 666A0A pushw \$10
|
||||||
|
56 00a3 6A0A push \$10
|
||||||
|
57 00a5 68E80300 00 pushl \$1000
|
||||||
|
58 00aa 6668E803 pushw \$1000
|
||||||
|
59 00ae 68E80300 00 push \$1000
|
||||||
|
60 00b3 FF35D200 0000 pushl 1f
|
||||||
|
61 00b9 66FF35D2 000000 pushw 1f
|
||||||
|
62 00c0 FF35D200 0000 push 1f
|
||||||
|
63 00c6 FFB30C00 0000 push \(1f-.\)\(%ebx\)
|
||||||
|
64 00cc FF350600 0000 push 1f-.
|
||||||
|
65 # these, and others like them should have no operand size prefix
|
||||||
|
66 00d2 0F00D1 1: lldt %cx
|
||||||
|
67 00d5 0F01F0 lmsw %ax
|
||||||
|
68
|
||||||
|
69 # Just to make sure these don't become illegal due to over-enthusiastic
|
||||||
|
70 # register checking
|
||||||
|
71 00d8 660FBEF8 movsbw %al,%di
|
||||||
|
72 00dc 0FBEC8 movsbl %al,%ecx
|
||||||
|
73 00df 0FBFC8 movswl %ax,%ecx
|
||||||
|
74 00e2 660FB6F8 movzbw %al,%di
|
||||||
|
75 00e6 0FB6C8 movzbl %al,%ecx
|
||||||
|
76 00e9 0FB7C8 movzwl %ax,%ecx
|
||||||
|
77
|
||||||
|
78 00ec EC in %dx,%al
|
||||||
|
79 00ed 66ED in %dx,%ax
|
||||||
|
80 00ef ED in %dx,%eax
|
||||||
|
81 00f0 EC in \(%dx\),%al
|
||||||
|
82 00f1 66ED in \(%dx\),%ax
|
||||||
|
83 00f3 ED in \(%dx\),%eax
|
||||||
|
84 00f4 EC inb %dx,%al
|
||||||
|
85 00f5 66ED inw %dx,%ax
|
||||||
|
86 00f7 ED inl %dx,%eax
|
||||||
|
87 00f8 EC inb %dx
|
||||||
|
88 00f9 66ED inw %dx
|
||||||
|
89 00fb ED inl %dx
|
||||||
|
90 00fc E4FF inb \$255
|
||||||
|
91 00fe 66E502 inw \$2
|
||||||
|
92 0101 E504 inl \$4
|
||||||
|
93 0103 66E50D in \$13, %ax
|
||||||
|
94 0106 EE out %al,%dx
|
||||||
|
95 0107 66EF out %ax,%dx
|
||||||
|
96 0109 EF out %eax,%dx
|
||||||
|
97 010a EE out %al,\(%dx\)
|
||||||
|
98 010b 66EF out %ax,\(%dx\)
|
||||||
|
99 010d EF out %eax,\(%dx\)
|
||||||
|
100 010e EE outb %al,%dx
|
||||||
|
101 010f 66EF outw %ax,%dx
|
||||||
|
102 0111 EF outl %eax,%dx
|
||||||
|
103 0112 EE outb %dx
|
||||||
|
104 0113 66EF outw %dx
|
||||||
|
105 0115 EF outl %dx
|
||||||
|
106 0116 E6FF outb \$255
|
||||||
|
107 0118 66E702 outw \$2
|
||||||
|
108 011b E704 outl \$4
|
||||||
|
109 011d 66E70D out %ax, \$13
|
||||||
|
110 # These are used in AIX.
|
||||||
|
111 0120 66ED inw \(%dx\)
|
||||||
|
112 0122 66EF outw \(%dx\)
|
||||||
|
113
|
||||||
|
114 0124 A4 movsb
|
||||||
|
115 0125 66A7 cmpsw
|
||||||
|
116 0127 AF scasl
|
||||||
|
117 0128 D7 xlatb
|
||||||
|
118 0129 2EA5 movsl %cs:\(%esi\),%es:\(%edi\)
|
||||||
|
119 012b 0F9303 setae \(%ebx\)
|
||||||
|
120 012e 0F9303 setaeb \(%ebx\)
|
||||||
|
121 0131 0F93C0 setae %al
|
||||||
|
122
|
||||||
|
123 #these should give warnings
|
||||||
|
124 0134 0C01 orb \$1,%ax
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
106 00d1 DEE3 fsubp %st\(3\),%st
|
125 0136 0C01 orb \$1,%eax
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
107 00d3 DEEC fsubrp %st\(4\),%st
|
126 0138 80CB01 orb \$1,%bx
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
108 00d5 DEF5 fdivp %st\(5\),%st
|
127 013b 80CB01 orb \$1,%ebx
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
109 00d7 DEFE fdivrp %st\(6\),%st
|
128 013e D9C1 fldl %st\(1\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
110 00d9 DEC1 fadd
|
129 0140 DDD2 fstl %st\(2\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
111 00db DEE1 fsub
|
130 0142 DDDB fstpl %st\(3\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
112 00dd DEC9 fmul
|
131 0144 D8D4 fcoml %st\(4\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
113 00df DEF1 fdiv
|
132 0146 D8DD fcompl %st\(5\)
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
114 00e1 DEE9 fsubr
|
133 0148 DEC1 faddp %st\(1\),%st
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
115 00e3 DEF9 fdivr
|
134 014a DECA fmulp %st\(2\),%st
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
116 #these should all be legal
|
135 014c DEE3 fsubp %st\(3\),%st
|
||||||
117 00e5 0FA31556 341200 btl %edx, 0x123456
|
|
||||||
118 00ec 0FA3D0 btl %edx, %eax
|
|
||||||
119 00ef 0C01 orb \$1,%al
|
|
||||||
120 00f1 80CB01 orb \$1,%bl
|
|
||||||
121 00f4 A1110000 00 movl 17,%eax
|
|
||||||
122 00f9 A1110000 00 mov 17,%eax
|
|
||||||
123 00fe 66ED inw %dx,%ax
|
|
||||||
124 0100 ED inl %dx,%eax
|
|
||||||
125 0101 66ED inw \(%dx\),%ax
|
|
||||||
126 0103 ED inl \(%dx\),%eax
|
|
||||||
127 0104 EC in \(%dx\),%al
|
|
||||||
128 0105 66ED in \(%dx\),%ax
|
|
||||||
129 0107 ED in \(%dx\),%eax
|
|
||||||
130 0108 0FB61437 movzbl \(%edi,%esi\),%edx
|
|
||||||
131 010c 0FB6451C movzbl 28\(%ebp\),%eax
|
|
||||||
132 0110 0FB6C0 movzbl %al,%eax
|
|
||||||
133 0113 0FB6F1 movzbl %cl,%esi
|
|
||||||
134 0116 26D7 xlat %es:\(%ebx\)
|
|
||||||
135 0118 D7 xlat
|
|
||||||
136 0119 D7 xlatb
|
|
||||||
137 011a DDD8 1: fstp %st\(0\)
|
|
||||||
138 011c E2FC loop 1b
|
|
||||||
139 011e F6F1 divb %cl
|
|
||||||
140 0120 66F7F1 divw %cx
|
|
||||||
141 0123 F7F1 divl %ecx
|
|
||||||
142 0125 F6F1 div %cl
|
|
||||||
143 0127 66F7F1 div %cx
|
|
||||||
144 012a F7F1 div %ecx
|
|
||||||
145 012c F6F1 div %cl,%al
|
|
||||||
146 012e 66F7F1 div %cx,%ax
|
|
||||||
147 0131 F7F1 div %ecx,%eax
|
|
||||||
148 0133 8EDE mov %si,%ds
|
|
||||||
149 0135 8EDE movl %si,%ds # warning here
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
150 0137 1E pushl %ds
|
136 014e DEEC fsubrp %st\(4\),%st
|
||||||
151 0138 1E push %ds
|
|
||||||
152 0139 A0000000 00 mov 0,%al
|
|
||||||
153 013e 66A10000 0100 mov 0x10000,%ax
|
|
||||||
154 0144 89C3 mov %eax,%ebx
|
|
||||||
155 0146 9C pushf
|
|
||||||
156 0147 9C pushfl
|
|
||||||
157 0148 669C pushfw
|
|
||||||
158 014a 9D popf
|
|
||||||
159 014b 9D popfl
|
|
||||||
160 014c 669D popfw
|
|
||||||
161 014e 89341D00 000000 mov %esi,\(,%ebx,1\)
|
|
||||||
162 0155 80250000 00007F andb \$~0x80,foo
|
|
||||||
163
|
|
||||||
164 #check 16-bit code auto address prefix
|
|
||||||
165 .code16gcc
|
|
||||||
166 015c 67668D95 00FFFFFF leal -256\(%ebp\),%edx
|
|
||||||
167 0164 6788857F FFFFFF mov %al,-129\(%ebp\)
|
|
||||||
168 016b 67886580 mov %ah,-128\(%ebp\)
|
|
||||||
169 016f 67668D9D 20F9FFFF leal -1760\(%ebp\),%ebx
|
|
||||||
170 0177 67668984 248C0000 movl %eax,140\(%esp\)
|
|
||||||
170 00
|
|
||||||
171
|
|
||||||
172 .code32
|
|
||||||
173 0180 EB98 jmp 1b
|
|
||||||
174 0182 E9(FCFF|79FE)FF FF jmp xxx
|
|
||||||
175 0187 FF250000 0000 jmp \*xxx
|
|
||||||
176 018d FF250000 0000 jmp xxx\(,1\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
177 0193 FFE7 jmp \*%edi
|
137 0150 DEF5 fdivp %st\(5\),%st
|
||||||
178 0195 FFE7 jmp %edi
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
179 0197 FF27 jmp \*\(%edi\)
|
138 0152 DEFE fdivrp %st\(6\),%st
|
||||||
180 0199 FF27 jmp \(%edi\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
181 019b FF2CBD00 000000 ljmp \*xxx\(,%edi,4\)
|
139 0154 DEC1 fadd
|
||||||
182 01a2 FF2CBD00 000000 ljmp xxx\(,%edi,4\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
183 01a9 FF2D0000 0000 ljmp \*xxx
|
140 0156 DEE1 fsub
|
||||||
184 01af FF2D0000 0000 ljmp xxx\(,1\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
185 01b5 EA000000 003412 ljmp \$0x1234,\$xxx
|
141 0158 DEC9 fmul
|
||||||
186
|
|
||||||
187 01bc E859FFFF FF call 1b
|
|
||||||
188 01c1 E8(FCFF|3AFE)FF FF call xxx
|
|
||||||
189 01c6 FF150000 0000 call \*xxx
|
|
||||||
190 01cc FF150000 0000 call xxx\(,1\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
191 01d2 FFD7 call \*%edi
|
142 015a DEF1 fdiv
|
||||||
192 01d4 FFD7 call %edi
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
193 01d6 FF17 call \*\(%edi\)
|
143 015c DEE9 fsubr
|
||||||
194 01d8 FF17 call \(%edi\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
195 01da FF1CBD00 000000 lcall \*xxx\(,%edi,4\)
|
144 015e DEF9 fdivr
|
||||||
196 01e1 FF1CBD00 000000 lcall xxx\(,%edi,4\)
|
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
197 01e8 FF1D0000 0000 lcall \*xxx
|
145 #these should all be legal
|
||||||
198 01ee FF1D0000 0000 lcall xxx\(,1\)
|
146 0160 0FA31556 341200 btl %edx, 0x123456
|
||||||
|
147 0167 0FA3D0 btl %edx, %eax
|
||||||
|
148 016a 0C01 orb \$1,%al
|
||||||
|
149 016c 80CB01 orb \$1,%bl
|
||||||
|
150 016f A1110000 00 movl 17,%eax
|
||||||
|
151 0174 A1110000 00 mov 17,%eax
|
||||||
|
152 0179 66ED inw %dx,%ax
|
||||||
|
153 017b ED inl %dx,%eax
|
||||||
|
154 017c 66ED inw \(%dx\),%ax
|
||||||
|
155 017e ED inl \(%dx\),%eax
|
||||||
|
156 017f EC in \(%dx\),%al
|
||||||
|
157 0180 66ED in \(%dx\),%ax
|
||||||
|
158 0182 ED in \(%dx\),%eax
|
||||||
|
159 0183 0FB61437 movzbl \(%edi,%esi\),%edx
|
||||||
|
160 0187 0FB6451C movzbl 28\(%ebp\),%eax
|
||||||
|
161 018b 0FB6C0 movzbl %al,%eax
|
||||||
|
162 018e 0FB6F1 movzbl %cl,%esi
|
||||||
|
163 0191 26D7 xlat %es:\(%ebx\)
|
||||||
|
164 0193 D7 xlat
|
||||||
|
165 0194 D7 xlatb
|
||||||
|
166 0195 DDD8 1: fstp %st\(0\)
|
||||||
|
167 0197 E2FC loop 1b
|
||||||
|
168 0199 F6F1 divb %cl
|
||||||
|
169 019b 66F7F1 divw %cx
|
||||||
|
170 019e F7F1 divl %ecx
|
||||||
|
171 01a0 F6F1 div %cl
|
||||||
|
172 01a2 66F7F1 div %cx
|
||||||
|
173 01a5 F7F1 div %ecx
|
||||||
|
174 01a7 F6F1 div %cl,%al
|
||||||
|
175 01a9 66F7F1 div %cx,%ax
|
||||||
|
176 01ac F7F1 div %ecx,%eax
|
||||||
|
177 01ae 8EDE mov %si,%ds
|
||||||
|
178 01b0 8EDE movl %si,%ds # warning here
|
||||||
.*Warning:.*
|
.*Warning:.*
|
||||||
199 01f4 9A000000 003412 lcall \$0x1234,\$xxx
|
179 01b2 1E pushl %ds
|
||||||
200
|
180 01b3 1E push %ds
|
||||||
201 # Force a good alignment.
|
181 01b4 A0000000 00 mov 0,%al
|
||||||
202 01fb 00000000 00 .p2align 4,0
|
182 01b9 66A10000 0100 mov 0x10000,%ax
|
||||||
|
183 01bf 89C3 mov %eax,%ebx
|
||||||
|
184 01c1 9C pushf
|
||||||
|
185 01c2 9C pushfl
|
||||||
|
186 01c3 669C pushfw
|
||||||
|
187 01c5 9D popf
|
||||||
|
188 01c6 9D popfl
|
||||||
|
189 01c7 669D popfw
|
||||||
|
190 01c9 89341D00 000000 mov %esi,\(,%ebx,1\)
|
||||||
|
191 01d0 80250000 00007F andb \$~0x80,foo
|
||||||
|
192
|
||||||
|
193 01d7 6683E0FE and \$0xfffe,%ax
|
||||||
|
194 01db 662500FF and \$0xff00,%ax
|
||||||
|
195 01df 25FEFF00 00 and \$0xfffe,%eax
|
||||||
|
196 01e4 2500FF00 00 and \$0xff00,%eax
|
||||||
|
197 01e9 83E0FE and \$0xfffffffe,%eax
|
||||||
|
198
|
||||||
|
199 .code16
|
||||||
|
200 01ec 83E0FE and \$0xfffe,%ax
|
||||||
|
201 01ef 2500FF and \$0xff00,%ax
|
||||||
|
202 01f2 6625FEFF 0000 and \$0xfffe,%eax
|
||||||
|
203 01f8 662500FF 0000 and \$0xff00,%eax
|
||||||
|
204 01fe 6683E0FE and \$0xfffffffe,%eax
|
||||||
|
205
|
||||||
|
206 #check 16-bit code auto address prefix
|
||||||
|
207 .code16gcc
|
||||||
|
208 0202 67668D95 00FFFFFF leal -256\(%ebp\),%edx
|
||||||
|
209 020a 6788857F FFFFFF mov %al,-129\(%ebp\)
|
||||||
|
210 0211 67886580 mov %ah,-128\(%ebp\)
|
||||||
|
211 0215 67668D9D 20F9FFFF leal -1760\(%ebp\),%ebx
|
||||||
|
212 021d 67668984 248C0000 movl %eax,140\(%esp\)
|
||||||
|
212 00
|
||||||
|
213
|
||||||
|
214 # Force a good alignment.
|
||||||
|
215 0226 00000000 00000000 .p2align 4,0
|
||||||
|
215 0000
|
||||||
|
@ -1,5 +1,34 @@
|
|||||||
.psize 0
|
.psize 0
|
||||||
.text
|
.text
|
||||||
|
#test jumps and calls
|
||||||
|
1: jmp 1b
|
||||||
|
jmp xxx
|
||||||
|
jmp *xxx
|
||||||
|
jmp xxx(,1)
|
||||||
|
jmp *%edi
|
||||||
|
jmp %edi
|
||||||
|
jmp *(%edi)
|
||||||
|
jmp (%edi)
|
||||||
|
ljmp *xxx(,%edi,4)
|
||||||
|
ljmp xxx(,%edi,4)
|
||||||
|
ljmp *xxx
|
||||||
|
ljmp xxx(,1)
|
||||||
|
ljmp $0x1234,$xxx
|
||||||
|
|
||||||
|
call 1b
|
||||||
|
call xxx
|
||||||
|
call *xxx
|
||||||
|
call xxx(,1)
|
||||||
|
call *%edi
|
||||||
|
call %edi
|
||||||
|
call *(%edi)
|
||||||
|
call (%edi)
|
||||||
|
lcall *xxx(,%edi,4)
|
||||||
|
lcall xxx(,%edi,4)
|
||||||
|
lcall *xxx
|
||||||
|
lcall xxx(,1)
|
||||||
|
lcall $0x1234,$xxx
|
||||||
|
|
||||||
# test various segment reg insns
|
# test various segment reg insns
|
||||||
push %ds
|
push %ds
|
||||||
pushl %ds
|
pushl %ds
|
||||||
@ -161,6 +190,19 @@
|
|||||||
mov %esi,(,%ebx,1)
|
mov %esi,(,%ebx,1)
|
||||||
andb $~0x80,foo
|
andb $~0x80,foo
|
||||||
|
|
||||||
|
and $0xfffe,%ax
|
||||||
|
and $0xff00,%ax
|
||||||
|
and $0xfffe,%eax
|
||||||
|
and $0xff00,%eax
|
||||||
|
and $0xfffffffe,%eax
|
||||||
|
|
||||||
|
.code16
|
||||||
|
and $0xfffe,%ax
|
||||||
|
and $0xff00,%ax
|
||||||
|
and $0xfffe,%eax
|
||||||
|
and $0xff00,%eax
|
||||||
|
and $0xfffffffe,%eax
|
||||||
|
|
||||||
#check 16-bit code auto address prefix
|
#check 16-bit code auto address prefix
|
||||||
.code16gcc
|
.code16gcc
|
||||||
leal -256(%ebp),%edx
|
leal -256(%ebp),%edx
|
||||||
@ -169,34 +211,5 @@
|
|||||||
leal -1760(%ebp),%ebx
|
leal -1760(%ebp),%ebx
|
||||||
movl %eax,140(%esp)
|
movl %eax,140(%esp)
|
||||||
|
|
||||||
.code32
|
|
||||||
jmp 1b
|
|
||||||
jmp xxx
|
|
||||||
jmp *xxx
|
|
||||||
jmp xxx(,1)
|
|
||||||
jmp *%edi
|
|
||||||
jmp %edi
|
|
||||||
jmp *(%edi)
|
|
||||||
jmp (%edi)
|
|
||||||
ljmp *xxx(,%edi,4)
|
|
||||||
ljmp xxx(,%edi,4)
|
|
||||||
ljmp *xxx
|
|
||||||
ljmp xxx(,1)
|
|
||||||
ljmp $0x1234,$xxx
|
|
||||||
|
|
||||||
call 1b
|
|
||||||
call xxx
|
|
||||||
call *xxx
|
|
||||||
call xxx(,1)
|
|
||||||
call *%edi
|
|
||||||
call %edi
|
|
||||||
call *(%edi)
|
|
||||||
call (%edi)
|
|
||||||
lcall *xxx(,%edi,4)
|
|
||||||
lcall xxx(,%edi,4)
|
|
||||||
lcall *xxx
|
|
||||||
lcall xxx(,1)
|
|
||||||
lcall $0x1234,$xxx
|
|
||||||
|
|
||||||
# Force a good alignment.
|
# Force a good alignment.
|
||||||
.p2align 4,0
|
.p2align 4,0
|
||||||
|
Loading…
Reference in New Issue
Block a user