Annotation of qemu/tests/test-i386-code16.S, revision 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.