This commit was generated by cvs2svn to track changes on a CVS vendor
[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)                # 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
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
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
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
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
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
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
374 #        SLDT (%eax)                  #  --  67  -- --   0F 00 00                        ; A32 override: (Addr64) = ZEXT(Addr32 )
375         SLDT %eax                     #  --  --  -- --   0F 00 C0
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
389
390  .p2align 4,0