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