aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-10-28 13:07:06 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-10-28 13:07:06 +0200
commitafc9aa79fca9bb7f3e83832cafa8f7bdc662017d (patch)
tree1309c85dca0ed526d48d3f23871f83cbcf60d1c3
parent0ea8f34d6b2d37cb5027a9cd8d143b0d6b701613 (diff)
downloadgnumach-afc9aa79fca9bb7f3e83832cafa8f7bdc662017d.tar.gz
gnumach-afc9aa79fca9bb7f3e83832cafa8f7bdc662017d.tar.bz2
gnumach-afc9aa79fca9bb7f3e83832cafa8f7bdc662017d.zip
locore: Homogeneize 32bit and 64bit
-rw-r--r--i386/i386/locore.S2
-rw-r--r--x86_64/locore.S2
2 files changed, 3 insertions, 1 deletions
diff --git a/i386/i386/locore.S b/i386/i386/locore.S
index 8314e25a..df41722d 100644
--- a/i386/i386/locore.S
+++ b/i386/i386/locore.S
@@ -592,7 +592,6 @@ trap_from_kernel:
je 1f /* OK if so */
movl %ecx,%edx
-
cmpl CX(EXT(kernel_stack),%edx),%esp
/* already on kernel stack? */
ja 0f
@@ -612,6 +611,7 @@ trap_from_kernel:
call EXT(kernel_trap) /* to kernel trap routine */
addl $4,%esp /* pop parameter */
#endif /* MACH_KDB || MACH_TTD */
+
jmp _return_from_kernel
diff --git a/x86_64/locore.S b/x86_64/locore.S
index af3809ee..296a8e28 100644
--- a/x86_64/locore.S
+++ b/x86_64/locore.S
@@ -711,11 +711,13 @@ trap_from_kernel:
pushq %rbx /* save old stack */
movq %rbx,%rdi /* pass as parameter */
call EXT(kernel_trap) /* to kernel trap routine */
+
popq %rsp /* return to old stack */
#else /* MACH_KDB || MACH_TTD */
movq %rsp,%rdi /* pass parameter */
call EXT(kernel_trap) /* to kernel trap routine */
+
#endif /* MACH_KDB || MACH_TTD */
jmp _return_from_kernel