diff options
Diffstat (limited to 'src/arch/x86/bootblock_crt0.S')
-rw-r--r-- | src/arch/x86/bootblock_crt0.S | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/arch/x86/bootblock_crt0.S b/src/arch/x86/bootblock_crt0.S index 8ae82b4368..1b160f483b 100644 --- a/src/arch/x86/bootblock_crt0.S +++ b/src/arch/x86/bootblock_crt0.S @@ -43,12 +43,28 @@ debug_spinloop: #endif bootblock_protected_mode_entry: - /* Save BIST result */ - movd %eax, %mm0 - /* Save an early timestamp */ + + /* BIST result in eax */ + movl %eax, %ebx + + /* Get an early timestamp */ rdtsc + +#if IS_ENABLED(CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP) + lea 1f, %ebp + + /* eax: Low 32-bits of timestamp + * ebx: BIST result + * ebp: return address + * edx: High 32-bits of timestamp + */ + jmp bootblock_save_bist_and_timestamp +1: +#else + movd %ebx, %mm0 movd %eax, %mm1 movd %edx, %mm2 +#endif #if IS_ENABLED(CONFIG_SSE) enable_sse: |