Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-opcode.s
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
10
11         # RET
12         lret                          # --  --  -- --   CB
13         retq                          # --  --  -- --   C3
14
15         # IRET
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
19
20         # CMP
21
22         # MOV
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
33         MOVb $0,(%r8)                 # --  --  -- 41   C6 00 00                         ; REX to access upper reg.
34         MOVb $0,(%rax)                # --  --  -- --   C6 00 00
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
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
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
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
64
65
66         # Jcc
67                                       #  66  --  -- --   77 FD                           ; A16 override: (Addr64) = ZEXT(Addr16)
68                                       #  66  --  -- --   0F 87 F9 FF FF FF               ; A16 override: (Addr64) = ZEXT(Addr16)
69
70         # J*CXZ
71                                       #  66  67  -- --   E3 FC                           ; ECX used as counter. A16 override: (Addr64) = ZEXT(Addr16)
72                                       #  66  --  -- --   E3 FD                           ; A16 override: (Addr64) = ZEXT(Addr16)
73
74
75
76         # Integer
77
78         # IDIV
79
80         IDIVb (%r8)                   #  --  --  -- 41   F6 38                           ; Sign extended result. REX to access upper reg.
81         IDIVb (%rax)                  #  --  --  -- --   F6 38                           ; Sign extended result
82         IDIVw (%r8)                   #  66  --  -- 41   F7 38                           ; Sign extended result. REX to access upper reg. O16 for 16-bit
83         IDIVw (%rax)                  #  66  --  -- --   F7 38                           ; Sign extended result. O16 for 16-bit operand size
84         IDIVl (%r8)                   #  --  --  -- 41   F7 38                           ; Sign extended result. REX to access upper reg
85         IDIVl (%rax)                  #  --  --  -- --   F7 38                           ; Sign extended result
86         IDIVq (%r8)                   #  --  --  -- 49   F7 38                           ; Sign extended result. REX for 64-bit operand size. REX to access u
87         IDIVq (%rax)                  #  --  --  -- 48   F7 38                           ; Sign extended result. REX for 64-bit operand size
88
89         # IMUL
90         IMULb (%r8)                   #  --  --  -- 41   F6 28                           ; Sign extended result. REX to access upper reg
91         IMULb (%rax)                  #  --  --  -- --   F6 28                           ; Sign extended result
92         IMULw (%r8)                   #  66  --  -- 41   F7 28                           ; Sign extended result. O16 for 16-bit operand size. REX to access
93         IMULw (%rax)                  #  66  --  -- --   F7 28                           ; Sign extended result. O16 for 16-bit operand size
94         IMULl (%r8)                   #  --  --  -- 41   F7 28                           ; Sign extended result. REX to access upper reg
95         IMULl (%rax)                  #  --  --  -- --   F7 28                           ; Sign extended result
96         IMULq (%r8)                   #  --  --  -- 49   F7 28                           ; Sign extended result. REX for 64-bit operand size. REX to access u
97         IMULq (%rax)                  #  --  --  -- 48   F7 28                           ; Sign extended result. REX for 64-bit operand size
98
99
100
101         # SIMD/SSE
102
103         # ADDPD
104         ADDPD  (%r8),%xmm0            #  --  --  66 41   0F 58 00                        ; REX to access upper reg. OVR 128bit MMinstr.
105         ADDPD  (%rax),%xmm0           #  --  --  66 --   0F 58 00                        ; OVR 128bit MMinstr.
106         ADDPD  (%r8),%xmm15           #  --  --  66 45   0F 58 38                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
107         ADDPD  (%rax),%xmm15          #  --  --  66 44   0F 58 38                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
108         ADDPD  (%r8),%xmm8            #  --  --  66 45   0F 58 00                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
109         ADDPD  (%rax),%xmm8           #  --  --  66 44   0F 58 00                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
110         ADDPD  (%r8),%xmm7            #  --  --  66 41   0F 58 38                        ; REX to access upper reg. OVR 128bit MMinstr.
111         ADDPD  (%rax),%xmm7           #  --  --  66 --   0F 58 38                        ; OVR 128bit MMinstr.
112         ADDPD  %xmm0,%xmm0            #  --  --  66 --   0F 58 C0                        ; OVR 128bit MMinstr.
113         ADDPD  %xmm15,%xmm15          #  --  --  66 45   0F 58 FF                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
114         ADDPD  %xmm15,%xmm8           #  --  --  66 45   0F 58 C7                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
115
116         # CMPPD
117
118         # CVTSD2SI
119         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.
120         CVTSD2SIq (%rax),%rax         #  --  --  F2 48   0f 2d 00                        ; OVR 128-bit media instruction override REX for 64-bit operand size
121         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.
122         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.
123         CVTSD2SIq %xmm0,%rax          #  --  --  F2 48   0f 2d c0                        ; OVR 128-bit media instruction override REX for 64-bit operand size
124         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.
125         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
126         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.
127         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
128         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.
129         CVTSD2SIq %xmm7,%rax          #  --  --  F2 48   0f 2d c7                        ; OVR 128-bit media instruction override REX for 64-bit operand size
130         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.
131
132         # CVTTSD2SI
133         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.
134         CVTTSD2SIq (%rax),%rax        #  --  --  F2 48   0f 2c 00                        ; OVR 128-bit media instruction override REX for 64-bit operand size
135         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.
136         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.
137         CVTTSD2SIq %xmm0,%rax         #  --  --  F2 48   0f 2c c0                        ; OVR 128-bit media instruction override REX for 64-bit operand size
138         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.
139         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
140         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.
141         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
142         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.
143         CVTTSD2SIq %xmm7,%rax         #  --  --  F2 48   0f 2c c7                        ; OVR 128-bit media instruction override REX for 64-bit operand size
144         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.
145
146         # CVTSS2SI
147         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.
148         CVTSS2SIq (%rax),%rax         #  --  --  F3 48   0f 2d 00                        ; OVR 128-bit media instruction override Result is sign extended                       REX for 64-bit operand size
149         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.
150         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.
151         CVTSS2SIq %xmm0,%rax          #  --  --  F3 48   0f 2d c0                        ; OVR 128-bit media instruction override Result is sign extended                       REX for 64-bit operand size
152         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.
153         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
154         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.
155         CVTSS2SIq %xmm8,%rax          #  --  --  F3 49   0f 2d c0                        ; OVR 128-bit media instruction override Result is sign extended                          REX for 64-bit operand size
156         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.
157         CVTSS2SIq %xmm7,%rax          #  --  --  F3 48   0f 2d c7                        ; OVR 128-bit media instruction override Result is sign extended                          REX for 64-bit operand size
158         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.
159
160         # CVTTSS2SI
161         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.
162         CVTTSS2SIq (%rax),%rax        #  --  --  F3 48   0f 2c 00                        ; OVR 128-bit media instruction override Result is sign extended                        REX for 64-bit operand size
163         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.
164         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.
165         CVTTSS2SIq %xmm0,%rax         #  --  --  F3 48   0f 2c c0                        ; OVR 128-bit media instruction override Result is sign extended                        REX for 64-bit operand size
166         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.
167         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
168         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.
169         CVTTSS2SIq %xmm8,%rax         #  --  --  F3 49   0f 2c c0                        ; OVR 128-bit media instruction override Result is sign extended                        REX for 64-bit operand size
170         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.
171         CVTTSS2SIq %xmm7,%rax         #  --  --  F3 48   0f 2c c7                        ; OVR 128-bit media instruction override Result is sign extended
172         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.
173
174         # CVTSI2SS
175         CVTSI2SS  (%r8),%xmm0         #  --  --  F3 41   0f 2a 00                        ; OVR 128-bit media instruction override REX to access upper reg.
176         CVTSI2SS  (%rax),%xmm0        #  --  --  F3 --   0f 2a 00        ; OVR 128-bit media instruction override
177         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.
178         CVTSI2SS  (%rax),%xmm15       #  --  --  F3 44   0f 2a 38                        ; OVR 128-bit media instruction override REX to access upper XMM reg
179         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.
180         CVTSI2SS  (%rax),%xmm8        #  --  --  F3 44   0f 2a 00                        ; OVR 128-bit media instruction override REX to access upper XMM reg
181         CVTSI2SS  (%r8),%xmm7         #  --  --  F3 41   0f 2a 38                        ; OVR 128-bit media instruction override REX to access upper reg.
182         CVTSI2SS  (%rax),%xmm7        #  --  --  F3 --   0f 2a 38                        ; OVR 128-bit media instruction override
183         CVTSI2SS  %eax,%xmm0          #  --  --  F3 --   0f 2a c0                        ; OVR 128-bit media instruction override
184         CVTSI2SS  %eax,%xmm15         #  --  --  F3 44   0f 2a f8                        ; OVR 128-bit media instruction override REX to access upper XMM reg
185         CVTSI2SS  %eax,%xmm8          #  --  --  F3 44   0f 2a c0                        ; OVR 128-bit media instruction override REX to access upper XMM reg
186         CVTSI2SS  %eax,%xmm7          #  --  --  F3 --   0f 2a f8                        ; OVR 128-bit media instruction override
187         CVTSI2SS  (%r8),%xmm0         #  --  --  F3 41   0f 2a 00                        ; OVR 128-bit media instruction override REX to access upper reg.
188         CVTSI2SS  (%rax),%xmm0        #  --  --  F3 --   0f 2a 00                        ; OVR 128-bit media instruction override
189         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.
190         CVTSI2SS  (%rax),%xmm15       #  --  --  F3 44   0f 2a 38                        ; OVR 128-bit media instruction override REX to access upper XMM reg
191         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.
192         CVTSI2SS  (%rax),%xmm8        #  --  --  F3 44   0f 2a 00                        ; OVR 128-bit media instruction override REX to access upper XMM reg
193         CVTSI2SS  (%r8),%xmm7         #  --  --  F3 41   0f 2a 38                        ; OVR 128-bit media instruction override REX to access upper reg.
194         CVTSI2SS  (%rax),%xmm7        #  --  --  F3 --   0f 2a 38                        ; OVR 128-bit media instruction override
195
196         # CVTSI2SD
197         CVTSI2SD  (%r8),%xmm0         #  --  --  F2 41   0F 2A 00                        ; REX to access upper reg. OVR 128bit MMinstr.
198         CVTSI2SD  (%rax),%xmm0        #  --  --  F2 --   0F 2A 00                        ; OVR 128bit MMinstr.
199         CVTSI2SD  (%r8),%xmm15        #  --  --  F2 45   0F 2A 38                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
200         CVTSI2SD  (%rax),%xmm15       #  --  --  F2 44   0F 2A 38                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
201         CVTSI2SD  (%r8),%xmm8         #  --  --  F2 45   0F 2A 00                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
202         CVTSI2SD  (%rax),%xmm8        #  --  --  F2 44   0F 2A 00                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
203         CVTSI2SD  (%r8),%xmm7         #  --  --  F2 41   0F 2A 38                        ; REX to access upper reg. OVR 128bit MMinstr.
204         CVTSI2SD  (%rax),%xmm7        #  --  --  F2 --   0F 2A 38                        ; OVR 128bit MMinstr.
205         CVTSI2SD  %eax,%xmm0          #  --  --  F2 --   0F 2A C0                        ; OVR 128bit MMinstr.
206         CVTSI2SD  %eax,%xmm15         #  --  --  F2 44   0F 2A F8                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
207         CVTSI2SD  %eax,%xmm8          #  --  --  F2 44   0F 2A C0                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
208         CVTSI2SD  %eax,%xmm7          #  --  --  F2 --   0F 2A F8                        ; OVR 128bit MMinstr.
209         CVTSI2SD  (%r8),%xmm0         #  --  --  F2 41   0F 2A 00                        ; REX to access upper reg. OVR 128bit MMinstr.
210         CVTSI2SD  (%rax),%xmm0        #  --  --  F2 --   0F 2A 00                        ; OVR 128bit MMinstr.
211         CVTSI2SD  (%r8),%xmm15        #  --  --  F2 45   0F 2A 38                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
212         CVTSI2SD  (%rax),%xmm15       #  --  --  F2 44   0F 2A 38                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
213         CVTSI2SD  (%r8),%xmm8         #  --  --  F2 45   0F 2A 00                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
214         CVTSI2SD  (%rax),%xmm8        #  --  --  F2 44   0F 2A 00                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
215         CVTSI2SD  (%r8),%xmm7         #  --  --  F2 41   0F 2A 38                        ; REX to access upper reg. OVR 128bit MMinstr.
216         CVTSI2SD  (%rax),%xmm7        #  --  --  F2 --   0F 2A 38                        ; OVR 128bit MMinstr.
217
218         # MOVD
219         MOVD (%r8),%xmm0              #  --  --  66 41   0F 6E 00                        ; REX to access upper reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
220         MOVD (%rax),%xmm0             #  --  --  66 --   0F 6E 00                        ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
221         MOVD (%r8),%xmm15             #  --  --  66 45   0F 6E 38                        ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data32)
222         MOVD (%rax),%xmm15            #  --  --  66 44   0F 6E 38                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
223         MOVD (%r8),%xmm8              #  --  --  66 45   0F 6E 00                        ; REX to access upper XMM reg. REX to access upper reg. Data128 = ZEXT(Data32)
224         MOVD (%rax),%xmm8             #  --  --  66 44   0F 6E 00                        ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
225         MOVD (%r8),%xmm7              #  --  --  66 41   0F 6E 38                        ; REX to access upper reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
226         MOVD (%rax),%xmm7             #  --  --  66 --   0F 6E 38                        ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
227         MOVD %eax,%xmm0               #  --  --  66 --   0F 6E C0                        ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
228         MOVD %eax,%xmm15              #  --  --  66 44   0F 6E F8                        ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
229         MOVD %eax,%xmm8               #  --  --  66 44   0F 6E C0                        ; REX to access upper XMM reg. Data128 = ZEXT(Data32). OVR 128bit MMinstr.
230         MOVD %eax,%xmm7               #  --  --  66 --   0F 6E F8                        ; Data128 = ZEXT(Data32). OVR 128bit MMinstr.
231         MOVD %xmm0,(%r8)              #  --  --  66 41   0F 7E 00                        ; REX to access upper reg. OVR 128bit MMinstr.
232         MOVD %xmm0,(%rax)             #  --  --  66 --   0F 7E 00                        ; OVR 128bit MMinstr.
233         MOVD %xmm15,(%r8)             #  --  --  66 45   0F 7E 38                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
234         MOVD %xmm15,(%rax)            #  --  --  66 44   0F 7E 38                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
235         MOVD %xmm8,(%r8)              #  --  --  66 45   0F 7E 00                        ; REX to access upper XMM reg. REX to access upper reg. OVR 128bit MMinstr.
236         MOVD %xmm8,(%rax)             #  --  --  66 44   0F 7E 00                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
237         MOVD %xmm7,(%r8)              #  --  --  66 41   0F 7E 38                        ; REX to access upper reg. OVR 128bit MMinstr.
238         MOVD %xmm7,(%rax)             #  --  --  66 --   0F 7E 38                        ; OVR 128bit MMinstr.
239         MOVD %xmm0,%eax               #  --  --  66 --   0F 7E C0                        ; OVR 128bit MMinstr.
240         MOVD %xmm15,%eax              #  --  --  66 44   0F 7E F8                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
241         MOVD %xmm8,%eax               #  --  --  66 44   0F 7E C0                        ; REX to access upper XMM reg. OVR 128bit MMinstr.
242         MOVD %xmm7,%eax               #  --  --  66 --   0F 7E F8                        ; OVR 128bit MMinstr.
243         MOVD %rax,%xmm0               #  --  --  66 48   0F 6E C0                        ; Data128 = ZEXT(Data64). OVR 128bit MMinstr. REX for 64-bit operand size.
244         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.
245         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.
246         MOVD %xmm0,%rax               #  --  --  66 48   0F 7E C0                        ; OVR 128bit MMinstr. REX for 64-bit operand size.
247         MOVD %xmm0,%r8                #  --  --  66 49   0F 7E C0                        ; OVR 128bit MMinstr. REX for 64-bit operand size.
248         MOVD %xmm7,%r8                #  --  --  66 49   0F 7E F8                        ; OVR 128bit MMinstr. REX for 64-bit operand size.
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
374 #        SLDT (%eax)                  #  --  67  -- --   0F 00 00                        ; A32 override: (Addr64) = ZEXT(Addr32 )
375         SLDT %eax                     #  --  --  -- --   0F 00 C0
376         SLDT %rax                     #  --  --  -- 48   0F 00 C0
377         SLDT %ax                      #  66  --  -- --   0F 00 C0
378         SLDT (%rax)                   #  --  --  -- --   0F 00 00
379
380         # SWAPGS
381
382
383
384         # IO
385
386         # OUT
387         OUT %al,$0                    #  --  --  -- --   E6 00
388         OUT %ax,$0                    #  66  --  -- --   E7 00                           ; O16 for 16-bit operand size
389         OUT %eax,$0                   #  --  --  -- --   E7 00
390
391         # IN
392
393
394
395         xchg %ax,%ax                  # 66  --   -- --   90
396         xchg %eax,%eax                # --  --   -- --   87 C0
397         xchg %rax,%rax                # --  --   -- --   90
398         rex64 xchg %rax,%rax          # --  --   -- 48   90
399         xchg %rax,%r8                 # --  --   -- 49   90
400         xchg %eax,%r8d                # --  --   -- 41   90
401         xchg %r8d,%eax                # --  --   -- 41   90
402         xchg %eax,%r9d                # --  --   -- 41   91
403         xchg %r9d,%eax                # --  --   -- 41   91
404         xchg %ebx,%eax                # --  --   -- 93
405         xchg %eax,%ebx                # --  --   -- 93
406         xchg %ax,%r8w                 # --  --   -- 66 41 90
407         xchg %r8w,%ax                 # --  --   -- 66 41 90
408         xchg %ax,%r9w                 # --  --   -- 66 41 91
409         xchg %r9w,%ax                 # --  --   -- 66 41 91
410
411         smsw %rax                     #  --  --  -- 48   0F 01 e0
412         smsw %eax                     #  --  --  -- --   0F 01 e0
413         smsw %ax                      #  66  --  -- --   0F 01 e0
414         smsw (%rax)                   #  --  --  -- --   0F 01 20
415
416         str %rax                      #  --  --  -- 48   0F 00 c8
417         str %eax                      #  --  --  -- --   0F 00 c8
418         str %ax                       #  66  --  -- --   0F 00 c8
419         str (%rax)                    #  --  --  -- --   0F 00 08
420
421         syscall                       #  --  --  -- --   0F 05
422         sysret                        #  --  --  -- --   0F 07
423
424         swapgs                        #  --  --  -- --   0F 01 f8
425
426         pushw $0x2222