From: Nigel Stephens Date: Wed, 8 Jul 92 13:33:48 BST To: na70103 AT mips DOT cc DOT mie-u DOT ac DOT jp (Makoto Kobayashi) Cc: djgpp AT sun DOT soe DOT clarkson DOT edu Subject: go32 on Cx486 Strictly speaking the granularity bit should not be set for the TSS segments, since they are not a multiple of 4 Kb long. Also all of the calls to fillgdt which use sizeof(...), should probably use sizeof(...)-1, since the field in the segment descriptor is a limit, not a size. Having said that, setting the granularity bit will cause the limit field to be set to zero, which the CPU then harmlessly treats as a limit of 0xfff; the Intel i486 Programmer's Reference Manual does not forbid this. I would guess that this is a bug in the Cyrix microcode, which is failing to handle this condition correctly when checking that the TSS limit is >= 0x67 bytes on a task switch. -------------------- Nigel Stephens Algorithmics Ltd UUCP: nigel AT algor DOT co DOT uk 3 Drayton Park OLDUUCP:..!mcsun!uknet!algor!nigel London PHONE: (+44) 71 700 3301 N5 1NU FAX: (+44) 71 700 3400 England