Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/cpu/cpu.c

    r57c2a87 r45b4300  
    7272void fpu_disable(void)
    7373{
    74         write_cr0(read_cr0() & ~CR0_TS);
     74        asm volatile (
     75                "mov %%cr0, %%eax\n"
     76                "or $8, %%eax\n"
     77                "mov %%eax, %%cr0\n"
     78                ::: "%eax"
     79        );
    7580}
    7681
    7782void fpu_enable(void)
    7883{
    79         write_cr0(read_cr0() | CR0_TS);
     84        asm volatile (
     85                "mov %%cr0, %%eax\n"
     86                "and $0xffFFffF7, %%eax\n"
     87                "mov %%eax,%%cr0\n"
     88                ::: "%eax"
     89        );
    8090}
    8191
     
    105115                        "mov %[help], %%cr4\n"
    106116                        : [help] "+r" (help)
    107                         : [mask] "i" (CR4_OSFXSR | CR4_OSXMMEXCPT)
     117                        : [mask] "i" (CR4_OSFXSR_MASK | CR4_OSXMMEXCPT_MASK)
    108118                );
    109119        }
     
    150160void cpu_print_report(cpu_t* cpu)
    151161{
    152         printf("cpu%u: (%s family=%u model=%u stepping=%u apicid=%u) %" PRIu16
    153                 " MHz\n", cpu->id, vendor_str[cpu->arch.vendor], cpu->arch.family,
    154                 cpu->arch.model, cpu->arch.stepping, cpu->arch.id, cpu->frequency_mhz);
     162        printf("cpu%u: (%s family=%u model=%u stepping=%u) %" PRIu16 " MHz\n",
     163                cpu->id, vendor_str[cpu->arch.vendor], cpu->arch.family,
     164                cpu->arch.model, cpu->arch.stepping, cpu->frequency_mhz);
    155165}
    156166
Note: See TracChangeset for help on using the changeset viewer.