summaryrefslogtreecommitdiffstats
path: root/MdePkg
diff options
context:
space:
mode:
authorli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>2012-04-11 01:56:48 +0000
committerli-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524>2012-04-11 01:56:48 +0000
commitfcbccedb28b6847614cc849b6380282ceaafe7bb (patch)
tree16e9491f8ffa99645ef5857484234089820b15f2 /MdePkg
parent0779e5bfb0df775cbe02924ef9db4bd58f871ed5 (diff)
downloadedk2-fcbccedb28b6847614cc849b6380282ceaafe7bb.tar.gz
edk2-fcbccedb28b6847614cc849b6380282ceaafe7bb.tar.bz2
edk2-fcbccedb28b6847614cc849b6380282ceaafe7bb.zip
Current IPF version SwitchStack implementation uses loadrs instruction to restore dirty partition of register stack from the backing store, but there is no guarantee to make the backing store valid before. So add flushrs before loadrs to make sure backing store valid.
Signed-off-by: Li Elvin <elvin.li@intel.com> Reviewed-by: Li Kevin <kevin.y.li@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13183 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Library/BaseLib/Ipf/SwitchStack.s6
1 files changed, 4 insertions, 2 deletions
diff --git a/MdePkg/Library/BaseLib/Ipf/SwitchStack.s b/MdePkg/Library/BaseLib/Ipf/SwitchStack.s
index 33f2ed013f..1236bbe947 100644
--- a/MdePkg/Library/BaseLib/Ipf/SwitchStack.s
+++ b/MdePkg/Library/BaseLib/Ipf/SwitchStack.s
@@ -1,7 +1,7 @@
/// @file
/// IPF specific SwitchStack() function
///
-/// Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>
+/// Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
/// This program and the accompanying materials
/// are licensed and made available under the terms and conditions of the BSD License
/// which accompanies this distribution. The full text of the license may be found at
@@ -27,7 +27,9 @@ AsmSwitchStackAndBackingStore::
mov r17 = in1
mov r18 = in2
and r2 = r14, r2
-
+
+ flushrs
+
mov ar.rsc = r2
mov sp = in3
mov r19 = in4