diff options
author | li-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-04-11 01:56:48 +0000 |
---|---|---|
committer | li-elvin <li-elvin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-04-11 01:56:48 +0000 |
commit | fcbccedb28b6847614cc849b6380282ceaafe7bb (patch) | |
tree | 16e9491f8ffa99645ef5857484234089820b15f2 /MdePkg/Library/BaseLib/Ipf | |
parent | 0779e5bfb0df775cbe02924ef9db4bd58f871ed5 (diff) | |
download | edk2-platforms-fcbccedb28b6847614cc849b6380282ceaafe7bb.tar.xz |
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/Library/BaseLib/Ipf')
-rw-r--r-- | MdePkg/Library/BaseLib/Ipf/SwitchStack.s | 6 |
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
|