diff --git a/src/arch/aarch64/paging.rs b/src/arch/aarch64.rs
similarity index 100%
rename from src/arch/aarch64/paging.rs
rename to src/arch/aarch64.rs
diff --git a/src/arch/aarch64/mod.rs b/src/arch/aarch64/mod.rs
deleted file mode 100644
index d05990160530bc4b5260a79bf7c68ddb536af36b..0000000000000000000000000000000000000000
--- a/src/arch/aarch64/mod.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub use self::paging::paging_create;
-
-mod paging;
diff --git a/src/arch/x86_64/paging.rs b/src/arch/x86_64.rs
similarity index 100%
rename from src/arch/x86_64/paging.rs
rename to src/arch/x86_64.rs
diff --git a/src/arch/x86_64/mod.rs b/src/arch/x86_64/mod.rs
deleted file mode 100644
index d05990160530bc4b5260a79bf7c68ddb536af36b..0000000000000000000000000000000000000000
--- a/src/arch/x86_64/mod.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub use self::paging::paging_create;
-
-mod paging;
diff --git a/src/main.rs b/src/main.rs
index 557ecbef40da8f50de0654965c768019b221d805..94b638655b5f3e3f55b8185331068ea4a3b26d89 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,6 @@
 #![no_std]
 #![feature(asm)]
 #![feature(lang_items)]
-#![feature(llvm_asm)]
 #![cfg_attr(
     target_os = "uefi",
     no_main,
diff --git a/src/os/bios/panic.rs b/src/os/bios/panic.rs
index 486df9c2545c6d300cfa3abc6b54c4745a9eebe8..1997256dbb73f1846e315f49c562cce4f2a8b492 100644
--- a/src/os/bios/panic.rs
+++ b/src/os/bios/panic.rs
@@ -14,7 +14,7 @@ pub extern "C" fn rust_begin_unwind(info: &PanicInfo) -> ! {
     unsafe {
         println!("BOOTLOADER PANIC:\n{}", info);
         loop {
-            llvm_asm!("hlt" : : : : "intel", "volatile");
+            asm!("hlt");
         }
     }
 }
