From c476b5c67199b44523084b7639a4ff52f437156b Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 24 Jul 2019 10:05:06 +0200 Subject: clear CF on entry to BIOS handlers This simplifies the success case, which never has to manipulate the carry flag. Signed-off-by: Paolo Bonzini --- entry.S | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'entry.S') diff --git a/entry.S b/entry.S index 9a9454a..ecd5fae 100644 --- a/entry.S +++ b/entry.S @@ -58,7 +58,7 @@ ENTRY(bios_intfake) * interrupt handler succeeded and then treat the return values in * registers as valid data. */ - orl $X86_EFLAGS_CF, 0x4(%esp) + orb $X86_EFLAGS_CF, 0x4(%esp) IRET ENTRY_END(bios_intfake) @@ -67,6 +67,7 @@ ENTRY_END(bios_intfake) * int 10 - video - service */ ENTRY(bios_int10) + andb $~X86_EFLAGS_CF, 0x4(%esp) SAVE_BIOSREGS movl %esp, %eax @@ -76,13 +77,11 @@ ENTRY(bios_int10) RESTORE_BIOSREGS - /* Clear CF to indicate success. */ - andl $~X86_EFLAGS_CF, 0x4(%esp) - IRET ENTRY_END(bios_int10) ENTRY(bios_int15) + andb $~X86_EFLAGS_CF, 0x4(%esp) SAVE_BIOSREGS movl %esp, %eax -- cgit v1.1