CPU Bugs: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content added Content deleted
(replace with internet archive link since the original link went bad) |
m (Bot: Replace deprecated source tag with syntaxhighlight) |
||
Line 129: | Line 129: | ||
To fix this bug, one must write to the cyrix registers and set the NO-LOCK bit in CCR1, which disables all but the most essential bus locks. The downside of this is that read-modify-write atomicity is no longer guaranteed on multiprocessor systems. Source code that should prevent this condition: (untested) |
To fix this bug, one must write to the cyrix registers and set the NO-LOCK bit in CCR1, which disables all but the most essential bus locks. The downside of this is that read-modify-write atomicity is no longer guaranteed on multiprocessor systems. Source code that should prevent this condition: (untested) |
||
< |
<syntaxhighlight lang="asm"> |
||
MOV AL, 0xC1 ; 0xC1 refers to CCR1 |
MOV AL, 0xC1 ; 0xC1 refers to CCR1 |
||
OUT 0x22, AL ; Select Register |
OUT 0x22, AL ; Select Register |
||
Line 139: | Line 139: | ||
MOV AL, AH ; Load new contents |
MOV AL, AH ; Load new contents |
||
OUT 0x23, AL ; Write new CCR1 with No-Lock set |
OUT 0x23, AL ; Write new CCR1 with No-Lock set |
||
</syntaxhighlight> |
|||
</source> |
|||
[[Category:X86 CPU]] |
[[Category:X86 CPU]] |