read_cyrix_reg
ccr0 = read_cyrix_reg(CCR0);
ccr2 = read_cyrix_reg(CCR2);
(void)read_cyrix_reg(CCR3); /* dummy */
ccr2 = read_cyrix_reg(CCR2);
ccr3 = read_cyrix_reg(CCR3);
ccr4 = read_cyrix_reg(CCR4);
pcr0 = read_cyrix_reg(PCR0);
(void)read_cyrix_reg(0x80); /* dummy */
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) & ~CCR2_LOCK_NW);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) | CCR2_LOCK_NW);
write_cyrix_reg(CCR0, read_cyrix_reg(CCR0) | CCR0_NC1);
write_cyrix_reg(CCR1, read_cyrix_reg(CCR1) | CCR1_NO_LOCK);
write_cyrix_reg(CCR1, read_cyrix_reg(CCR1) & ~CCR1_NO_LOCK);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) | CCR2_SUSP_HLT);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) & ~CCR2_SUSP_HLT);
ccr3 = read_cyrix_reg(CCR3);
ccr4 = read_cyrix_reg(CCR4);
write_cyrix_reg(CCR5, read_cyrix_reg(CCR5) | CCR5_WT_ALLOC);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) & ~CCR2_LOCK_NW);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) | CCR2_LOCK_NW);
write_cyrix_reg(CCR0, read_cyrix_reg(CCR0) | CCR0_NC1);
write_cyrix_reg(CCR1, read_cyrix_reg(CCR1) | CCR1_NO_LOCK);
write_cyrix_reg(CCR1, read_cyrix_reg(CCR1) & ~CCR1_NO_LOCK);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) | CCR2_SUSP_HLT);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) & ~CCR2_SUSP_HLT);
ccr3 = read_cyrix_reg(CCR3);
ccr4 = read_cyrix_reg(CCR4);
write_cyrix_reg(CCR5, read_cyrix_reg(CCR5) | CCR5_WT_ALLOC);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) & ~CCR2_LOCK_NW);
write_cyrix_reg(CCR2, read_cyrix_reg(CCR2) | CCR2_LOCK_NW);
ccr0 = read_cyrix_reg(CCR0);
ccr1 = read_cyrix_reg(CCR1);
ccr2 = read_cyrix_reg(CCR2);
ccr3 = read_cyrix_reg(CCR3);
ccr4 = read_cyrix_reg(CCR4);
ccr5 = read_cyrix_reg(CCR5);
pcr0 = read_cyrix_reg(PCR0);
ccr2 = read_cyrix_reg(CCR2);
read_cyrix_reg(CCR2);
if (read_cyrix_reg(CCR2) != ccr2)
ccr3 = read_cyrix_reg(CCR3);
read_cyrix_reg(CCR3);
if (read_cyrix_reg(CCR3) != ccr3)
cyrix_did = read_cyrix_reg(DIR1) << 8;
cyrix_did += read_cyrix_reg(DIR0);
ccr3 = read_cyrix_reg(CCR3);
write_cyrix_reg(CCR4, read_cyrix_reg(CCR4) | CCR4_CPUID);