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:
parent
e664c979b2
commit
2a4b67f90b
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue