diff --git a/src/common/hos/cpu.d b/src/common/hos/cpu.d new file mode 100644 index 0000000..536330b --- /dev/null +++ b/src/common/hos/cpu.d @@ -0,0 +1,21 @@ +import ldc.llvmasm; + +ulong read_cr0() +{ + return __asm!ulong("mov %cr0, %rax", "={rax}"); +} + +ulong read_cr2() +{ + return __asm!ulong("mov %cr2, %rax", "={rax}"); +} + +ulong read_cr3() +{ + return __asm!ulong("mov %cr3, %rax", "={rax}"); +} + +ulong read_cr4() +{ + return __asm!ulong("mov %cr4, %rax", "={rax}"); +}