]> git.proxmox.com Git - mirror_qemu.git/blob - tests/test-i386-code16.S
find -type f | xargs sed -i 's/[\t ]*$//g' # Yes, again. Note the star in the regex.
[mirror_qemu.git] / tests / test-i386-code16.S
1 .code16
2 .globl code16_start
3 .globl code16_end
4
5 CS_SEG = 0xf
6
7 code16_start:
8
9 .globl code16_func1
10
11 /* basic test */
12 code16_func1 = . - code16_start
13 mov $1, %eax
14 data32 lret
15
16 /* test push/pop in 16 bit mode */
17 .globl code16_func2
18 code16_func2 = . - code16_start
19 xor %eax, %eax
20 mov $0x12345678, %ebx
21 movl %esp, %ecx
22 push %bx
23 subl %esp, %ecx
24 pop %ax
25 data32 lret
26
27 /* test various jmp opcodes */
28 .globl code16_func3
29 code16_func3 = . - code16_start
30 jmp 1f
31 nop
32 1:
33 mov $4, %eax
34 mov $0x12345678, %ebx
35 xor %bx, %bx
36 jz 2f
37 add $2, %ax
38 2:
39
40 call myfunc
41
42 lcall $CS_SEG, $(myfunc2 - code16_start)
43
44 ljmp $CS_SEG, $(myjmp1 - code16_start)
45 myjmp1_next:
46
47 cs lcall myfunc2_addr - code16_start
48
49 cs ljmp myjmp2_addr - code16_start
50 myjmp2_next:
51
52 data32 lret
53
54 myfunc2_addr:
55 .short myfunc2 - code16_start
56 .short CS_SEG
57
58 myjmp2_addr:
59 .short myjmp2 - code16_start
60 .short CS_SEG
61
62 myjmp1:
63 add $8, %ax
64 jmp myjmp1_next
65
66 myjmp2:
67 add $16, %ax
68 jmp myjmp2_next
69
70 myfunc:
71 add $1, %ax
72 ret
73
74 myfunc2:
75 add $4, %ax
76 lret
77
78
79 code16_end: