1 // RUN
: llvm-mc
-triple x86_64-unknown-unknown
--show-encoding
%s | FileCheck
%s
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
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
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
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
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
28 // CHECK
: addq $
-424, %rax
29 // CHECK
: encoding
: [0x48,0x05,0x58,0xfe,0xff,0xff]
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
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
44 // CHECK
: movq
(%r13,%rax
,8), %r13
45 // CHECK
: encoding
: [0x4d,0x8b,0x6c,0xc5,0x00]
46 movq
0x00(%r13,%rax
,8),%r13
48 // CHECK
: testq
%rax
, %rbx
49 // CHECK
: encoding
: [0x48,0x85,0xd8]
52 // CHECK
: cmpq
%rbx
, %r14
53 // CHECK
: encoding
: [0x49,0x39,0xde]
60 // CHECK
: encoding
: [0x48,0xa5]
64 // CHECK
: encoding
: [0xa5]
68 // CHECK
: encoding
: [0x48,0xab]
71 // CHECK
: encoding
: [0xab]
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]
79 // CHECK
: pushfq
# encoding: [0x9c]
81 // CHECK
: pushfq
# encoding: [0x9c]
83 // CHECK
: popfq
# encoding: [0x9d]
85 // CHECK
: popfq
# encoding: [0x9d]
88 // CHECK
: movabsq $
-281474976710654, %rax
89 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
90 movabsq $
0xFFFF000000000002, %rax
92 // CHECK
: movq $
-281474976710654, %rax
93 // CHECK
: encoding
: [0x48,0xb8,0x02,0x00,0x00,0x00,0x00,0x00,0xff,0xff]
94 movq $
0xFFFF000000000002, %rax
96 // CHECK
: movq $
-65536, %rax
97 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0x00,0xff,0xff]
98 movq $
0xFFFFFFFFFFFF0000, %rax
100 // CHECK
: movq $
-256, %rax
101 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x00,0xff,0xff,0xff]
102 movq $
0xFFFFFFFFFFFFFF00, %rax
104 // CHECK
: movq $
10, %rax
105 // CHECK
: encoding
: [0x48,0xc7,0xc0,0x0a,0x00,0x00,0x00]
111 // CHECK
: encoding
: [0xc3]
115 // CHECK
: encoding
: [0x0f,0x94,0xc0]
119 // CHECK
: encoding
: [0x0f,0x95,0xc0]
123 // CHECK
: encoding
: [0x74,A]
127 // CHECK
: encoding
: [0x75,A]
132 // CHECK
: btq $
1, %rdx
133 // CHECK
: encoding
: [0x48,0x0f,0xba,0xe2,0x01]
136 // CHECK
: movzbl
%al
, %esi
137 // CHECK
: encoding
: [0x0f,0xb6,0xf0]
140 // CHECK
: movzbq
%al
, %rsi
141 // CHECK
: encoding
: [0x48,0x0f,0xb6,0xf0]
144 // CHECK
: movzbq
(%rsp
), %rsi
145 // CHECK
: encoding
: [0x48,0x0f,0xb6,0x34,0x24]
150 // CHECK
: [0x65,0x8b,0x04,0x25,0x7c,0x00,0x00,0x00]
153 // CHECK
: jmpq
*8(%rax
)
154 // CHECK
: encoding
: [0xff,0x60,0x08]