diff --git a/arch/x64/arch-cpu.hh b/arch/x64/arch-cpu.hh
index 687546e51fbd7170ba67e6178aac92e8dcf5e0df..692ec3b1f039166aaa031a24245a33b66de1aa4b 100644
--- a/arch/x64/arch-cpu.hh
+++ b/arch/x64/arch-cpu.hh
@@ -64,6 +64,8 @@ inline void arch_cpu::init_on_cpu()
     lgdt(desc_ptr(nr_gdt*8-1, reinterpret_cast<u64>(&gdt)));
     ltr(gdt_tss*8);
     idt.load_on_cpu();
+    write_cr4(cr4_de | cr4_pse | cr4_pae | cr4_pge | cr4_osfxsr
+            | cr4_osxmmexcpt | cr4_fsgsbase | cr4_osxsave);
 }
 
 }