x86: improve handling of insns with ambiguous operand sizes
[deliverable/binutils-gdb.git] / gas / testsuite / gas / i386 / x86-64-opcode.s
CommitLineData
831b02f6
NC
1.text
2 # Prefixes
3 # O16 A32 OV REX OPCODE ; NOTES
4
5 # CALL
6 CALLq *(%r8) # -- -- -- 41 FF 10 ; REX to access upper reg.
7 CALLq *(%rax) # -- -- -- -- FF 10
8 CALLq *(%r8) # -- -- -- 41 FF 10 ; REX to access upper reg.
9 CALLq *(%rax) # -- -- -- -- FF 10
858bc62d
AJ
10
11 # RET
831b02f6
NC
12 lret # -- -- -- -- CB
13 retq # -- -- -- -- C3
858bc62d
AJ
14
15 # IRET
831b02f6
NC
16 IRET # -- -- -- -- CF ; 32-bit operand size
17 IRETW # 66 -- -- -- CF ; O16 for 16-bit operand size
18 IRETQ # -- -- -- 48 CF ; REX for 64-bit operand size
858bc62d
AJ
19
20 # CMP
21
22 # MOV
4cc91dba
L
23 MOVw %cs,(%r8) # -- -- -- 41 8C 08 ; REX to access upper reg.
24 MOVw %cs,(%rax) # -- -- -- -- 8C 08
25 MOVw %ss,(%r8) # -- -- -- 41 8C 10 ; REX to access upper reg.
26 MOVw %ss,(%rax) # -- -- -- -- 8C 10
27 MOVw %fs,(%r8) # -- -- -- 41 8C 20 ; REX to access upper reg.
28 MOVw %fs,(%rax) # -- -- -- -- 8C 20
29 MOVw (%r8),%ss # -- -- -- 41 8E 10 ; REX to access upper reg.
30 MOVw (%rax),%ss # -- -- -- -- 8E 10
31 MOVw (%r8),%fs # -- -- -- 41 8E 20 ; REX to access upper reg.
32 MOVw (%rax),%fs # -- -- -- -- 8E 20
831b02f6
NC
33 MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg.
34 MOVb $0,(%rax) # -- -- -- -- C6 00 00
858bc62d
AJ
35 MOVw $0x7000,(%r8) # 66 -- -- 41 C7 00 00 70 ; REX to access upper reg. O16 for 16-bit operand size
36 MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size
37 MOVl $0x70000000,(%r8) # -- -- -- 41 C7 00 00 00 00 70 ; REX to access upper reg.
38 MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70
39 MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg.
40 MOVb $0,(%rax) # -- -- -- -- C6 00 00
831b02f6
NC
41 MOVw $0x7000,(%r8) # 66 -- -- -- 41 C7 00 00 70 ; O16 for 16-bit operand size
42 MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size
43 MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70
44 MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg.
45 MOVb $0,(%rax) # -- -- -- -- C6 00 00
46 MOVw $0x7000,(%r8) # 66 -- -- 41 C7 00 00 70 ; REX to access upper reg. O16 for 16-bit operand size
47 MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size
48 MOVl $0x70000000,(%r8) # -- -- -- 41 C7 00 00 00 00 70 ; REX to access upper reg.
49 MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70
858bc62d
AJ
50 MOVq $0x70000000,(%r8) # -- -- -- 49 C7 00 00 00 00 70 ; REX for 64-bit operand size. REX to access upper reg.
51 MOVq $0x70000000,(%rax) # -- -- -- 48 C7 00 00 00 00 70 ; REX for 64-bit operand size
52
0ba59a29
JB
53 # LFS etc
54 LFS (%rax), %ecx # -- -- -- -- 0F B4 ..
55 LFSl (%rcx), %eax # -- -- -- -- 0F B4 ..
56 LFS (%rax), %cx # 66 -- -- -- 0F B4 ..
57 LFSw (%rcx), %ax # 66 -- -- -- 0F B4 ..
58 LGS (%rcx), %edx # -- -- -- -- 0F B5 ..
59 LGSl (%rdx), %ecx # -- -- -- -- 0F B5 ..
60 LGS (%rcx), %dx # 66 -- -- -- 0F B5 ..
61 LGSw (%rdx), %cx # 66 -- -- -- 0F B5 ..
62 LSS (%rdx), %ebx # -- -- -- -- 0F B2 ..
63 LSSl (%rbx), %edx # -- -- -- -- 0F B2 ..
64 LSS (%rdx), %bx # 66 -- -- -- 0F B2 ..
65 LSSw (%rbx), %dx # 66 -- -- -- 0F B2 ..
66
858bc62d 67 # MOVNTI
831b02f6
NC
68 MOVNTI %eax,(%r8) # -- -- -- 41 0f c3 00 ; REX to access upper reg.
69 MOVNTI %eax,(%rax) # -- -- -- -- 0f c3 00
70 MOVNTI %rax,(%r8) # -- -- -- 49 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size
71 MOVNTI %rax,(%rax) # -- -- -- 48 0F C3 00 ; REX for 64-bit operand size. REX to access upper reg.
72 MOVNTI %r8,(%r8) # -- -- -- 4D 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size
73 MOVNTI %r8,(%rax) # -- -- -- 4C 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size
74
75 # Conditionals
76
77 # LOOP
5f77db52
JB
78 LOOP . # -- -- -- -- E2 FE ; RCX used as counter.
79 LOOPq . # -- -- -- -- E2 FE ; RCX used as counter.
80 LOOPl . # -- 67 -- -- E2 FD ; ECX used as counter.
831b02f6
NC
81
82
83 # Jcc
5f77db52
JB
84 # 66 -- -- -- 77 FD ; O16 override: (Addr64) = ZEXT(Addr16)
85 # 66 -- -- -- 0F 87 F9 FF FF FF ; O16 override: (Addr64) = ZEXT(Addr16)
831b02f6
NC
86
87 # J*CXZ
5f77db52
JB
88 JRCXZ . # -- -- -- -- E3 FE ; RCX used as counter.
89 JECXZ . # -- 67 -- -- E3 FD ; ECX used as counter.
831b02f6
NC
90
91
92
93 # Integer
94
95 # IDIV
96
97 IDIVb (%r8) # -- -- -- 41 F6 38 ; Sign extended result. REX to access upper reg.
98 IDIVb (%rax) # -- -- -- -- F6 38 ; Sign extended result
99 IDIVw (%r8) # 66 -- -- 41 F7 38 ; Sign extended result. REX to access upper reg. O16 for 16-bit
100 IDIVw (%rax) # 66 -- -- -- F7 38 ; Sign extended result. O16 for 16-bit operand size
101 IDIVl (%r8) # -- -- -- 41 F7 38 ; Sign extended result. REX to access upper reg
102 IDIVl (%rax) # -- -- -- -- F7 38 ; Sign extended result
103 IDIVq (%r8) # -- -- -- 49 F7 38 ; Sign extended result. REX for 64-bit operand size. REX to access u
104 IDIVq (%rax) # -- -- -- 48 F7 38 ; Sign extended result. REX for 64-bit operand size
105
106 # IMUL
107 IMULb (%r8) # -- -- -- 41 F6 28 ; Sign extended result. REX to access upper reg
108 IMULb (%rax) # -- -- -- -- F6 28 ; Sign extended result
109 IMULw (%r8) # 66 -- -- 41 F7 28 ; Sign extended result. O16 for 16-bit operand size. REX to access
110 IMULw (%rax) # 66 -- -- -- F7 28 ; Sign extended result. O16 for 16-bit operand size
111 IMULl (%r8) # -- -- -- 41 F7 28 ; Sign extended result. REX to access upper reg
112 IMULl (%rax) # -- -- -- -- F7 28 ; Sign extended result
113 IMULq (%r8) # -- -- -- 49 F7 28 ; Sign extended result. REX for 64-bit operand size. REX to access u
114 IMULq (%rax) # -- -- -- 48 F7 28 ; Sign extended result. REX for 64-bit operand size
115
116
117
118 # SIMD/SSE
119
120 # ADDPD
121 ADDPD (%r8),%xmm0 # -- -- 66 41 0F 58 00 ; REX to access upper reg. OVR 128bit MMinstr.
122 ADDPD (%rax),%xmm0 # -- -- 66 -- 0F 58 00 ; OVR 128bit MMinstr.
123 ADDPD (%r8),%xmm15 # -- -- 66 45 0F 58 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
124 ADDPD (%rax),%xmm15 # -- -- 66 44 0F 58 38 ; REX to access upper XMM reg. OVR 128bit MMinstr.
125 ADDPD (%r8),%xmm8 # -- -- 66 45 0F 58 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
126 ADDPD (%rax),%xmm8 # -- -- 66 44 0F 58 00 ; REX to access upper XMM reg. OVR 128bit MMinstr.
127 ADDPD (%r8),%xmm7 # -- -- 66 41 0F 58 38 ; REX to access upper reg. OVR 128bit MMinstr.
128 ADDPD (%rax),%xmm7 # -- -- 66 -- 0F 58 38 ; OVR 128bit MMinstr.
129 ADDPD %xmm0,%xmm0 # -- -- 66 -- 0F 58 C0 ; OVR 128bit MMinstr.
130 ADDPD %xmm15,%xmm15 # -- -- 66 45 0F 58 FF ; REX to access upper XMM reg. OVR 128bit MMinstr.
131 ADDPD %xmm15,%xmm8 # -- -- 66 45 0F 58 C7 ; REX to access upper XMM reg. OVR 128bit MMinstr.
132
133 # CMPPD
858bc62d
AJ
134
135 # CVTSD2SI
136 CVTSD2SIq (%r8),%rax # -- -- F2 49 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
137 CVTSD2SIq (%rax),%rax # -- -- F2 48 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size
138 CVTSD2SIq (%r8),%r8 # -- -- F2 4D 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
139 CVTSD2SIq (%rax),%r8 # -- -- F2 4C 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
140 CVTSD2SIq %xmm0,%rax # -- -- F2 48 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size
141 CVTSD2SIq %xmm15,%r8 # -- -- F2 4D 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
142 CVTSD2SIq %xmm15,%rax # -- -- F2 49 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg
143 CVTSD2SIq %xmm8,%r8 # -- -- F2 4D 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
144 CVTSD2SIq %xmm8,%rax # -- -- F2 49 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg
145 CVTSD2SIq %xmm7,%r8 # -- -- F2 4C 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
146 CVTSD2SIq %xmm7,%rax # -- -- F2 48 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size
147 CVTSD2SIq %xmm0,%r8 # -- -- F2 4C 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
148
149 # CVTTSD2SI
150 CVTTSD2SIq (%r8),%rax # -- -- F2 49 0f 2c 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
151 CVTTSD2SIq (%rax),%rax # -- -- F2 48 0f 2c 00 ; OVR 128-bit media instruction override REX for 64-bit operand size
152 CVTTSD2SIq (%r8),%r8 # -- -- F2 4D 0f 2c 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
153 CVTTSD2SIq (%rax),%r8 # -- -- F2 4C 0f 2c 00 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
154 CVTTSD2SIq %xmm0,%rax # -- -- F2 48 0f 2c c0 ; OVR 128-bit media instruction override REX for 64-bit operand size
155 CVTTSD2SIq %xmm15,%r8 # -- -- F2 4D 0f 2c c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
156 CVTTSD2SIq %xmm15,%rax # -- -- F2 49 0f 2c c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg
157 CVTTSD2SIq %xmm8,%r8 # -- -- F2 4D 0f 2c c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
158 CVTTSD2SIq %xmm8,%rax # -- -- F2 49 0f 2c c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper XMM reg
159 CVTTSD2SIq %xmm7,%r8 # -- -- F2 4C 0f 2c c7 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
160 CVTTSD2SIq %xmm7,%rax # -- -- F2 48 0f 2c c7 ; OVR 128-bit media instruction override REX for 64-bit operand size
161 CVTTSD2SIq %xmm0,%r8 # -- -- F2 4C 0f 2c c0 ; OVR 128-bit media instruction override REX for 64-bit operand size REX to access upper reg.
162
163 # CVTSS2SI
164 CVTSS2SIq (%r8),%rax # -- -- F3 49 0f 2d 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
165 CVTSS2SIq (%rax),%rax # -- -- F3 48 0f 2d 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
166 CVTSS2SIq (%r8),%r8 # -- -- F3 4D 0f 2d 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
167 CVTSS2SIq (%rax),%r8 # -- -- F3 4C 0f 2d 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
168 CVTSS2SIq %xmm0,%rax # -- -- F3 48 0f 2d c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
169 CVTSS2SIq %xmm15,%r8 # -- -- F3 4D 0f 2d c7 ; OVR 128-bit media instruction override Result is sign extended REX to access upper XMM reg REX to access upper reg.
170 CVTSS2SIq %xmm15,%rax # -- -- F3 49 0f 2d c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper XMM reg
171 CVTSS2SIq %xmm8,%r8 # -- -- F3 4D 0f 2d c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
172 CVTSS2SIq %xmm8,%rax # -- -- F3 49 0f 2d c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
173 CVTSS2SIq %xmm7,%r8 # -- -- F3 4C 0f 2d c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
174 CVTSS2SIq %xmm7,%rax # -- -- F3 48 0f 2d c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
175 CVTSS2SIq %xmm0,%r8 # -- -- F3 4C 0f 2d c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
176
177 # CVTTSS2SI
178 CVTTSS2SIq (%r8),%rax # -- -- F3 49 0f 2c 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
179 CVTTSS2SIq (%rax),%rax # -- -- F3 48 0f 2c 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
180 CVTTSS2SIq (%r8),%r8 # -- -- F3 4D 0f 2c 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
181 CVTTSS2SIq (%rax),%r8 # -- -- F3 4C 0f 2c 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
182 CVTTSS2SIq %xmm0,%rax # -- -- F3 48 0f 2c c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
183 CVTTSS2SIq %xmm15,%r8 # -- -- F3 4D 0f 2c c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
184 CVTTSS2SIq %xmm15,%rax # -- -- F3 49 0f 2c c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper XMM reg
185 CVTTSS2SIq %xmm8,%r8 # -- -- F3 4D 0f 2c c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper XMM reg REX to access upper reg.
186 CVTTSS2SIq %xmm8,%rax # -- -- F3 49 0f 2c c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size
187 CVTTSS2SIq %xmm7,%r8 # -- -- F3 4C 0f 2c c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
188 CVTTSS2SIq %xmm7,%rax # -- -- F3 48 0f 2c c7 ; OVR 128-bit media instruction override Result is sign extended
189 CVTTSS2SIq %xmm0,%r8 # -- -- F3 4C 0f 2c c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size REX to access upper reg.
190
191 # CVTSI2SS
c006a730
JB
192 CVTSI2SSl (%r8),%xmm0 # -- -- F3 41 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper reg.
193 CVTSI2SSl (%rax),%xmm0 # -- -- F3 -- 0f 2a 00 ; OVR 128-bit media instruction override
194 CVTSI2SSl (%r8),%xmm15 # -- -- F3 45 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg.
195 CVTSI2SSl (%rax),%xmm15 # -- -- F3 44 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg
196 CVTSI2SSl (%r8),%xmm8 # -- -- F3 45 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg.
197 CVTSI2SSl (%rax),%xmm8 # -- -- F3 44 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg
198 CVTSI2SSl (%r8),%xmm7 # -- -- F3 41 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper reg.
199 CVTSI2SSl (%rax),%xmm7 # -- -- F3 -- 0f 2a 38 ; OVR 128-bit media instruction override
858bc62d
AJ
200 CVTSI2SS %eax,%xmm0 # -- -- F3 -- 0f 2a c0 ; OVR 128-bit media instruction override
201 CVTSI2SS %eax,%xmm15 # -- -- F3 44 0f 2a f8 ; OVR 128-bit media instruction override REX to access upper XMM reg
202 CVTSI2SS %eax,%xmm8 # -- -- F3 44 0f 2a c0 ; OVR 128-bit media instruction override REX to access upper XMM reg
203 CVTSI2SS %eax,%xmm7 # -- -- F3 -- 0f 2a f8 ; OVR 128-bit media instruction override
c006a730
JB
204 CVTSI2SSl (%r8),%xmm0 # -- -- F3 41 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper reg.
205 CVTSI2SSl (%rax),%xmm0 # -- -- F3 -- 0f 2a 00 ; OVR 128-bit media instruction override
206 CVTSI2SSl (%r8),%xmm15 # -- -- F3 45 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg.
207 CVTSI2SSl (%rax),%xmm15 # -- -- F3 44 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg
208 CVTSI2SSl (%r8),%xmm8 # -- -- F3 45 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg.
209 CVTSI2SSl (%rax),%xmm8 # -- -- F3 44 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg
210 CVTSI2SSl (%r8),%xmm7 # -- -- F3 41 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper reg.
211 CVTSI2SSl (%rax),%xmm7 # -- -- F3 -- 0f 2a 38 ; OVR 128-bit media instruction override
858bc62d 212
831b02f6 213 # CVTSI2SD
c006a730
JB
214 CVTSI2SDl (%r8),%xmm0 # -- -- F2 41 0F 2A 00 ; REX to access upper reg. OVR 128bit MMinstr.
215 CVTSI2SDl (%rax),%xmm0 # -- -- F2 -- 0F 2A 00 ; OVR 128bit MMinstr.
216 CVTSI2SDl (%r8),%xmm15 # -- -- F2 45 0F 2A 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
217 CVTSI2SDl (%rax),%xmm15 # -- -- F2 44 0F 2A 38 ; REX to access upper XMM reg. OVR 128bit MMinstr.
218 CVTSI2SDl (%r8),%xmm8 # -- -- F2 45 0F 2A 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
219 CVTSI2SDl (%rax),%xmm8 # -- -- F2 44 0F 2A 00 ; REX to access upper XMM reg. OVR 128bit MMinstr.
220 CVTSI2SDl (%r8),%xmm7 # -- -- F2 41 0F 2A 38 ; REX to access upper reg. OVR 128bit MMinstr.
221 CVTSI2SDl (%rax),%xmm7 # -- -- F2 -- 0F 2A 38 ; OVR 128bit MMinstr.
831b02f6
NC
222 CVTSI2SD %eax,%xmm0 # -- -- F2 -- 0F 2A C0 ; OVR 128bit MMinstr.
223 CVTSI2SD %eax,%xmm15 # -- -- F2 44 0F 2A F8 ; REX to access upper XMM reg. OVR 128bit MMinstr.
224 CVTSI2SD %eax,%xmm8 # -- -- F2 44 0F 2A C0 ; REX to access upper XMM reg. OVR 128bit MMinstr.
225 CVTSI2SD %eax,%xmm7 # -- -- F2 -- 0F 2A F8 ; OVR 128bit MMinstr.
c006a730
JB
226 CVTSI2SDl (%r8),%xmm0 # -- -- F2 41 0F 2A 00 ; REX to access upper reg. OVR 128bit MMinstr.
227 CVTSI2SDl (%rax),%xmm0 # -- -- F2 -- 0F 2A 00 ; OVR 128bit MMinstr.
228 CVTSI2SDl (%r8),%xmm15 # -- -- F2 45 0F 2A 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
229 CVTSI2SDl (%rax),%xmm15 # -- -- F2 44 0F 2A 38 ; REX to access upper XMM reg. OVR 128bit MMinstr.
230 CVTSI2SDl (%r8),%xmm8 # -- -- F2 45 0F 2A 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
231 CVTSI2SDl (%rax),%xmm8 # -- -- F2 44 0F 2A 00 ; REX to access upper XMM reg. OVR 128bit MMinstr.
232 CVTSI2SDl (%r8),%xmm7 # -- -- F2 41 0F 2A 38 ; REX to access upper reg. OVR 128bit MMinstr.
233 CVTSI2SDl (%rax),%xmm7 # -- -- F2 -- 0F 2A 38 ; OVR 128bit MMinstr.
831b02f6
NC
234
235 # MOVD
236 MOVD (%r8),%xmm0 # -- -- 66 41 0F 6E 00 ; REX to access upper reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
237 MOVD (%rax),%xmm0 # -- -- 66 -- 0F 6E 00 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
238 MOVD (%r8),%xmm15 # -- -- 66 45 0F 6E 38 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data32)
239 MOVD (%rax),%xmm15 # -- -- 66 44 0F 6E 38 ; REX to access upper XMM reg. OVR 128bit MMinstr.
240 MOVD (%r8),%xmm8 # -- -- 66 45 0F 6E 00 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data32)
241 MOVD (%rax),%xmm8 # -- -- 66 44 0F 6E 00 ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
242 MOVD (%r8),%xmm7 # -- -- 66 41 0F 6E 38 ; REX to access upper reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
243 MOVD (%rax),%xmm7 # -- -- 66 -- 0F 6E 38 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
244 MOVD %eax,%xmm0 # -- -- 66 -- 0F 6E C0 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
245 MOVD %eax,%xmm15 # -- -- 66 44 0F 6E F8 ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
246 MOVD %eax,%xmm8 # -- -- 66 44 0F 6E C0 ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
247 MOVD %eax,%xmm7 # -- -- 66 -- 0F 6E F8 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
248 MOVD %xmm0,(%r8) # -- -- 66 41 0F 7E 00 ; REX to access upper reg. OVR 128bit MMinstr.
249 MOVD %xmm0,(%rax) # -- -- 66 -- 0F 7E 00 ; OVR 128bit MMinstr.
250 MOVD %xmm15,(%r8) # -- -- 66 45 0F 7E 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
251 MOVD %xmm15,(%rax) # -- -- 66 44 0F 7E 38 ; REX to access upper XMM reg. OVR 128bit MMinstr.
252 MOVD %xmm8,(%r8) # -- -- 66 45 0F 7E 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
253 MOVD %xmm8,(%rax) # -- -- 66 44 0F 7E 00 ; REX to access upper XMM reg. OVR 128bit MMinstr.
254 MOVD %xmm7,(%r8) # -- -- 66 41 0F 7E 38 ; REX to access upper reg. OVR 128bit MMinstr.
255 MOVD %xmm7,(%rax) # -- -- 66 -- 0F 7E 38 ; OVR 128bit MMinstr.
256 MOVD %xmm0,%eax # -- -- 66 -- 0F 7E C0 ; OVR 128bit MMinstr.
257 MOVD %xmm15,%eax # -- -- 66 44 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr.
258 MOVD %xmm8,%eax # -- -- 66 44 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr.
259 MOVD %xmm7,%eax # -- -- 66 -- 0F 7E F8 ; OVR 128bit MMinstr.
43e9b450
AM
260 MOVD %rax,%xmm0 # -- -- 66 48 0F 6E C0 ; Data128 = ZEXT(Data64). OVR 128bit MMinstr. REX for 64-bit operand size.
261 MOVD %r8,%xmm0 # -- -- 66 49 0F 6E C0 ; REX to access upper reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr. REX for 64-bit operand size.
262 MOVD %r8,%xmm15 # -- -- 66 4D 0F 6E F8 ; REX to access upper reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr. REX for 64-bit operand size.
263 MOVD %xmm0,%rax # -- -- 66 48 0F 7E C0 ; OVR 128bit MMinstr. REX for 64-bit operand size.
264 MOVD %xmm0,%r8 # -- -- 66 49 0F 7E C0 ; OVR 128bit MMinstr. REX for 64-bit operand size.
265 MOVD %xmm7,%r8 # -- -- 66 49 0F 7E F8 ; OVR 128bit MMinstr. REX for 64-bit operand size.
831b02f6
NC
266
267 # MOVQ
268 MOVQ (%r8),%xmm0 # -- -- F3 41 0F 7E 00 ; REX to access upper reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr.
269 MOVQ (%rax),%xmm0 # -- -- F3 -- 0F 7E 00 ; Data128 = ZEXT(Data64). OVR 128bit MMinstr.
270 MOVQ (%r8),%xmm15 # -- -- F3 45 0F 7E 38 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data64)
271 MOVQ (%rax),%xmm15 # -- -- F3 44 0F 7E 38 ; REX to access upper XMM reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr.
272 MOVQ (%r8),%xmm8 # -- -- F3 45 0F 7E 00 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data64)
273 MOVQ (%rax),%xmm8 # -- -- F3 44 0F 7E 00 ; REX to access upper XMM reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr.
274 MOVQ (%r8),%xmm7 # -- -- F3 41 0F 7E 38 ; REX to access upper reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr.
275 MOVQ (%rax),%xmm7 # -- -- F3 -- 0F 7E 38 ; Data128 = ZEXT(Data64). OVR 128bit MMinstr.
276 MOVQ %xmm0,%xmm0 # -- -- F3 -- 0F 7E C0 ; OVR 128bit MMinstr.
277 MOVQ %xmm15,%xmm15 # -- -- F3 45 0F 7E FF ; REX to access upper XMM reg. OVR 128bit MMinstr.
278 MOVQ %xmm15,%xmm8 # -- -- F3 45 0F 7E C7 ; REX to access upper XMM reg. OVR 128bit MMinstr.
279 MOVQ %xmm15,%xmm7 # -- -- F3 41 0F 7E FF ; REX to access upper XMM reg. OVR 128bit MMinstr.
280 MOVQ %xmm15,%xmm0 # -- -- F3 41 0F 7E C7 ; REX to access upper XMM reg. OVR 128bit MMinstr.
281 MOVQ %xmm8,%xmm15 # -- -- F3 45 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr.
282 MOVQ %xmm8,%xmm8 # -- -- F3 45 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr.
283 MOVQ %xmm8,%xmm7 # -- -- F3 41 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr.
284 MOVQ %xmm8,%xmm0 # -- -- F3 41 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr.
285 MOVQ %xmm7,%xmm15 # -- -- F3 44 0F 7E FF ; REX to access upper XMM reg. OVR 128bit MMinstr.
286 MOVQ %xmm7,%xmm8 # -- -- F3 44 0F 7E C7 ; REX to access upper XMM reg. OVR 128bit MMinstr.
287 MOVQ %xmm7,%xmm7 # -- -- F3 -- 0F 7E FF ; OVR 128bit MMinstr.
288 MOVQ %xmm7,%xmm0 # -- -- F3 -- 0F 7E C7 ; OVR 128bit MMinstr.
289 MOVQ %xmm0,%xmm15 # -- -- F3 44 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr.
290 MOVQ %xmm0,%xmm8 # -- -- F3 44 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr.
291 MOVQ %xmm0,%xmm7 # -- -- F3 -- 0F 7E F8 ; OVR 128bit MMinstr.
292 MOVQ %xmm0,(%r8) # -- -- 66 41 0F D6 00 ; REX to access upper reg. OVR 128bit MMinstr.
293 MOVQ %xmm0,(%rax) # -- -- 66 -- 0F D6 00 ; OVR 128bit MMinstr.
294 MOVQ %xmm15,(%r8) # -- -- 66 45 0F D6 38 ; REX to access upper reg. OVR 128bit MMinstr.
295 MOVQ %xmm15,(%rax) # -- -- 66 44 0F D6 38 ; REX to access upper XMM reg. OVR 128bit MMinstr.
296 MOVQ %xmm8,(%r8) # -- -- 66 45 0F D6 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
297 MOVQ %xmm8,(%rax) # -- -- 66 44 0F D6 00 ; REX to access upper XMM reg. OVR 128bit MMinstr.
298 MOVQ %xmm7,(%r8) # -- -- 66 41 0F D6 38 ; REX to access upper reg. OVR 128bit MMinstr.
299
300 # 64-bit MMX
301
302 # CVTPD2PI
303
304 # MOVD
305 MOVD (%r8),%mm0 # -- -- -- 41 0F 6E 00 ; REX to access upper reg. Data64 = ZEXT(Data32)
306 MOVD (%rax),%mm0 # -- -- -- -- 0F 6E 00 ; Data64 = ZEXT(Data32)
307 MOVD (%r8),%mm7 # -- -- -- 41 0F 6E 38 ; REX to access upper reg. Data64 = ZEXT(Data32)
308 MOVD (%rax),%mm7 # -- -- -- -- 0F 6E 38 ; Data64 = ZEXT(Data32)
309 MOVD %eax,%mm0 # -- -- -- -- 0F 6E C0 ; Data64 = ZEXT(Data32)
310 MOVD %eax,%mm7 # -- -- -- -- 0F 6E F8 ; Data64 = ZEXT(Data32)
311 MOVD %mm0,(%r8) # -- -- -- 41 0F 7E 00 ; REX to access upper reg.
312 MOVD %mm0,(%rax) # -- -- -- -- 0F 7E 00
313 MOVD %mm7,(%r8) # -- -- -- 41 0F 7E 38 ; REX to access upper reg.
314 MOVD %mm7,(%rax) # -- -- -- -- 0F 7E 38
315 MOVD %mm0,%eax # -- -- -- -- 0F 7E C0
316 MOVD %mm7,%eax # -- -- -- -- 0F 7E F8
317
318 # MOVQ
319 MOVQ (%r8),%mm0 # -- -- -- 41 0F 6F 00 ; REX to access upper reg.
320 MOVQ (%rax),%mm0 # -- -- -- -- 0F 6F 00
321 MOVQ (%r8),%mm7 # -- -- -- 41 0F 6F 38 ; REX to access upper reg.
322 MOVQ (%rax),%mm7 # -- -- -- -- 0F 6F 38
323 MOVQ %mm0,(%r8) # -- -- -- 41 0F 7F 00 ; REX to access upper reg.
324 MOVQ %mm0,(%rax) # -- -- -- -- 0F 7F 00
325 MOVQ %mm7,(%r8) # -- -- -- 41 0F 7F 38 ; REX to access upper reg.
326 MOVQ %mm7,(%rax) # -- -- -- -- 0F 7F 38
327
328 # X87
329 # FADDP
330
331
332 # FDIV
333
334 # Stack Operations
335
336 # POP
337 POPq (%r8) # -- -- -- 41 8F 00 ; REX to access upper reg.
338 POPq (%rax) # -- -- -- -- 8F 00
21df382b 339 POP %fs # -- -- -- -- 0F A1
3f9aad11 340 POPq %fs # -- -- -- -- 0F A1
21df382b 341 POP %gs # -- -- -- -- 0F A9
3f9aad11
JB
342 POPq %gs # -- -- -- -- 0F A9
343 POPF # -- -- -- -- 9D
344 POPFq # -- -- -- -- 9D
831b02f6
NC
345
346 # PUSH
347 PUSHq (%r8) # -- -- -- 41 FF 30 ; REX to access upper reg.
348 PUSHq (%rax) # -- -- -- -- FF 30
21df382b 349 PUSH %fs # -- -- -- -- 0F A0
3f9aad11 350 PUSHq %fs # -- -- -- -- 0F A0
21df382b 351 PUSH %gs # -- -- -- -- 0F A8
3f9aad11
JB
352 PUSHq %gs # -- -- -- -- 0F A8
353 PUSHF # -- -- -- -- 9C
354 PUSHFq # -- -- -- -- 9C
831b02f6
NC
355
356
357
358
359
360 # MMX/XMM/x87 State
361 # FNSAVE
362 # FRSTOR
363 # FSAVE
364 # FXRSTOR
365 # FXSAVE
366 # EMMS
367 EMMS # -- -- -- -- 0F 77
368 # FEMMS
369 FEMMS # -- -- -- -- 0F 0E
370
371 # LEA calculation
372
373 # MISC System Instructions
374 # CLFLUSH
375
376 # INVD
377 INVD # -- -- -- -- 0F 08
378
379 # INVLPG
380 INVLPG (%r8) # -- -- -- 41 0F 01 38 ; REX to access upper reg.
381 INVLPG (%rax) # -- -- -- -- 0F 01 38
382 INVLPG (%r8) # -- -- -- 41 0F 01 38 ; REX to access upper reg.
383 INVLPG (%rax) # -- -- -- -- 0F 01 38
384 INVLPG (%r8) # -- -- -- 41 0F 01 38 ; REX to access upper reg.
385 INVLPG (%rax) # -- -- -- -- 0F 01 38
386
387 # LAR
388
389 # LGDT
390
391 # LIDT
392
393
394 # LLDT
395
396 # SGDT
397
398 # SIDT
399
400 # SLDT
858bc62d
AJ
401# SLDT (%eax) # -- 67 -- -- 0F 00 00 ; A32 override: (Addr64) = ZEXT(Addr32 )
402 SLDT %eax # -- -- -- -- 0F 00 C0
2b516b72
L
403 SLDT %rax # -- -- -- 48 0F 00 C0
404 SLDT %ax # 66 -- -- -- 0F 00 C0
405 SLDT (%rax) # -- -- -- -- 0F 00 00
831b02f6
NC
406
407 # SWAPGS
408
409
410
411 # IO
412
413 # OUT
414 OUT %al,$0 # -- -- -- -- E6 00
415 OUT %ax,$0 # 66 -- -- -- E7 00 ; O16 for 16-bit operand size
416 OUT %eax,$0 # -- -- -- -- E7 00
417
418 # IN
6fb63971 419
46e883c5
L
420
421
422 xchg %ax,%ax # 66 -- -- -- 90
423 xchg %eax,%eax # -- -- -- -- 87 C0
424 xchg %rax,%rax # -- -- -- -- 90
2b516b72 425 rex64 xchg %rax,%rax # -- -- -- 48 90
46e883c5 426 xchg %rax,%r8 # -- -- -- 49 90
8b38ad71
L
427 xchg %eax,%r8d # -- -- -- 41 90
428 xchg %r8d,%eax # -- -- -- 41 90
429 xchg %eax,%r9d # -- -- -- 41 91
430 xchg %r9d,%eax # -- -- -- 41 91
431 xchg %ebx,%eax # -- -- -- 93
432 xchg %eax,%ebx # -- -- -- 93
433 xchg %ax,%r8w # -- -- -- 66 41 90
434 xchg %r8w,%ax # -- -- -- 66 41 90
435 xchg %ax,%r9w # -- -- -- 66 41 91
436 xchg %r9w,%ax # -- -- -- 66 41 91
46e883c5 437
2b516b72
L
438 smsw %rax # -- -- -- 48 0F 01 e0
439 smsw %eax # -- -- -- -- 0F 01 e0
440 smsw %ax # 66 -- -- -- 0F 01 e0
441 smsw (%rax) # -- -- -- -- 0F 01 20
442
443 str %rax # -- -- -- 48 0F 00 c8
444 str %eax # -- -- -- -- 0F 00 c8
445 str %ax # 66 -- -- -- 0F 00 c8
446 str (%rax) # -- -- -- -- 0F 00 08
447
dfb07592 448 syscall # -- -- -- -- 0F 05
c006a730
JB
449 sysretl # -- -- -- -- 0F 07
450 sysretq # -- -- -- 48 0F 07
dfb07592 451
bbedc832
L
452 swapgs # -- -- -- -- 0F 01 f8
453
d9e3625e 454 pushw $0x2222
7db2c588
JB
455
456 .byte 0xf6, 0xc9, 0x01
457 .byte 0x66, 0xf7, 0xc9, 0x02, 0x00
458 .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00
459 .byte 0x48, 0xf7, 0xc9, 0x08, 0x00, 0x00, 0x00
e4bdd679
BP
460 .byte 0xc0, 0xf0, 0x02
461 .byte 0xc1, 0xf0, 0x01
462 .byte 0x48, 0xc1, 0xf0, 0x01
463 .byte 0xd0, 0xf0
464 .byte 0xd1, 0xf0
465 .byte 0x48, 0xd1, 0xf0
466 .byte 0xd2, 0xf0
467 .byte 0xd3, 0xf0
468 .byte 0x48, 0xd3, 0xf0
This page took 0.905263 seconds and 4 git commands to generate.