diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2013-12-09 17:27:54 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2013-12-09 17:27:54 -0500 |
commit | 41c6061d36628d1f920616ed5662e0e697278587 (patch) | |
tree | 2a788e61fd73fa98addb991ddde192bece663b8e /vgasrc | |
parent | 402f9a4f07a3705920ca4e47a06120ac6beaa8b4 (diff) | |
download | seabios-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.S | 7 |
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 |