Commit | Line | Data |
---|---|---|
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 | |
831b02f6 NC |
23 | MOVw %cs,(%r8) # 66 -- -- 41 8C 08 ; REX to access upper reg. O16 for 16-bit operand size |
24 | MOVw %cs,(%rax) # 66 -- -- -- 8C 08 ; O16 for 16-bit operand size | |
25 | MOVw %ss,(%r8) # 66 -- -- 41 8C 10 ; REX to access upper reg. O16 for 16-bit operand size | |
26 | MOVw %ss,(%rax) # 66 -- -- -- 8C 10 ; O16 for 16-bit operand size | |
27 | MOVw %fs,(%r8) # 66 -- -- 41 8C 20 ; REX to access upper reg. O16 for 16-bit operand size | |
28 | MOVw %fs,(%rax) # 66 -- -- -- 8C 20 ; O16 for 16-bit operand size | |
29 | MOVl %cs,(%r8) # -- -- -- 41 8C 08 ; REX to access upper reg. | |
30 | MOVl %cs,(%rax) # -- -- -- -- 8C 08 | |
31 | MOVl %ss,(%r8) # -- -- -- 41 8C 10 ; REX to access upper reg. | |
32 | MOVl %ss,(%rax) # -- -- -- -- 8C 10 | |
33 | MOVl %fs,(%r8) # -- -- -- 41 8C 20 ; REX to access upper reg. | |
34 | MOVl %fs,(%rax) # -- -- -- -- 8C 20 | |
35 | MOVl (%r8),%ss # -- -- -- 41 8E 10 ; REX to access upper reg. | |
36 | MOVl (%rax),%ss # -- -- -- -- 8E 10 | |
37 | MOVl (%r8),%fs # -- -- -- 41 8E 20 ; REX to access upper reg. | |
38 | MOVl (%rax),%fs # -- -- -- -- 8E 20 | |
39 | MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg. | |
40 | MOVb $0,(%rax) # -- -- -- -- C6 00 00 | |
858bc62d AJ |
41 | MOVw $0x7000,(%r8) # 66 -- -- 41 C7 00 00 70 ; REX to access upper reg. O16 for 16-bit operand size |
42 | MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size | |
43 | MOVl $0x70000000,(%r8) # -- -- -- 41 C7 00 00 00 00 70 ; REX to access upper reg. | |
44 | MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70 | |
45 | MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg. | |
46 | MOVb $0,(%rax) # -- -- -- -- C6 00 00 | |
831b02f6 NC |
47 | MOVw $0x7000,(%r8) # 66 -- -- -- 41 C7 00 00 70 ; O16 for 16-bit operand size |
48 | MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size | |
49 | MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70 | |
50 | MOVb $0,(%r8) # -- -- -- 41 C6 00 00 ; REX to access upper reg. | |
51 | MOVb $0,(%rax) # -- -- -- -- C6 00 00 | |
52 | MOVw $0x7000,(%r8) # 66 -- -- 41 C7 00 00 70 ; REX to access upper reg. O16 for 16-bit operand size | |
53 | MOVw $0x7000,(%rax) # 66 -- -- -- C7 00 00 70 ; O16 for 16-bit operand size | |
54 | MOVl $0x70000000,(%r8) # -- -- -- 41 C7 00 00 00 00 70 ; REX to access upper reg. | |
55 | MOVl $0x70000000,(%rax) # -- -- -- -- C7 00 00 00 00 70 | |
858bc62d AJ |
56 | MOVq $0x70000000,(%r8) # -- -- -- 49 C7 00 00 00 00 70 ; REX for 64-bit operand size. REX to access upper reg. |
57 | MOVq $0x70000000,(%rax) # -- -- -- 48 C7 00 00 00 00 70 ; REX for 64-bit operand size | |
58 | ||
59 | # MOVNTI | |
831b02f6 NC |
60 | MOVNTI %eax,(%r8) # -- -- -- 41 0f c3 00 ; REX to access upper reg. |
61 | MOVNTI %eax,(%rax) # -- -- -- -- 0f c3 00 | |
62 | MOVNTI %rax,(%r8) # -- -- -- 49 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size | |
63 | MOVNTI %rax,(%rax) # -- -- -- 48 0F C3 00 ; REX for 64-bit operand size. REX to access upper reg. | |
64 | MOVNTI %r8,(%r8) # -- -- -- 4D 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size | |
65 | MOVNTI %r8,(%rax) # -- -- -- 4C 0F C3 00 ; REX to access upper reg. REX for 64-bit operand size | |
66 | ||
67 | # Conditionals | |
68 | ||
69 | # LOOP | |
70 | ||
71 | ||
72 | # Jcc | |
73 | # 66 -- -- -- 77 FD ; A16 override: (Addr64) = ZEXT(Addr16) | |
74 | # 66 -- -- -- 0F 87 F9 FF FF FF ; A16 override: (Addr64) = ZEXT(Addr16) | |
75 | ||
76 | # J*CXZ | |
77 | # 66 67 -- -- E3 FC ; ECX used as counter. A16 override: (Addr64) = ZEXT(Addr16) | |
78 | # 66 -- -- -- E3 FD ; A16 override: (Addr64) = ZEXT(Addr16) | |
79 | ||
80 | ||
81 | ||
82 | # Integer | |
83 | ||
84 | # IDIV | |
85 | ||
86 | IDIVb (%r8) # -- -- -- 41 F6 38 ; Sign extended result. REX to access upper reg. | |
87 | IDIVb (%rax) # -- -- -- -- F6 38 ; Sign extended result | |
88 | IDIVw (%r8) # 66 -- -- 41 F7 38 ; Sign extended result. REX to access upper reg. O16 for 16-bit | |
89 | IDIVw (%rax) # 66 -- -- -- F7 38 ; Sign extended result. O16 for 16-bit operand size | |
90 | IDIVl (%r8) # -- -- -- 41 F7 38 ; Sign extended result. REX to access upper reg | |
91 | IDIVl (%rax) # -- -- -- -- F7 38 ; Sign extended result | |
92 | IDIVq (%r8) # -- -- -- 49 F7 38 ; Sign extended result. REX for 64-bit operand size. REX to access u | |
93 | IDIVq (%rax) # -- -- -- 48 F7 38 ; Sign extended result. REX for 64-bit operand size | |
94 | ||
95 | # IMUL | |
96 | IMULb (%r8) # -- -- -- 41 F6 28 ; Sign extended result. REX to access upper reg | |
97 | IMULb (%rax) # -- -- -- -- F6 28 ; Sign extended result | |
98 | IMULw (%r8) # 66 -- -- 41 F7 28 ; Sign extended result. O16 for 16-bit operand size. REX to access | |
99 | IMULw (%rax) # 66 -- -- -- F7 28 ; Sign extended result. O16 for 16-bit operand size | |
100 | IMULl (%r8) # -- -- -- 41 F7 28 ; Sign extended result. REX to access upper reg | |
101 | IMULl (%rax) # -- -- -- -- F7 28 ; Sign extended result | |
102 | IMULq (%r8) # -- -- -- 49 F7 28 ; Sign extended result. REX for 64-bit operand size. REX to access u | |
103 | IMULq (%rax) # -- -- -- 48 F7 28 ; Sign extended result. REX for 64-bit operand size | |
104 | ||
105 | ||
106 | ||
107 | # SIMD/SSE | |
108 | ||
109 | # ADDPD | |
110 | ADDPD (%r8),%xmm0 # -- -- 66 41 0F 58 00 ; REX to access upper reg. OVR 128bit MMinstr. | |
111 | ADDPD (%rax),%xmm0 # -- -- 66 -- 0F 58 00 ; OVR 128bit MMinstr. | |
112 | ADDPD (%r8),%xmm15 # -- -- 66 45 0F 58 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
113 | ADDPD (%rax),%xmm15 # -- -- 66 44 0F 58 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
114 | ADDPD (%r8),%xmm8 # -- -- 66 45 0F 58 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
115 | ADDPD (%rax),%xmm8 # -- -- 66 44 0F 58 00 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
116 | ADDPD (%r8),%xmm7 # -- -- 66 41 0F 58 38 ; REX to access upper reg. OVR 128bit MMinstr. | |
117 | ADDPD (%rax),%xmm7 # -- -- 66 -- 0F 58 38 ; OVR 128bit MMinstr. | |
118 | ADDPD %xmm0,%xmm0 # -- -- 66 -- 0F 58 C0 ; OVR 128bit MMinstr. | |
119 | ADDPD %xmm15,%xmm15 # -- -- 66 45 0F 58 FF ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
120 | ADDPD %xmm15,%xmm8 # -- -- 66 45 0F 58 C7 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
121 | ||
122 | # CMPPD | |
858bc62d AJ |
123 | |
124 | # CVTSD2SI | |
125 | 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. | |
126 | CVTSD2SIq (%rax),%rax # -- -- F2 48 0f 2d 00 ; OVR 128-bit media instruction override REX for 64-bit operand size | |
127 | 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. | |
128 | 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. | |
129 | CVTSD2SIq %xmm0,%rax # -- -- F2 48 0f 2d c0 ; OVR 128-bit media instruction override REX for 64-bit operand size | |
130 | 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. | |
131 | 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 | |
132 | 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. | |
133 | 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 | |
134 | 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. | |
135 | CVTSD2SIq %xmm7,%rax # -- -- F2 48 0f 2d c7 ; OVR 128-bit media instruction override REX for 64-bit operand size | |
136 | 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. | |
137 | ||
138 | # CVTTSD2SI | |
139 | 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. | |
140 | CVTTSD2SIq (%rax),%rax # -- -- F2 48 0f 2c 00 ; OVR 128-bit media instruction override REX for 64-bit operand size | |
141 | 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. | |
142 | 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. | |
143 | CVTTSD2SIq %xmm0,%rax # -- -- F2 48 0f 2c c0 ; OVR 128-bit media instruction override REX for 64-bit operand size | |
144 | 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. | |
145 | 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 | |
146 | 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. | |
147 | 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 | |
148 | 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. | |
149 | CVTTSD2SIq %xmm7,%rax # -- -- F2 48 0f 2c c7 ; OVR 128-bit media instruction override REX for 64-bit operand size | |
150 | 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. | |
151 | ||
152 | # CVTSS2SI | |
153 | 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. | |
154 | CVTSS2SIq (%rax),%rax # -- -- F3 48 0f 2d 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
155 | 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. | |
156 | 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. | |
157 | CVTSS2SIq %xmm0,%rax # -- -- F3 48 0f 2d c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
158 | 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. | |
159 | 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 | |
160 | 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. | |
161 | CVTSS2SIq %xmm8,%rax # -- -- F3 49 0f 2d c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
162 | 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. | |
163 | CVTSS2SIq %xmm7,%rax # -- -- F3 48 0f 2d c7 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
164 | 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. | |
165 | ||
166 | # CVTTSS2SI | |
167 | 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. | |
168 | CVTTSS2SIq (%rax),%rax # -- -- F3 48 0f 2c 00 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
169 | 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. | |
170 | 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. | |
171 | CVTTSS2SIq %xmm0,%rax # -- -- F3 48 0f 2c c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
172 | 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. | |
173 | 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 | |
174 | 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. | |
175 | CVTTSS2SIq %xmm8,%rax # -- -- F3 49 0f 2c c0 ; OVR 128-bit media instruction override Result is sign extended REX for 64-bit operand size | |
176 | 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. | |
177 | CVTTSS2SIq %xmm7,%rax # -- -- F3 48 0f 2c c7 ; OVR 128-bit media instruction override Result is sign extended | |
178 | 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. | |
179 | ||
180 | # CVTSI2SS | |
181 | CVTSI2SS (%r8),%xmm0 # -- -- F3 41 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper reg. | |
182 | CVTSI2SS (%rax),%xmm0 # -- -- F3 -- 0f 2a 00 ; OVR 128-bit media instruction override | |
183 | CVTSI2SS (%r8),%xmm15 # -- -- F3 45 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg. | |
184 | CVTSI2SS (%rax),%xmm15 # -- -- F3 44 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg | |
185 | CVTSI2SS (%r8),%xmm8 # -- -- F3 45 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg. | |
186 | CVTSI2SS (%rax),%xmm8 # -- -- F3 44 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg | |
187 | CVTSI2SS (%r8),%xmm7 # -- -- F3 41 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper reg. | |
188 | CVTSI2SS (%rax),%xmm7 # -- -- F3 -- 0f 2a 38 ; OVR 128-bit media instruction override | |
189 | CVTSI2SS %eax,%xmm0 # -- -- F3 -- 0f 2a c0 ; OVR 128-bit media instruction override | |
190 | CVTSI2SS %eax,%xmm15 # -- -- F3 44 0f 2a f8 ; OVR 128-bit media instruction override REX to access upper XMM reg | |
191 | CVTSI2SS %eax,%xmm8 # -- -- F3 44 0f 2a c0 ; OVR 128-bit media instruction override REX to access upper XMM reg | |
192 | CVTSI2SS %eax,%xmm7 # -- -- F3 -- 0f 2a f8 ; OVR 128-bit media instruction override | |
193 | CVTSI2SS (%r8),%xmm0 # -- -- F3 41 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper reg. | |
194 | CVTSI2SS (%rax),%xmm0 # -- -- F3 -- 0f 2a 00 ; OVR 128-bit media instruction override | |
195 | CVTSI2SS (%r8),%xmm15 # -- -- F3 45 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg. | |
196 | CVTSI2SS (%rax),%xmm15 # -- -- F3 44 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper XMM reg | |
197 | CVTSI2SS (%r8),%xmm8 # -- -- F3 45 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg REX to access upper reg. | |
198 | CVTSI2SS (%rax),%xmm8 # -- -- F3 44 0f 2a 00 ; OVR 128-bit media instruction override REX to access upper XMM reg | |
199 | CVTSI2SS (%r8),%xmm7 # -- -- F3 41 0f 2a 38 ; OVR 128-bit media instruction override REX to access upper reg. | |
200 | CVTSI2SS (%rax),%xmm7 # -- -- F3 -- 0f 2a 38 ; OVR 128-bit media instruction override | |
201 | ||
831b02f6 NC |
202 | # CVTSI2SD |
203 | CVTSI2SD (%r8),%xmm0 # -- -- F2 41 0F 2A 00 ; REX to access upper reg. OVR 128bit MMinstr. | |
204 | CVTSI2SD (%rax),%xmm0 # -- -- F2 -- 0F 2A 00 ; OVR 128bit MMinstr. | |
205 | CVTSI2SD (%r8),%xmm15 # -- -- F2 45 0F 2A 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
206 | CVTSI2SD (%rax),%xmm15 # -- -- F2 44 0F 2A 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
207 | CVTSI2SD (%r8),%xmm8 # -- -- F2 45 0F 2A 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
208 | CVTSI2SD (%rax),%xmm8 # -- -- F2 44 0F 2A 00 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
209 | CVTSI2SD (%r8),%xmm7 # -- -- F2 41 0F 2A 38 ; REX to access upper reg. OVR 128bit MMinstr. | |
210 | CVTSI2SD (%rax),%xmm7 # -- -- F2 -- 0F 2A 38 ; OVR 128bit MMinstr. | |
211 | CVTSI2SD %eax,%xmm0 # -- -- F2 -- 0F 2A C0 ; OVR 128bit MMinstr. | |
212 | CVTSI2SD %eax,%xmm15 # -- -- F2 44 0F 2A F8 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
213 | CVTSI2SD %eax,%xmm8 # -- -- F2 44 0F 2A C0 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
214 | CVTSI2SD %eax,%xmm7 # -- -- F2 -- 0F 2A F8 ; OVR 128bit MMinstr. | |
215 | CVTSI2SD (%r8),%xmm0 # -- -- F2 41 0F 2A 00 ; REX to access upper reg. OVR 128bit MMinstr. | |
216 | CVTSI2SD (%rax),%xmm0 # -- -- F2 -- 0F 2A 00 ; OVR 128bit MMinstr. | |
217 | CVTSI2SD (%r8),%xmm15 # -- -- F2 45 0F 2A 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
218 | CVTSI2SD (%rax),%xmm15 # -- -- F2 44 0F 2A 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
219 | CVTSI2SD (%r8),%xmm8 # -- -- F2 45 0F 2A 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
220 | CVTSI2SD (%rax),%xmm8 # -- -- F2 44 0F 2A 00 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
221 | CVTSI2SD (%r8),%xmm7 # -- -- F2 41 0F 2A 38 ; REX to access upper reg. OVR 128bit MMinstr. | |
222 | CVTSI2SD (%rax),%xmm7 # -- -- F2 -- 0F 2A 38 ; OVR 128bit MMinstr. | |
223 | ||
224 | # MOVD | |
225 | MOVD (%r8),%xmm0 # -- -- 66 41 0F 6E 00 ; REX to access upper reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
226 | MOVD (%rax),%xmm0 # -- -- 66 -- 0F 6E 00 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
227 | MOVD (%r8),%xmm15 # -- -- 66 45 0F 6E 38 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data32) | |
228 | MOVD (%rax),%xmm15 # -- -- 66 44 0F 6E 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
229 | MOVD (%r8),%xmm8 # -- -- 66 45 0F 6E 00 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data32) | |
230 | MOVD (%rax),%xmm8 # -- -- 66 44 0F 6E 00 ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
231 | MOVD (%r8),%xmm7 # -- -- 66 41 0F 6E 38 ; REX to access upper reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
232 | MOVD (%rax),%xmm7 # -- -- 66 -- 0F 6E 38 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
233 | MOVD %eax,%xmm0 # -- -- 66 -- 0F 6E C0 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
234 | MOVD %eax,%xmm15 # -- -- 66 44 0F 6E F8 ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
235 | MOVD %eax,%xmm8 # -- -- 66 44 0F 6E C0 ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
236 | MOVD %eax,%xmm7 # -- -- 66 -- 0F 6E F8 ; Data128 = ZEXT(Data32). OVR 128bit MMinstr. | |
237 | MOVD %xmm0,(%r8) # -- -- 66 41 0F 7E 00 ; REX to access upper reg. OVR 128bit MMinstr. | |
238 | MOVD %xmm0,(%rax) # -- -- 66 -- 0F 7E 00 ; OVR 128bit MMinstr. | |
239 | MOVD %xmm15,(%r8) # -- -- 66 45 0F 7E 38 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
240 | MOVD %xmm15,(%rax) # -- -- 66 44 0F 7E 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
241 | MOVD %xmm8,(%r8) # -- -- 66 45 0F 7E 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
242 | MOVD %xmm8,(%rax) # -- -- 66 44 0F 7E 00 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
243 | MOVD %xmm7,(%r8) # -- -- 66 41 0F 7E 38 ; REX to access upper reg. OVR 128bit MMinstr. | |
244 | MOVD %xmm7,(%rax) # -- -- 66 -- 0F 7E 38 ; OVR 128bit MMinstr. | |
245 | MOVD %xmm0,%eax # -- -- 66 -- 0F 7E C0 ; OVR 128bit MMinstr. | |
246 | MOVD %xmm15,%eax # -- -- 66 44 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
247 | MOVD %xmm8,%eax # -- -- 66 44 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
248 | MOVD %xmm7,%eax # -- -- 66 -- 0F 7E F8 ; OVR 128bit MMinstr. | |
249 | ||
250 | # MOVQ | |
251 | MOVQ (%r8),%xmm0 # -- -- F3 41 0F 7E 00 ; REX to access upper reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr. | |
252 | MOVQ (%rax),%xmm0 # -- -- F3 -- 0F 7E 00 ; Data128 = ZEXT(Data64). OVR 128bit MMinstr. | |
253 | MOVQ (%r8),%xmm15 # -- -- F3 45 0F 7E 38 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data64) | |
254 | MOVQ (%rax),%xmm15 # -- -- F3 44 0F 7E 38 ; REX to access upper XMM reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr. | |
255 | MOVQ (%r8),%xmm8 # -- -- F3 45 0F 7E 00 ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data64) | |
256 | MOVQ (%rax),%xmm8 # -- -- F3 44 0F 7E 00 ; REX to access upper XMM reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr. | |
257 | MOVQ (%r8),%xmm7 # -- -- F3 41 0F 7E 38 ; REX to access upper reg. Data128 = ZEXT(Data64). OVR 128bit MMinstr. | |
258 | MOVQ (%rax),%xmm7 # -- -- F3 -- 0F 7E 38 ; Data128 = ZEXT(Data64). OVR 128bit MMinstr. | |
259 | MOVQ %xmm0,%xmm0 # -- -- F3 -- 0F 7E C0 ; OVR 128bit MMinstr. | |
260 | MOVQ %xmm15,%xmm15 # -- -- F3 45 0F 7E FF ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
261 | MOVQ %xmm15,%xmm8 # -- -- F3 45 0F 7E C7 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
262 | MOVQ %xmm15,%xmm7 # -- -- F3 41 0F 7E FF ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
263 | MOVQ %xmm15,%xmm0 # -- -- F3 41 0F 7E C7 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
264 | MOVQ %xmm8,%xmm15 # -- -- F3 45 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
265 | MOVQ %xmm8,%xmm8 # -- -- F3 45 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
266 | MOVQ %xmm8,%xmm7 # -- -- F3 41 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
267 | MOVQ %xmm8,%xmm0 # -- -- F3 41 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
268 | MOVQ %xmm7,%xmm15 # -- -- F3 44 0F 7E FF ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
269 | MOVQ %xmm7,%xmm8 # -- -- F3 44 0F 7E C7 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
270 | MOVQ %xmm7,%xmm7 # -- -- F3 -- 0F 7E FF ; OVR 128bit MMinstr. | |
271 | MOVQ %xmm7,%xmm0 # -- -- F3 -- 0F 7E C7 ; OVR 128bit MMinstr. | |
272 | MOVQ %xmm0,%xmm15 # -- -- F3 44 0F 7E F8 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
273 | MOVQ %xmm0,%xmm8 # -- -- F3 44 0F 7E C0 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
274 | MOVQ %xmm0,%xmm7 # -- -- F3 -- 0F 7E F8 ; OVR 128bit MMinstr. | |
275 | MOVQ %xmm0,(%r8) # -- -- 66 41 0F D6 00 ; REX to access upper reg. OVR 128bit MMinstr. | |
276 | MOVQ %xmm0,(%rax) # -- -- 66 -- 0F D6 00 ; OVR 128bit MMinstr. | |
277 | MOVQ %xmm15,(%r8) # -- -- 66 45 0F D6 38 ; REX to access upper reg. OVR 128bit MMinstr. | |
278 | MOVQ %xmm15,(%rax) # -- -- 66 44 0F D6 38 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
279 | MOVQ %xmm8,(%r8) # -- -- 66 45 0F D6 00 ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr. | |
280 | MOVQ %xmm8,(%rax) # -- -- 66 44 0F D6 00 ; REX to access upper XMM reg. OVR 128bit MMinstr. | |
281 | MOVQ %xmm7,(%r8) # -- -- 66 41 0F D6 38 ; REX to access upper reg. OVR 128bit MMinstr. | |
282 | ||
283 | # 64-bit MMX | |
284 | ||
285 | # CVTPD2PI | |
286 | ||
287 | # MOVD | |
288 | MOVD (%r8),%mm0 # -- -- -- 41 0F 6E 00 ; REX to access upper reg. Data64 = ZEXT(Data32) | |
289 | MOVD (%rax),%mm0 # -- -- -- -- 0F 6E 00 ; Data64 = ZEXT(Data32) | |
290 | MOVD (%r8),%mm7 # -- -- -- 41 0F 6E 38 ; REX to access upper reg. Data64 = ZEXT(Data32) | |
291 | MOVD (%rax),%mm7 # -- -- -- -- 0F 6E 38 ; Data64 = ZEXT(Data32) | |
292 | MOVD %eax,%mm0 # -- -- -- -- 0F 6E C0 ; Data64 = ZEXT(Data32) | |
293 | MOVD %eax,%mm7 # -- -- -- -- 0F 6E F8 ; Data64 = ZEXT(Data32) | |
294 | MOVD %mm0,(%r8) # -- -- -- 41 0F 7E 00 ; REX to access upper reg. | |
295 | MOVD %mm0,(%rax) # -- -- -- -- 0F 7E 00 | |
296 | MOVD %mm7,(%r8) # -- -- -- 41 0F 7E 38 ; REX to access upper reg. | |
297 | MOVD %mm7,(%rax) # -- -- -- -- 0F 7E 38 | |
298 | MOVD %mm0,%eax # -- -- -- -- 0F 7E C0 | |
299 | MOVD %mm7,%eax # -- -- -- -- 0F 7E F8 | |
300 | ||
301 | # MOVQ | |
302 | MOVQ (%r8),%mm0 # -- -- -- 41 0F 6F 00 ; REX to access upper reg. | |
303 | MOVQ (%rax),%mm0 # -- -- -- -- 0F 6F 00 | |
304 | MOVQ (%r8),%mm7 # -- -- -- 41 0F 6F 38 ; REX to access upper reg. | |
305 | MOVQ (%rax),%mm7 # -- -- -- -- 0F 6F 38 | |
306 | MOVQ %mm0,(%r8) # -- -- -- 41 0F 7F 00 ; REX to access upper reg. | |
307 | MOVQ %mm0,(%rax) # -- -- -- -- 0F 7F 00 | |
308 | MOVQ %mm7,(%r8) # -- -- -- 41 0F 7F 38 ; REX to access upper reg. | |
309 | MOVQ %mm7,(%rax) # -- -- -- -- 0F 7F 38 | |
310 | ||
311 | # X87 | |
312 | # FADDP | |
313 | ||
314 | ||
315 | # FDIV | |
316 | ||
317 | # Stack Operations | |
318 | ||
319 | # POP | |
320 | POPq (%r8) # -- -- -- 41 8F 00 ; REX to access upper reg. | |
321 | POPq (%rax) # -- -- -- -- 8F 00 | |
322 | POPFQ # -- -- -- -- 9D | |
323 | ||
324 | # PUSH | |
325 | PUSHq (%r8) # -- -- -- 41 FF 30 ; REX to access upper reg. | |
326 | PUSHq (%rax) # -- -- -- -- FF 30 | |
327 | PUSHFQ # -- -- -- -- 9C | |
328 | ||
329 | ||
330 | ||
331 | ||
332 | ||
333 | # MMX/XMM/x87 State | |
334 | # FNSAVE | |
335 | # FRSTOR | |
336 | # FSAVE | |
337 | # FXRSTOR | |
338 | # FXSAVE | |
339 | # EMMS | |
340 | EMMS # -- -- -- -- 0F 77 | |
341 | # FEMMS | |
342 | FEMMS # -- -- -- -- 0F 0E | |
343 | ||
344 | # LEA calculation | |
345 | ||
346 | # MISC System Instructions | |
347 | # CLFLUSH | |
348 | ||
349 | # INVD | |
350 | INVD # -- -- -- -- 0F 08 | |
351 | ||
352 | # INVLPG | |
353 | INVLPG (%r8) # -- -- -- 41 0F 01 38 ; REX to access upper reg. | |
354 | INVLPG (%rax) # -- -- -- -- 0F 01 38 | |
355 | INVLPG (%r8) # -- -- -- 41 0F 01 38 ; REX to access upper reg. | |
356 | INVLPG (%rax) # -- -- -- -- 0F 01 38 | |
357 | INVLPG (%r8) # -- -- -- 41 0F 01 38 ; REX to access upper reg. | |
358 | INVLPG (%rax) # -- -- -- -- 0F 01 38 | |
359 | ||
360 | # LAR | |
361 | ||
362 | # LGDT | |
363 | ||
364 | # LIDT | |
365 | ||
366 | ||
367 | # LLDT | |
368 | ||
369 | # SGDT | |
370 | ||
371 | # SIDT | |
372 | ||
373 | # SLDT | |
858bc62d AJ |
374 | # SLDT (%eax) # -- 67 -- -- 0F 00 00 ; A32 override: (Addr64) = ZEXT(Addr32 ) |
375 | SLDT %eax # -- -- -- -- 0F 00 C0 | |
831b02f6 NC |
376 | |
377 | # SWAPGS | |
378 | ||
379 | ||
380 | ||
381 | # IO | |
382 | ||
383 | # OUT | |
384 | OUT %al,$0 # -- -- -- -- E6 00 | |
385 | OUT %ax,$0 # 66 -- -- -- E7 00 ; O16 for 16-bit operand size | |
386 | OUT %eax,$0 # -- -- -- -- E7 00 | |
387 | ||
388 | # IN | |
6fb63971 AM |
389 | |
390 | .p2align 4,0 |