diff options
Diffstat (limited to 'kernel/src/cpu')
| -rw-r--r-- | kernel/src/cpu/io.c | 4 | ||||
| -rw-r--r-- | kernel/src/cpu/irq_stub.S | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/kernel/src/cpu/io.c b/kernel/src/cpu/io.c index 84298cb..1a68f08 100644 --- a/kernel/src/cpu/io.c +++ b/kernel/src/cpu/io.c @@ -4,11 +4,11 @@ uint8_t inb(uint32_t port) { uint8_t ret; - __asm__ volatile ("inb %%dx, %%al" : "=a"(ret) : "d"(port)); + __asm__ volatile ("inb %%dx, %%al;" : "=a"(ret) : "d"(port)); return ret; } void outb(uint32_t port, uint8_t value) { - __asm__ volatile ("outb %%al, %%dx" : : "d"(port), "a"(value)); + __asm__ volatile ("outb %%al, %%dx;" : : "d"(port), "a"(value)); } diff --git a/kernel/src/cpu/irq_stub.S b/kernel/src/cpu/irq_stub.S index ddd197a..4db722e 100644 --- a/kernel/src/cpu/irq_stub.S +++ b/kernel/src/cpu/irq_stub.S @@ -38,10 +38,11 @@ isr\number: .macro isr_error number .global isr\number isr\number: - # rdi not saved - pop %rdi + add $8, %rsp pushall cld + # setting error to 0 + mov $0, %rdi call isr\number\()_handler popall iretq |
