master
c 25 lines 663 Bytes
Raw
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* See https://gitlab.com/qemu-project/qemu/-/work_items/3391 */
3
4 int main()
5 {
6 int data = 0;
7
8 /* Ensure that ignored segment override prefixes are actually ignored */
9 asm volatile (
10 "wrgsbase %0\n\t"
11 ".byte 0x65, 0x26\n\t" /* prefixes: GS + ES */
12 "movb $0, 0\n\t"
13 ".byte 0x65, 0x2E\n\t" /* prefixes: GS + CS */
14 "movb $0, 0\n\t"
15 ".byte 0x65, 0x36\n\t" /* prefixes: GS + SS */
16 "movb $0, 0\n\t"
17 ".byte 0x65, 0x3E\n\t" /* prefixes: GS + DS */
18 "movb $0, 0\n\t"
19 :
20 : "r" (&data)
21 : "memory"
22 );
23
24 return 0;
25 }