2b280d1220fbae67ee5cfcb34db70058d4e85f27
[oota-llvm.git] / test / MC / AsmParser / X86 / x86_64-new-encoder.s
1 // RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s
2
3 movl    foo(%rip), %eax
4 // CHECK: movl  foo(%rip), %eax
5 // CHECK: encoding: [0x8b,0x05,A,A,A,A]
6 // CHECK: fixup A - offset: 2, value: foo-4, kind: reloc_riprel_4byte
7
8 movb    $12, foo(%rip)
9 // CHECK: movb  $12, foo(%rip)
10 // CHECK: encoding: [0xc6,0x05,A,A,A,A,0x0c]
11 // CHECK:    fixup A - offset: 2, value: foo-5, kind: reloc_riprel_4byte
12
13 movw    $12, foo(%rip)
14 // CHECK: movw  $12, foo(%rip)
15 // CHECK: encoding: [0x66,0xc7,0x05,A,A,A,A,0x0c,0x00]
16 // CHECK:    fixup A - offset: 3, value: foo-6, kind: reloc_riprel_4byte
17
18 movl    $12, foo(%rip)
19 // CHECK: movl  $12, foo(%rip)
20 // CHECK: encoding: [0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
21 // CHECK:    fixup A - offset: 2, value: foo-8, kind: reloc_riprel_4byte
22
23 movq    $12, foo(%rip)
24 // CHECK:  movq $12, foo(%rip)
25 // CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
26 // CHECK:    fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
27
28 // CHECK: addq  $-424, %rax
29 // CHECK: encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
30 addq $-424, %rax
31
32
33 // CHECK: movq  _foo@GOTPCREL(%rip), %rax
34 // CHECK:  encoding: [0x48,0x8b,0x05,A,A,A,A]
35 // CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
36 movq _foo@GOTPCREL(%rip), %rax
37
38 // CHECK: movq  _foo@GOTPCREL(%rip), %r14
39 // CHECK:  encoding: [0x4c,0x8b,0x35,A,A,A,A]
40 // CHECK:  fixup A - offset: 3, value: _foo@GOTPCREL-4, kind: reloc_riprel_4byte_movq_load
41 movq _foo@GOTPCREL(%rip), %r14
42
43
44 // CHECK: movq  (%r13,%rax,8), %r13
45 // CHECK:  encoding: [0x4d,0x8b,0x6c,0xc5,0x00]
46 movq 0x00(%r13,%rax,8),%r13
47
48 // CHECK: testq %rax, %rbx
49 // CHECK:  encoding: [0x48,0x85,0xd8]
50 testq %rax, %rbx
51
52 // CHECK: cmpq  %rbx, %r14
53 // CHECK:   encoding: [0x49,0x39,0xde]
54         cmpq %rbx, %r14
55
56 // rdar://7947167
57
58 movsq
59 // CHECK: movsq
60 // CHECK:   encoding: [0x48,0xa5]
61
62 movsl
63 // CHECK: movsl
64 // CHECK:   encoding: [0xa5]
65
66 stosq
67 // CHECK: stosq
68 // CHECK:   encoding: [0x48,0xab]
69 stosl
70 // CHECK: stosl
71 // CHECK:   encoding: [0xab]
72
73
74 // Not moffset forms of moves, they are x86-32 only! rdar://7947184
75 movb    0, %al    // CHECK: movb 0, %al # encoding: [0x8a,0x04,0x25,0x00,0x00,0x00,0x00]
76 movw    0, %ax    // CHECK: movw 0, %ax # encoding: [0x66,0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
77 movl    0, %eax   // CHECK: movl 0, %eax # encoding: [0x8b,0x04,0x25,0x00,0x00,0x00,0x00]
78
79 // CHECK: pushfq        # encoding: [0x9c]
80         pushf
81 // CHECK: pushfq        # encoding: [0x9c]
82         pushfq
83 // CHECK: popfq         # encoding: [0x9d]
84         popf
85 // CHECK: popfq         # encoding: [0x9d]
86         popfq
87
88 // CHECK: movabsq $-281474976710654, %rax
89 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
90         movabsq $0xFFFF000000000002, %rax
91
92 // CHECK: movq $-281474976710654, %rax
93 // CHECK: encoding: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
94         movq $0xFFFF000000000002, %rax
95
96 // CHECK: movq $-65536, %rax
97 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
98         movq $0xFFFFFFFFFFFF0000, %rax
99
100 // CHECK: movq $-256, %rax
101 // CHECK: encoding: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
102         movq $0xFFFFFFFFFFFFFF00, %rax
103
104 // CHECK: movq $10, %rax
105 // CHECK: encoding: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
106         movq $10, %rax
107
108 // rdar://8014869
109 //
110 // CHECK: ret
111 // CHECK:  encoding: [0xc3]
112         retq
113
114 // CHECK: sete %al
115 // CHECK: encoding: [0x0f,0x94,0xc0]
116         setz %al
117
118 // CHECK: setne %al
119 // CHECK: encoding: [0x0f,0x95,0xc0]
120         setnz %al
121
122 // CHECK: je 0
123 // CHECK: encoding: [0x74,A]
124         jz 0
125
126 // CHECK: jne
127 // CHECK: encoding: [0x75,A]
128         jnz 0
129
130 // rdar://8017515
131 btq $0x01,%rdx
132 // CHECK: btq   $1, %rdx
133 // CHECK:  encoding: [0x48,0x0f,0xba,0xe2,0x01]
134
135 //rdar://8017633
136 // CHECK: movzbl        %al, %esi
137 // CHECK:  encoding: [0x0f,0xb6,0xf0]
138         movzx %al, %esi
139
140 // CHECK: movzbq        %al, %rsi
141 // CHECK:  encoding: [0x48,0x0f,0xb6,0xf0]
142         movzx %al, %rsi
143
144 // CHECK: movzbq        (%rsp), %rsi
145 // CHECK:  encoding: [0x48,0x0f,0xb6,0x34,0x24]
146         movzx 0(%rsp), %rsi
147
148
149 // rdar://7873482
150 // CHECK: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
151         movl    %gs:124, %eax
152