From fdd56112206433bdfbd7ed944bbdebdbff751bec Mon Sep 17 00:00:00 2001 From: Achilleas Anagnostopoulos Date: Wed, 12 Jul 2017 23:34:08 +0100 Subject: [PATCH] Fix bug in the ASM code used to load the PDT to the CR2 register The previous implementation in Go assembly did not translate to the correct assembly instructions for loading CR2 --- src/gopheros/kernel/cpu/cpu_amd64.s | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gopheros/kernel/cpu/cpu_amd64.s b/src/gopheros/kernel/cpu/cpu_amd64.s index df3bcf3..1304ca4 100644 --- a/src/gopheros/kernel/cpu/cpu_amd64.s +++ b/src/gopheros/kernel/cpu/cpu_amd64.s @@ -19,7 +19,8 @@ TEXT ·FlushTLBEntry(SB),NOSPLIT,$0 TEXT ·SwitchPDT(SB),NOSPLIT,$0 // loading CR3 also triggers a TLB flush - MOVQ pdtPhysAddr+0(FP), CR3 + MOVQ pdtPhysAddr+0(FP), AX + MOVQ AX, CR3 RET TEXT ·ActivePDT(SB),NOSPLIT,$0