nova: fix syscall bindings for 32bit

The bindings for 32bit did not consider that in the syscall_3 function
edx changes due to the assembly instructions and that in the syscall_4
function edx and ecx change. So, the compiler wrongly assumed that the
content of these registers stayed unchanged.

Fixes #1447
This commit is contained in:
Alexander Boettcher 2015-03-12 16:49:06 +01:00 committed by Christian Helmuth
parent e664c979b2
commit 2a4b67f90b
1 changed files with 4 additions and 4 deletions

View File

@ -120,8 +120,8 @@ namespace Nova {
" sysenter;"
"1:"
" pop %%ebx;"
: "+a" (status)
: "D" (p1), "S" (p2), "d" (p3)
: "+a" (status), "+d" (p3)
: "D" (p1), "S" (p2)
: "ecx");
return status;
}
@ -149,8 +149,8 @@ namespace Nova {
" pop %%ebx;"
" pop %%ebp;"
: "+a" (status)
: "D" (p1), "S" (p2), "c" (p3), "d" (p4)
: "+a" (status), "+c" (p3), "+d" (p4)
: "D" (p1), "S" (p2)
: "memory");
return status;
}