;\r
LOAD_RBP\r
\r
- cmp rsp, 0\r
+ test rsp, rsp\r
jz ParamError\r
- cmp rcx, 0\r
+ test rcx, rcx\r
jz ParamError\r
mov rsp, rcx\r
\r
\r
; UPD structure is compliant with FSP spec 2.4\r
mov rax, qword [rsp + LoadMicrocodeParamsFsp24.MicrocodeCodeSize]\r
- cmp rax, 0\r
+ test rax, rax\r
jz Exit2\r
cmp rax, 0800h\r
jl ParamError\r
\r
mov rsi, qword [rsp + LoadMicrocodeParamsFsp24.MicrocodeCodeAddr]\r
- cmp rsi, 0\r
+ test rsi, rsi\r
jnz CheckMainHeader\r
\r
ParamError:\r
mov ecx, MSR_IA32_BIOS_SIGN_ID\r
rdmsr ; Get current microcode signature\r
xor eax, eax\r
- cmp edx, 0\r
+ test edx, edx\r
jnz Exit2\r
- mov eax, 0800000000000000Eh\r
+ mov rax, 0800000000000000Eh\r
\r
Exit2:\r
jmp rbp\r
; Sec Platform Init\r
;\r
CALL_YMM ASM_PFX(SecPlatformInit)\r
- cmp eax, 0\r
+ test rax, rax\r
jnz TempRamInitExit\r
\r
; Load microcode\r
; Call Sec CAR Init\r
LOAD_RCX\r
CALL_YMM ASM_PFX(SecCarInit)\r
- cmp rax, 0\r
+ test rax, rax\r
jnz TempRamInitExit\r
\r
LOAD_RCX\r
CALL_YMM ASM_PFX(EstablishStackFsp)\r
- cmp rax, 0\r
+ test rax, rax\r
jnz TempRamInitExit\r
\r
LOAD_UCODE_STATUS rax ; Restore microcode status if no CAR init error from SLOT 0 in YMM9 (upper 128bits).\r
global ASM_PFX(FspInfoHeaderRelativeOff)\r
ASM_PFX(FspInfoHeaderRelativeOff):\r
DD 0x12345678 ; This value must be patched by the build script\r
- and rax, 0xffffffff\r
ret\r
\r
global ASM_PFX(AsmGetFspInfoHeaderNoStack)\r
lea rcx, [ASM_PFX(FspInfoHeaderRelativeOff)]\r
mov ecx, [rcx]\r
sub rax, rcx\r
- and rax, 0xffffffff\r
jmp rdi\r