summaryrefslogtreecommitdiff
path: root/Source/Kernel/TaskManager
diff options
context:
space:
mode:
authorAlex AUVOLAT <alex.auvolat@ens.fr>2014-10-28 11:50:09 +0100
committerAlex AUVOLAT <alex.auvolat@ens.fr>2014-10-28 11:50:09 +0100
commit9bd6fc9b337d760e23ebc9cb9b954a6205bbaa1c (patch)
treef81efe30c84f1880dc8bd222a228132a93044191 /Source/Kernel/TaskManager
parenteb0efe075de6c27512499bfc81bacb974e6146dd (diff)
downloadMelon-9bd6fc9b337d760e23ebc9cb9b954a6205bbaa1c.tar.gz
Melon-9bd6fc9b337d760e23ebc9cb9b954a6205bbaa1c.zip
Revive Melon
Diffstat (limited to 'Source/Kernel/TaskManager')
-rw-r--r--Source/Kernel/TaskManager/Task.ns.cpp7
-rw-r--r--Source/Kernel/TaskManager/V86/V86Thread.class.cpp2
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]) {