i386: Check for reserved VEX.vvvv and EVEX.vvvv
[external/binutils.git] / gas / testsuite / gas / i386 / x86-64-specific-reg.s
1 # 64bit insns with special register requirements
2
3         .text
4 special:
5 .irp reg1, ax, cx, dx, bx, sp, bp, si, di
6         lodsb   %ds:(%r\reg1)
7
8         stosb   %es:(%r\reg1)
9
10         scasb   %es:(%r\reg1)
11
12         insb    %dx, %es:(%r\reg1)
13
14         outsb   %ds:(%r\reg1), %dx
15
16         xlatb   %ds:(%r\reg1)
17
18         movsb   %ds:(%r\reg1), %es:(%rdi)
19         movsb   %ds:(%rsi), %es:(%r\reg1)
20
21         cmpsb   %es:(%r\reg1), %ds:(%rsi)
22         cmpsb   %es:(%rdi), %ds:(%r\reg1)
23
24         mwait   %r\reg1, %rcx
25         mwait   %rax, %r\reg1
26
27         monitor %r\reg1, %rcx, %rdx
28         monitor %rax, %r\reg1, %rdx
29         monitor %rax, %rcx, %r\reg1
30
31 # FIXME: Need to ensure only "vmload %[re]ax" is accepted.
32         vmload  %r\reg1
33
34 # FIXME: Need to ensure only "vmrun %[re]ax" is accepted.
35         vmrun   %r\reg1
36
37 # FIXME: Need to ensure only "vmsave %[re]ax" is accepted.
38         vmsave  %r\reg1
39
40 # FIXME: Need to ensure only "invlpga %[re]ax,%ecx" is accepted.
41         invlpga %r\reg1, %ecx
42         invlpga %rax, %e\reg1
43
44 # FIXME: Need to ensure only "skinit %eax" is accepted.
45         skinit  %e\reg1
46 .endr
47
48 .irp reg1, 8, 9, 10, 11, 12, 13, 14, 15
49         lodsb   %ds:(%r\reg1)
50
51         stosb   %es:(%r\reg1)
52
53         scasb   %es:(%r\reg1)
54
55         insb    %dx, %es:(%r\reg1)
56
57         outsb   %ds:(%r\reg1), %dx
58
59         xlatb   %ds:(%r\reg1)
60
61         movsb   %ds:(%r\reg1), %es:(%rdi)
62         movsb   %ds:(%rsi), %es:(%r\reg1)
63
64         cmpsb   %es:(%r\reg1), %ds:(%rsi)
65         cmpsb   %es:(%rdi), %ds:(%r\reg1)
66
67         mwait   %r\reg1, %rcx
68         mwait   %rax, %r\reg1
69
70         monitor %r\reg1, %rcx, %rdx
71         monitor %rax, %r\reg1, %rdx
72         monitor %rax, %rcx, %r\reg1
73
74         vmload  %r\reg1
75
76         vmrun   %r\reg1
77
78         vmsave  %r\reg1
79
80         invlpga %r\reg1, %ecx
81         invlpga %rax, %r\reg1\(d)
82
83         skinit  %r\reg1\(d)
84 .endr
85
86 .irp n, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
87         blendvpd %xmm\n, %xmm\n, %xmm\n
88         blendvps %xmm\n, %xmm\n, %xmm\n
89         pblendvb %xmm\n, %xmm\n, %xmm\n
90 .endr