diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-11-04 16:34:38 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-11-04 16:34:38 -0800 |
commit | 28b46657095873e98434959075b7717ec22117c1 (patch) | |
tree | 9d703a162f6068176c3eaa7c19c5756b961b613d | |
parent | 70cb38df625519fc0000063f753b0b1383e755af (diff) | |
download | syslinux-28b46657095873e98434959075b7717ec22117c1.tar.gz |
Setting cr0 requires a jmp to synchronize on 386/486
The 386 and 486 requires a jmp after any setting of cr0. It can be a
near jmp, but those processors do not correctly synchronize without
it.
We have jmps after setting cr0 in all spots except one, so make that
happen correctly.
-rw-r--r-- | bcopy32.inc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bcopy32.inc b/bcopy32.inc index 87190d8e..4df5e435 100644 --- a/bcopy32.inc +++ b/bcopy32.inc @@ -532,7 +532,8 @@ trampoline_to_pm: mov eax,cr0 or al,1 mov cr0,eax ; Enter protected mode - mov ax,PM_DS32 ; 32-bit data segment selector + jmp .next ; Near jump to synchronize on 386/486 +.next: mov ax,PM_DS32 ; 32-bit data segment selector mov es,ax mov ds,ax mov ss,ax |