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