@@ -32,7 +32,7 @@ pub extern fn rust_oom(_layout: Layout) -> ! {
 pub extern "C" fn _Unwind_Resume() -> ! {
     loop {
         unsafe {
-            llvm_asm!("hlt" : : : : "intel", "volatile");
+            asm!("hlt");
         }
     }
 }
diff --git a/src/os/uefi/arch/aarch64/mod.rs b/src/os/uefi/arch/aarch64.rs
similarity index 90%
rename from src/os/uefi/arch/aarch64/mod.rs
rename to src/os/uefi/arch/aarch64.rs
index efb901cc72d6baf4685dbcd7cf2f2b8df3e21883..b7debf3e4d2d41200ddc2e61a2d47e142df9e3f8 100644
--- a/src/os/uefi/arch/aarch64/mod.rs
+++ b/src/os/uefi/arch/aarch64.rs
@@ -16,10 +16,6 @@ use super::super::{
     memory_map::memory_map,
 };
 
-use self::paging::paging;
-
-mod paging;
-
 static PHYS_OFFSET: u64 = 0xFFFF800000000000;
 
 #[no_mangle]
@@ -44,8 +40,14 @@ unsafe extern "C" fn kernel_entry(
     // Disable interrupts
     asm!("msr daifset, #2");
 
-    // Enable paging
-    paging();
+    // Disable MMU
+    asm!(
+        "mrs     x0, sctlr_el1",
+        "bic     x0, x0, 1",
+        "msr     sctlr_el1, x0",
+        "isb",
+        lateout("x0") _
+    );
 
     //TODO: Set stack
 
diff --git a/src/os/uefi/arch/aarch64/paging.rs b/src/os/uefi/arch/aarch64/paging.rs
deleted file mode 100644
index eb473f8c6a126a8a47dc4cc23d473f8fe01a94d2..0000000000000000000000000000000000000000
--- a/src/os/uefi/arch/aarch64/paging.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-pub unsafe fn paging() {
-    // Disable MMU
-    asm!(
-        "mrs     x0, sctlr_el1",
-        "bic     x0, x0, 1",
-        "msr     sctlr_el1, x0",
-        "isb",
-        lateout("x0") _
-    );
-}
diff --git a/src/os/uefi/arch/x86_64/mod.rs b/src/os/uefi/arch/x86_64.rs
similarity index 62%
rename from src/os/uefi/arch/x86_64/mod.rs
rename to src/os/uefi/arch/x86_64.rs
index 73cbf7115c6b0eb837d4b9842ce01de34ab06264..672a6a8a1ca1406830fd052137cbdeebfcfeb649 100644
--- a/src/os/uefi/arch/x86_64/mod.rs
+++ b/src/os/uefi/arch/x86_64.rs
@@ -1,6 +1,10 @@
 use core::{mem, ptr};
 use std::vec::Vec;
 use uefi::status::Result;
+use x86::{
+    controlregs::{self, Cr0, Cr4},
+    msr,
+};
 
 use crate::{
     KernelArgs,
@@ -16,10 +20,6 @@ use super::super::{
     memory_map::memory_map,
 };
 
-use self::paging::paging_enter;
-
-mod paging;
-
 static PHYS_OFFSET: u64 = 0xFFFF800000000000;
 
 unsafe extern "C" fn kernel_entry(
@@ -37,13 +37,32 @@ unsafe extern "C" fn kernel_entry(
     }
 
     // Disable interrupts
-    llvm_asm!("cli" : : : "memory" : "intel", "volatile");
-
-    // Enable paging
-    paging_enter(page_phys as u64);
+    asm!("cli");
+
+    // Enable OSXSAVE, FXSAVE/FXRSTOR, Page Global, Page Address Extension, and Page Size Extension
+    let mut cr4 = controlregs::cr4();
+    cr4 |= Cr4::CR4_ENABLE_OS_XSAVE
+        | Cr4::CR4_ENABLE_SSE
+        | Cr4::CR4_ENABLE_GLOBAL_PAGES
+        | Cr4::CR4_ENABLE_PAE
+        | Cr4::CR4_ENABLE_PSE;
+    controlregs::cr4_write(cr4);
+
+    // Enable Long mode and NX bit
+    let mut efer = msr::rdmsr(msr::IA32_EFER);
+    efer |= 1 << 11 | 1 << 8;
+    msr::wrmsr(msr::IA32_EFER, efer);
+
+    // Set new page map
+    controlregs::cr3_write(page_phys as u64);
+
+    // Enable paging, write protect kernel, protected mode
+    let mut cr0 = controlregs::cr0();
+    cr0 |= Cr0::CR0_ENABLE_PAGING | Cr0::CR0_WRITE_PROTECT | Cr0::CR0_PROTECTED_MODE;
+    controlregs::cr0_write(cr0);
 
     // Set stack
-    llvm_asm!("mov rsp, $0" : : "r"(stack) : "memory" : "intel", "volatile");
+    asm!("mov rsp, {}", in(reg) stack);
 
     // Call kernel entry
     let entry_fn: extern "sysv64" fn(*const KernelArgs) -> ! = mem::transmute(func);
diff --git a/src/os/uefi/arch/x86_64/paging.rs b/src/os/uefi/arch/x86_64/paging.rs
deleted file mode 100644
index cb73887ec8895d61fe89b43fec589db66d7de472..0000000000000000000000000000000000000000
--- a/src/os/uefi/arch/x86_64/paging.rs
+++ /dev/null
@@ -1,28 +0,0 @@
-use x86::{
-    controlregs::{self, Cr0, Cr4},
-    msr,
-};
-
-pub unsafe fn paging_enter(page_phys: u64) {
-    // Enable OSXSAVE, FXSAVE/FXRSTOR, Page Global, Page Address Extension, and Page Size Extension
-    let mut cr4 = controlregs::cr4();
-    cr4 |= Cr4::CR4_ENABLE_OS_XSAVE
-        | Cr4::CR4_ENABLE_SSE
-        | Cr4::CR4_ENABLE_GLOBAL_PAGES
-        | Cr4::CR4_ENABLE_PAE
-        | Cr4::CR4_ENABLE_PSE;
-    controlregs::cr4_write(cr4);
-
-    // Enable Long mode and NX bit
-    let mut efer = msr::rdmsr(msr::IA32_EFER);
-    efer |= 1 << 11 | 1 << 8;
-    msr::wrmsr(msr::IA32_EFER, efer);
-
-    // Set new page map
-    controlregs::cr3_write(page_phys);
-
-    // Enable paging, write protect kernel, protected mode
-    let mut cr0 = controlregs::cr0();
-    cr0 |= Cr0::CR0_ENABLE_PAGING | Cr0::CR0_WRITE_PROTECT | Cr0::CR0_PROTECTED_MODE;
-    controlregs::cr0_write(cr0);
-}