Annotation of qemu/tests/test-i386-code16.S, revision 1.1.1.1

1.1       root        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:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.