~ubuntu-branches/ubuntu/gutsy/virtualbox-ose/gutsy

« back to all changes in this revision

Viewing changes to src/recompiler/tests/test-i386-code16.S

  • Committer: Bazaar Package Importer
  • Author(s): Steve Kowalik
  • Date: 2007-09-08 16:44:58 UTC
  • Revision ID: james.westby@ubuntu.com-20070908164458-wao29470vqtr8ksy
Tags: upstream-1.5.0-dfsg2
ImportĀ upstreamĀ versionĀ 1.5.0-dfsg2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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: