projects
/
bootcensus
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
aea4c0e
)
fixed: int86 failed to preserve returned flags (backported from 256boss)
author
John Tsiombikas
<nuclear@member.fsf.org>
Mon, 29 Apr 2019 21:13:05 +0000
(
00:13
+0300)
committer
John Tsiombikas
<nuclear@member.fsf.org>
Mon, 29 Apr 2019 21:13:05 +0000
(
00:13
+0300)
src/boot/boot2.s
patch
|
blob
|
history
diff --git
a/src/boot/boot2.s
b/src/boot/boot2.s
index
bf81487
..
f782d7e
100644
(file)
--- a/
src/boot/boot2.s
+++ b/
src/boot/boot2.s
@@
-766,6
+766,7
@@
saved_ebp: .long 0
saved_eax: .long 0
saved_es: .word 0
saved_ds: .word 0
+saved_flags: .word 0
# drop back to unreal mode to call 16bit interrupt
.global int86
@@
-827,6
+828,9
@@
int_op: int $0
mov %eax, saved_eax
mov %ds, saved_ds
mov %es, saved_es
+ pushfw
+ pop %ax
+ mov %ax, saved_flags
# re-enable protection
mov %cr0, %eax
@@
-851,7
+855,8
@@
int_op: int $0
pushw %ax
mov saved_es, %ax
pushw %ax
- pushfw
+ mov saved_flags, %ax
+ pushw %ax
mov saved_eax, %eax
pushal
mov saved_esp, %esp