aboutsummaryrefslogtreecommitdiff
path: root/vgasrc
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2013-12-09 17:27:54 -0500
committerKevin O'Connor <kevin@koconnor.net>2013-12-09 17:27:54 -0500
commit41c6061d36628d1f920616ed5662e0e697278587 (patch)
tree2a788e61fd73fa98addb991ddde192bece663b8e /vgasrc
parent402f9a4f07a3705920ca4e47a06120ac6beaa8b4 (diff)
downloadseabios-hppa-41c6061d36628d1f920616ed5662e0e697278587.zip
seabios-hppa-41c6061d36628d1f920616ed5662e0e697278587.tar.gz
seabios-hppa-41c6061d36628d1f920616ed5662e0e697278587.tar.bz2
vgabios: Avoid memory references via %esp register in vgabios.
Win7 interprets the vgabios and it does not properly handle memory references relative to the %esp register. Commit 4a8b58cb introduced some of these %esp references - rework that assembler to avoid these instructions and make win7 happy. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'vgasrc')
-rw-r--r--vgasrc/vgaentry.S7
1 files changed, 2 insertions, 5 deletions
diff --git a/vgasrc/vgaentry.S b/vgasrc/vgaentry.S
index 35747b7..a5622b8 100644
--- a/vgasrc/vgaentry.S
+++ b/vgasrc/vgaentry.S
@@ -97,12 +97,9 @@ entry_10_extrastack:
movl %ecx, BREGS_ecx(%eax)
movw %es, BREGS_es(%eax)
movl %esp, BREGS_size+0(%eax)
- movzwl %sp, %esp
movw %ss, BREGS_size+4(%eax)
- movl (%esp), %edx
- movl %edx, BREGS_code(%eax)
- movw 4(%esp), %dx
- movw %dx, BREGS_flags(%eax)
+ popl BREGS_code(%eax)
+ popw BREGS_flags(%eax)
movw %ds, %dx // Setup %ss/%esp and call function
movw %dx, %ss