mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-30 01:47:31 +00:00 
			
		
		
		
	 4132431f24
			
		
	
	
		4132431f24
		
	
	
	
	
		
			
			These only need to be built for i386 guests. This includes a stub tests/tcg/i386/Makfile.target which absorbs some of what was in tests/tcg/Makefile. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
		
			
				
	
	
		
			104 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
|         .code16
 | |
|         .globl vm86_code_start
 | |
|         .globl vm86_code_end
 | |
| 
 | |
| #define GET_OFFSET(x) ((x) - vm86_code_start + 0x100)
 | |
| 
 | |
| vm86_code_start:
 | |
|         movw $GET_OFFSET(hello_world), %dx
 | |
|         movb $0x09, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         /* prepare int 0x90 vector */
 | |
|         xorw %ax, %ax
 | |
|         movw %ax, %es
 | |
|         es movw $GET_OFFSET(int90_test), 0x90 * 4
 | |
|         es movw %cs, 0x90 * 4 + 2
 | |
| 
 | |
|         /* launch int 0x90 */
 | |
| 
 | |
|         int $0x90
 | |
| 
 | |
|         /* test IF support */
 | |
|         movw $GET_OFFSET(IF_msg), %dx
 | |
|         movb $0x09, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         pushf
 | |
|         popw %dx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         cli
 | |
|         pushf
 | |
|         popw %dx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         sti
 | |
|         pushfl
 | |
|         popl %edx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
| #if 0
 | |
|         movw $GET_OFFSET(IF_msg1), %dx
 | |
|         movb $0x09, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         pushf
 | |
|         movw %sp, %bx
 | |
|         andw $~0x200, (%bx)
 | |
|         popf
 | |
| #else
 | |
|         cli
 | |
| #endif
 | |
| 
 | |
|         pushf
 | |
|         popw %dx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         pushfl
 | |
|         movw %sp, %bx
 | |
|         orw $0x200, (%bx)
 | |
|         popfl
 | |
| 
 | |
|         pushfl
 | |
|         popl %edx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         movb $0x00, %ah
 | |
|         int $0x21
 | |
| 
 | |
| int90_test:
 | |
|         pushf
 | |
|         pop %dx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         movw %sp, %bx
 | |
|         movw 4(%bx), %dx
 | |
|         movb $0xff, %ah
 | |
|         int $0x21
 | |
| 
 | |
|         movw $GET_OFFSET(int90_msg), %dx
 | |
|         movb $0x09, %ah
 | |
|         int $0x21
 | |
|         iret
 | |
| 
 | |
| int90_msg:
 | |
|         .string "INT90 started\n$"
 | |
| 
 | |
| hello_world:
 | |
|         .string "Hello VM86 world\n$"
 | |
| 
 | |
| IF_msg:
 | |
|         .string "VM86 IF test\n$"
 | |
| 
 | |
| IF_msg1:
 | |
|         .string "If you see a diff here, your Linux kernel is buggy, please update to 2.4.20 kernel\n$"
 | |
| 
 | |
| vm86_code_end:
 |