x86: handle immediate operands for .insn
[binutils-gdb.git] / gas / testsuite / gas / i386 / insn-64.s
1 .text
2 insn:
3 # nop
4 .insn 0x90
5
6 # pause
7 .insn 0xf390
8 .insn repe 0x90
9
10 # fldz
11 .insn 0xd9ee
12
13 # setssbsy
14 .insn 0xf30f01e8
15
16 # mov
17 .insn 0x8b, %ecx, %r8d
18 .insn 0x8b, %rax, %rcx
19 .insn 0x89, %ecx, 8(%r8)
20 .insn 0x8b, 0x8080(,%r8), %ecx
21
22 # movsx
23 .insn 0x0fbe, %ah, %cx
24 .insn 0x0fbf, %eax, %ecx
25 .insn 0x63, %rax, %rcx
26
27 # xorb
28 .insn lock 0x80/6, $1, lock(%rip)
29
30 # bswap
31 .insn 0x0fc8+r, %rdx
32 .insn 0x0fc8+r, %r8d
33
34 1:
35 # xbegin 3f
36 .insn 0xc7f8, $3f-2f{:s32}
37 2:
38 # loop 1b
39 .insn 0xe2, $1b-3f{:s8}
40 3:
41
42 # add $var, %eax
43 .insn 0x05, $var{:u32}
44
45 # add $var, %rax
46 .insn rex.w 0x05, $var{:s32}
47
48 # cmpl (32-bit immediate split into two 16-bit halves)
49 .insn 0x81/7, $0x1213, $0x2123, var(%rip)
50
51 # vzeroall
52 .insn VEX.256.0F.WIG 0x77
53 .insn {vex3} VEX.L1 0x0f77
54
55 # vaddpd
56 .insn VEX.66.0F 0x58, %xmm8, %xmm1, %xmm2
57 .insn VEX.66 0x0f58, %ymm0, %ymm9, %ymm2
58
59 # vaddss
60 .insn VEX.LIG.F3.0F 0x58, %xmm0, %xmm1, %xmm10
61 .insn EVEX.LIG.F3.0F.W0 0x58, 4(%rax){:d4}, %xmm1, %xmm2
62
63 # vfmaddps
64 .insn VEX.66.0F3A.W0 0x68, %xmm8, (%rcx), %xmm2, %xmm3
65 .insn VEX.66.0F3A.W1 0x68, %xmm0, (%ecx), %xmm2, %xmm3
66 .insn VEX.66.0F3A.W1 0x68, (%r8), %xmm1, %xmm2, %xmm3
67
68 # vpermil2ps
69 .insn VEX.66.0F3A.W0 0x48, $0, %xmm8, (%rcx), %xmm2, %xmm3
70 .insn VEX.66.0F3A.W1 0x48, $2, %xmm0, (%ecx), %xmm2, %xmm3
71 .insn VEX.66.0F3A.W1 0x48, $3, (%r8), %xmm1, %xmm2, %xmm3
72
73 # kmovw
74 .insn VEX.L0.0F.W0 0x92, %r8d, %k1
75 .insn VEX.L0.0F.W0 0x93, %k1, %r8d
76
77 # vaddps
78 .insn EVEX.NP.0F.W0 0x58, {rd-sae}, %zmm16, %zmm1, %zmm2
79 .insn EVEX.NP.0F.W0 0x58, {rn-sae}, %zmm0, %zmm17, %zmm2
80 .insn EVEX.NP.0F.W0 0x58, {ru-sae}, %zmm0, %zmm1, %zmm18
81
82 # vgather...
83 .insn VEX.66.0f38.W0 0x92, %xmm8, (%rax, %xmm1, 2), %xmm3
84 .insn VEX.66.0f38.W0 0x92, %xmm0, (%r8, %xmm1, 2), %xmm3
85 .insn VEX.66.0f38.W0 0x92, %xmm0, (%rax, %xmm9, 2), %xmm3
86 .insn VEX.66.0f38.W0 0x92, %xmm0, (%rax, %xmm1, 2), %xmm11
87 .insn EVEX.66.0f38.W1 0x93, (%r8, %xmm1, 2), %xmm3{%k4}
88 .insn EVEX.66.0f38.W1 0x93, (%rax, %xmm9, 2), %xmm3{%k4}
89 .insn EVEX.66.0f38.W1 0x93, (%rax, %xmm17, 2), %xmm3{%k4}
90 .insn EVEX.66.0f38.W1 0x93, (%rax, %xmm1, 2), %xmm11{%k4}
91 .insn EVEX.66.0f38.W1 0x93, (%rax, %xmm1, 2), %xmm19{%k4}
92
93 # vexpandps
94 .insn EVEX.66.0F38.W0 0x88, 4(%rax){:d4}, %ymm1
95
96 # vcvtpd2phz
97 .insn EVEX.512.66.M5.W1 0x5a, 64(%rax), %xmm0
98 .insn EVEX.66.M5.W1 0x5a, 64(%rax), %zmm0
99 .insn EVEX.66.M5.W1 0x5a, 64(%rax){:d64}, %xmm0
100 .insn EVEX.512.66.M5.W1 0x5a, 8(%rax){1to8}, %xmm0
101 .insn EVEX.66.M5.W1 0x5a, 8(%rax){1to8}, %zmm0
102 .insn EVEX.66.M5.W1 0x5a, 8(%rax){1to8:d8}, %xmm0
103
104 # vcvtph2pd
105 .insn EVEX.M5.W0 0x5a, 16(%rax){:d16}, %zmm0
106 .insn EVEX.M5.W0 0x5a, 2(%rax){1to8:d2}, %zmm0