]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
UefiCpuPkg/MpInitLib: Simplify logic in SwitchBsp
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / X64 / MpFuncs.nasm
index cd95b03da8455594f52f8a1de4a3ea08ef100b88..b7f8d485048ce34d2cf5eb65a20343d9ee8ac39e 100644 (file)
@@ -482,22 +482,13 @@ ASM_PFX(AsmExchangeRole):
     push       r14\r
     push       r15\r
 \r
-    mov        rax, cr0\r
-    push       rax\r
-\r
-    mov        rax, cr4\r
-    push       rax\r
-\r
     ; rsi contains MyInfo pointer\r
     mov        rsi, rcx\r
 \r
     ; rdi contains OthersInfo pointer\r
     mov        rdi, rdx\r
 \r
-    ;Store EFLAGS, GDTR and IDTR regiter to stack\r
     pushfq\r
-    sgdt       [rsi + CPU_EXCHANGE_ROLE_INFO.Gdtr]\r
-    sidt       [rsi + CPU_EXCHANGE_ROLE_INFO.Idtr]\r
 \r
     ; Store the its StackPointer\r
     mov        [rsi + CPU_EXCHANGE_ROLE_INFO.StackPointer], rsp\r
@@ -513,12 +504,6 @@ WaitForOtherStored:
     jmp        WaitForOtherStored\r
 \r
 OtherStored:\r
-    ; Since another CPU already stored its state, load them\r
-    ; load GDTR value\r
-    lgdt       [rdi + CPU_EXCHANGE_ROLE_INFO.Gdtr]\r
-\r
-    ; load IDTR value\r
-    lidt       [rdi + CPU_EXCHANGE_ROLE_INFO.Idtr]\r
 \r
     ; load its future StackPointer\r
     mov        rsp, [rdi + CPU_EXCHANGE_ROLE_INFO.StackPointer]\r
@@ -538,12 +523,6 @@ OtherLoaded:
     ; since the other CPU already get the data it want, leave this procedure\r
     popfq\r
 \r
-    pop        rax\r
-    mov        cr4, rax\r
-\r
-    pop        rax\r
-    mov        cr0, rax\r
-\r
     pop        r15\r
     pop        r14\r
     pop        r13\r