xref: /llvm-project/llvm/test/MC/X86/ret.s (revision 8a71284cb9463a90fab0d9e8edbeb5d879531e32)
1// RUN: not llvm-mc -triple x86_64-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=X86-64 %s
2// RUN: FileCheck --check-prefix=ERR64 < %t.err %s
3// RUN: not llvm-mc -triple i386-unknown-unknown --show-encoding %s 2> %t.err | FileCheck --check-prefix=X86-32 %s
4// RUN: FileCheck --check-prefix=ERR32 < %t.err %s
5// RUN: not llvm-mc -triple i386-unknown-unknown-code16 --show-encoding %s 2> %t.err | FileCheck --check-prefix=X86-16 %s
6// RUN: FileCheck --check-prefix=ERR16 < %t.err %s
7
8	ret
9// X86-64: retq
10// X86-64: encoding: [0xc3]
11// X86-32: retl
12// X86-32: encoding: [0xc3]
13// X86-16: retw
14// X86-16: encoding: [0xc3]
15	retw
16// X86-64: retw
17// X86-64: encoding: [0x66,0xc3]
18// X86-32: retw
19// X86-32: encoding: [0x66,0xc3]
20// X86-16: retw
21// X86-16: encoding: [0xc3]
22	retl
23// ERR64: error: instruction requires: Not 64-bit mode
24// X86-32: retl
25// X86-32: encoding: [0xc3]
26// X86-16: retl
27// X86-16: encoding: [0x66,0xc3]
28	retq
29// X86-64: retq
30// X86-64: encoding: [0xc3]
31// ERR32: error: instruction requires: 64-bit mode
32// ERR16: error: instruction requires: 64-bit mode
33
34	ret $0
35// X86-64: retq $0
36// X86-64: encoding: [0xc2,0x00,0x00]
37// X86-32: retl $0
38// X86-32: encoding: [0xc2,0x00,0x00]
39// X86-16: retw $0
40// X86-16: encoding: [0xc2,0x00,0x00]
41	retw $0
42// X86-64: retw $0
43// X86-64: encoding: [0x66,0xc2,0x00,0x00]
44// X86-32: retw $0
45// X86-32: encoding: [0x66,0xc2,0x00,0x00]
46// X86-16: retw $0
47// X86-16: encoding: [0xc2,0x00,0x00]
48	retl $0
49// ERR64: error: instruction requires: Not 64-bit mode
50// X86-32: retl $0
51// X86-32: encoding: [0xc2,0x00,0x00]
52// X86-16: retl $0
53// X86-16: encoding: [0x66,0xc2,0x00,0x00]
54	retq $0
55// X86-64: retq $0
56// X86-64: encoding: [0xc2,0x00,0x00]
57// ERR32: error: instruction requires: 64-bit mode
58// ERR16: error: instruction requires: 64-bit mode
59
60	retn
61// X86-64: retq
62// X86-64: encoding: [0xc3]
63// X86-32: retl
64// X86-32: encoding: [0xc3]
65// X86-16: retw
66// X86-16: encoding: [0xc3]
67
68  retn $0
69// X86-64: retq $0
70// X86-64: encoding: [0xc2,0x00,0x00]
71// X86-32: retl $0
72// X86-32: encoding: [0xc2,0x00,0x00]
73// X86-16: retw $0
74// X86-16: encoding: [0xc2,0x00,0x00]
75
76	lret
77// X86-64: lretl
78// X86-64: encoding: [0xcb]
79// X86-32: lretl
80// X86-32: encoding: [0xcb]
81// X86-16: lretw
82// X86-16: encoding: [0xcb]
83	lretw
84// X86-64: lretw
85// X86-64: encoding: [0x66,0xcb]
86// X86-32: lretw
87// X86-32: encoding: [0x66,0xcb]
88// X86-16: lretw
89// X86-16: encoding: [0xcb]
90	lretl
91// X86-64: lretl
92// X86-64: encoding: [0xcb]
93// X86-32: lretl
94// X86-32: encoding: [0xcb]
95// X86-16: lretl
96// X86-16: encoding: [0x66,0xcb]
97	lretq
98// X86-64: lretq
99// X86-64: encoding: [0x48,0xcb]
100// ERR32: error: instruction requires: 64-bit mode
101// ERR16: error: instruction requires: 64-bit mode
102
103	lret $0
104// X86-64: lretl $0
105// X86-64: encoding: [0xca,0x00,0x00]
106// X86-32: lretl $0
107// X86-32: encoding: [0xca,0x00,0x00]
108// X86-16: lretw $0
109// X86-16: encoding: [0xca,0x00,0x00]
110	lretw $0
111// X86-64: lretw $0
112// X86-64: encoding: [0x66,0xca,0x00,0x00]
113// X86-32: lretw $0
114// X86-32: encoding: [0x66,0xca,0x00,0x00]
115// X86-16: lretw $0
116// X86-16: encoding: [0xca,0x00,0x00]
117	lretl $0
118// X86-64: lretl $0
119// X86-64: encoding: [0xca,0x00,0x00]
120// X86-32: lretl $0
121// X86-32: encoding: [0xca,0x00,0x00]
122// X86-16: lretl $0
123// X86-16: encoding: [0x66,0xca,0x00,0x00]
124	lretq $0
125// X86-64: lretq $0
126// X86-64: encoding: [0x48,0xca,0x00,0x00]
127// ERR32: error: instruction requires: 64-bit mode
128// ERR16: error: instruction requires: 64-bit mode
129
130
131