diff options
Diffstat (limited to 'Source/Kernel/TaskManager')
-rw-r--r-- | Source/Kernel/TaskManager/Task.ns.cpp | 7 | ||||
-rw-r--r-- | Source/Kernel/TaskManager/V86/V86Thread.class.cpp | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/Source/Kernel/TaskManager/Task.ns.cpp b/Source/Kernel/TaskManager/Task.ns.cpp index 75f9c3d..44b5e3a 100644 --- a/Source/Kernel/TaskManager/Task.ns.cpp +++ b/Source/Kernel/TaskManager/Task.ns.cpp @@ -97,12 +97,11 @@ void doSwitch() { t->setKernelStack(); asm volatile(" \ - mov %0, %%ebp; \ - mov %1, %%esp; \ - mov %2, %%ecx; \ + mov %%eax, %%ebp; \ + mov %%ebx, %%esp; \ mov $0x12345, %%eax; \ jmp *%%ecx;" - : : "r"(ebp), "r"(esp), "r"(eip)); + : : "a"(ebp), "b"(esp), "c"(eip)); } void triggerSwitch() { diff --git a/Source/Kernel/TaskManager/V86/V86Thread.class.cpp b/Source/Kernel/TaskManager/V86/V86Thread.class.cpp index 5002225..63bc2d8 100644 --- a/Source/Kernel/TaskManager/V86/V86Thread.class.cpp +++ b/Source/Kernel/TaskManager/V86/V86Thread.class.cpp @@ -79,7 +79,7 @@ bool V86Thread::handleV86GPF(registers_t *regs) { u16int *ivt = 0; u16int *stack = (u16int*)FP_TO_LINEAR(regs->ss, (regs->useresp & 0xFFFF)); u32int *stack32 = (u32int*)stack; - bool is_operand32 = false, is_address32 = false; + bool is_operand32 = false; while (true) { switch (ip[0]) { |