PCI 16x50 UART Controller, O2 Enablement (#39)
[lunaix-os.git] / lunaix-os / arch / x86 / boot / x86_64 / kremap64.c
index ee9d298bac8e58951e029562a8509bb5ef0c016e..bf3bb33dd552ff80c73272c1c6bf256ff887854b 100644 (file)
@@ -178,9 +178,12 @@ ptr_t boot_text
 remap_kernel()
 {
     ptr_t kmap_pa = to_kphysical(&kpt);
-    for (size_t i = 0; i < sizeof(kpt); i++) {
-        ((u8_t*)kmap_pa)[i] = 0;
-    }
+    
+    asm volatile("movq %1, %%rdi\n"
+                 "rep stosb\n" ::"c"(sizeof(kpt)),
+                 "r"(kmap_pa),
+                 "a"(0)
+                 : "rdi", "memory");
 
     do_remap();