diff --git a/hal-x86_64/src/cpu.rs b/hal-x86_64/src/cpu.rs index b422bf01..eca4dfbe 100644 --- a/hal-x86_64/src/cpu.rs +++ b/hal-x86_64/src/cpu.rs @@ -1,5 +1,5 @@ -use core::mem; use core::fmt; +use core::mem; #[repr(transparent)] pub struct Port { @@ -21,12 +21,12 @@ impl Port { pub unsafe fn readb(&self) -> u8 { let result: u8; - asm!("inb %dx, %al" : "={al}"(result) : "{dx}"(self.num) :: "volatile"); + asm!("in al, dx" : "={al}"(result) : "{dx}"(self.num) :: "volatile", "intel"); result } pub unsafe fn writeb(&self, value: u8) { - asm!("outb %al, %dx" :: "{dx}"(self.num), "{al}"(value) :: "volatile"); + asm!("out dx, al" :: "{dx}"(self.num), "{al}"(value) :: "volatile", "intel"); } // TODO(ixi): anything wider than a byte lol } diff --git a/hal-x86_64/src/interrupt/idt.rs b/hal-x86_64/src/interrupt/idt.rs index 67231789..99411134 100644 --- a/hal-x86_64/src/interrupt/idt.rs +++ b/hal-x86_64/src/interrupt/idt.rs @@ -184,7 +184,7 @@ impl Idt { pub fn load(&'static self) { let ptr = crate::cpu::DtablePtr::new(self); - unsafe { asm!("lidt ($0)" :: "r" (&ptr) : "memory") } + unsafe { asm!("lidt [$0]" :: "r" (&ptr) : "memory" : "intel") } } } diff --git a/hal-x86_64/src/segment.rs b/hal-x86_64/src/segment.rs index 68023654..5b90425e 100644 --- a/hal-x86_64/src/segment.rs +++ b/hal-x86_64/src/segment.rs @@ -7,7 +7,7 @@ pub struct Selector(u16); /// Returns the current code segment selector in `%cs`. pub fn code_segment() -> Selector { let value: u16; - unsafe { asm!("mov %cs, $0" : "=r" (value)) }; + unsafe { asm!("mov $0, cs" : "=r" (value) ::: "intel") }; Selector(value) } diff --git a/src/arch/x86_64.rs b/src/arch/x86_64.rs index b98ceb08..76312846 100644 --- a/src/arch/x86_64.rs +++ b/src/arch/x86_64.rs @@ -149,6 +149,7 @@ pub fn oops(cause: &dyn core::fmt::Display) -> ! { vga.set_color(vga::ColorSpec::new(vga::Color::Red, vga::Color::White)); let _ = vga.write_str("OOPSIE WOOPSIE"); vga.set_color(RED_BG); + let _ = writeln!(vga, "\n uwu we did a widdle fucky-wucky!\n{}", cause); let _ = vga.write_str("\n it will never be safe to turn off your computer.");