aboutsummaryrefslogtreecommitdiff
path: root/entry.S
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2019-07-24 10:05:06 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2019-07-24 10:21:46 +0200
commitc476b5c67199b44523084b7639a4ff52f437156b (patch)
treed7dcf0422e39bd4f0d15b2c11d4155f677e2ce9a /entry.S
parent35e3627d3a252b3b5ff57439f27f3d86a3741c67 (diff)
downloadqboot-c476b5c67199b44523084b7639a4ff52f437156b.zip
qboot-c476b5c67199b44523084b7639a4ff52f437156b.tar.gz
qboot-c476b5c67199b44523084b7639a4ff52f437156b.tar.bz2
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>
Diffstat (limited to 'entry.S')
-rw-r--r--entry.S7
1 files changed, 3 insertions, 4 deletions
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