diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2017-07-12 16:30:47 +0300 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2017-07-15 16:10:19 +0000 |
commit | fec6fa799ce16eabec0add9bfe6ab5222921f612 (patch) | |
tree | 97831bc981d6209662a81ff456acbc21f893f012 /src/vendorcode/amd/agesa/f15 | |
parent | 5a0d29d460fa2d268e8dc1a829c75a8196302aba (diff) |
vendorcode/amd/agesa: Tidy up gcccar.inc
Change register preservations and fix comments about register
usage accordingly. Do this to avoid use of %mm0-2 registers inside
macros defined in gcccar.inc, as future implementation of
C_BOOTBLOCK_ENVIRONMENT will use them as well.
Adjust caller side accordingly.
Change-Id: Ic76fcc31ae714baf5259d17c41b62a3610aa947b
Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com>
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/20579
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Marc Jones <marc@marcjonesconsulting.com>
Diffstat (limited to 'src/vendorcode/amd/agesa/f15')
-rw-r--r-- | src/vendorcode/amd/agesa/f15/gcccar.inc | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/src/vendorcode/amd/agesa/f15/gcccar.inc b/src/vendorcode/amd/agesa/f15/gcccar.inc index 4d00df392d..427c7e5622 100644 --- a/src/vendorcode/amd/agesa/f15/gcccar.inc +++ b/src/vendorcode/amd/agesa/f15/gcccar.inc @@ -1216,7 +1216,7 @@ node_core_f15_exit: * AMD_ENABLE_STACK: Setup a stack * * In: -* EBX = Return address (preserved) +* No inputs * * Out: * SS:ESP - Our new private stack location @@ -1227,11 +1227,8 @@ node_core_f15_exit: * * Requirements: * * This routine presently is limited to a max of 64 processor cores -* Preserved: -* ebx ebp * Destroyed: -* eax, ecx, edx, edi, esi, ds, es, ss, esp -* mmx0, mmx1 +* EBX, EDX, EDI, ESI, EBP, DS, ES * * Description: * Fixed MTRR address allocation to cores: @@ -1291,8 +1288,6 @@ node_core_f15_exit: # Note that SS:ESP will be default stack. Note that this stack # routine will not be used after memory has been initialized. Because # of its limited lifetime, it will not conflict with typical PCI devices. - movd %ebx, %mm0 # Put return address in a safe place - movd %ebp, %mm1 # Save some other user registers # get node id and core id of current executing core GET_NODE_ID_CORE_ID # Sets ESI[23:16]=Shared core## SI[15,8]= Node## SI[7,0]= core# (relative to node) @@ -1604,9 +1599,6 @@ ClearTheStack: # Stack base is in SS, stack pointer is or $0x40000000, %eax # eax = AGESA_WARNING (Stack has already been set up) #.endif 0: - - movd %mm0, %ebx # Restore return address - movd %mm1, %ebp .endm /***************************************************************************** @@ -1626,17 +1618,15 @@ ClearTheStack: # Stack base is in SS, stack pointer is * none * * Out: -* EAX = AGESA_SUCCESS +* none * * Preserved: -* ebx +* ESP * Destroyed: -* eax, ecx, edx, esp +* EAX, EBX, ECX, EDX, EDI, ESI *****************************************************************************/ .macro AMD_DISABLE_STACK - mov %ebx, %esp # Save return address - # get node/core/flags of current executing core GET_NODE_ID_CORE_ID # Sets ESI[15,8]= Node#; ESI[7,0]= core# (relative to node) @@ -1662,7 +1652,4 @@ ClearTheStack: # Stack base is in SS, stack pointer is AMD_DISABLE_STACK_FAMILY_HOOK # Re-Enable 'normal' cache operations - mov %esp, %ebx - xor %eax, %eax - .endm |