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 <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini
2019-07-24 10:05:06 +02:00
parent 35e3627d3a
commit c476b5c671
2 changed files with 3 additions and 7 deletions

View File

@ -69,9 +69,6 @@ bioscall void e820_query_map(struct biosregs *regs)
regs->ecx = sizeof(struct e820entry);
regs->ebx = ++ndx;
/* Clear CF to indicate success. */
regs->eflags &= ~X86_EFLAGS_CF;
if (ndx >= map_size)
regs->ebx = 0; /* end of map */
}

View File

@ -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