From 8facd18f30d5cb1650449c2b45ad746536ffa8a1 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Tue, 1 Sep 2009 14:57:18 +0000 Subject: Split AsmReadKr7() and AsmWriteKr7() from AccessKr.s file since these two APIs are frequently used to store/fetch PeiServicesTable pointer for IPF platform. Some compiler/linker with /Od is not smart enough to remove used KR registers access APIs. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9219 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/BaseLib.inf | 1 + MdePkg/Library/BaseLib/Ipf/AccessKr.s | 52 ++-------------------------- MdePkg/Library/BaseLib/Ipf/AccessKr7.s | 63 ++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 50 deletions(-) create mode 100644 MdePkg/Library/BaseLib/Ipf/AccessKr7.s diff --git a/MdePkg/Library/BaseLib/BaseLib.inf b/MdePkg/Library/BaseLib/BaseLib.inf index 849cfcb4d8..7db361fe69 100644 --- a/MdePkg/Library/BaseLib/BaseLib.inf +++ b/MdePkg/Library/BaseLib/BaseLib.inf @@ -553,6 +553,7 @@ Ipf/AccessPsr.s Ipf/AccessPmr.s Ipf/AccessKr.s + Ipf/AccessKr7.s Ipf/AccessGcr.s Ipf/AccessEicr.s Ipf/AccessDbr.s diff --git a/MdePkg/Library/BaseLib/Ipf/AccessKr.s b/MdePkg/Library/BaseLib/Ipf/AccessKr.s index e95059a2cf..63137017e0 100644 --- a/MdePkg/Library/BaseLib/Ipf/AccessKr.s +++ b/MdePkg/Library/BaseLib/Ipf/AccessKr.s @@ -1,7 +1,7 @@ /// @file -/// IPF specific AsmReadKrX() and AsmWriteKrX functions, 'X' is from '0' to '7' +/// IPF specific AsmReadKrX() and AsmWriteKrX() functions, 'X' is from '0' to '6' /// -/// Copyright (c) 2006 - 2008, Intel Corporation +/// Copyright (c) 2006 - 2009, Intel Corporation /// All rights reserved. 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 @@ -358,51 +358,3 @@ AsmWriteKr6:: mov r8 = in0;; br.ret.dpnt b0;; .endp AsmWriteKr6 - - -//--------------------------------------------------------------------------------- -//++ -// AsmReadKr7 -// -// This routine is used to get KR7. -// -// Arguments : -// -// On Entry : None. -// -// Return Value: The value store in KR7. -// -//-- -//---------------------------------------------------------------------------------- -.text -.type AsmReadKr7, @function -.proc AsmReadKr7 - -AsmReadKr7:: - mov r8 = ar.k7;; - br.ret.dpnt b0;; -.endp AsmReadKr7 - -//--------------------------------------------------------------------------------- -//++ -// AsmWriteKr7 -// -// This routine is used to write KR7. -// -// Arguments : -// -// On Entry : None. -// -// Return Value: The value written to the KR7. -// -//-- -//---------------------------------------------------------------------------------- -.text -.type AsmWriteKr7, @function -.proc AsmWriteKr7 - -AsmWriteKr7:: - mov ar.k7 = in0 - mov r8 = in0;; - br.ret.dpnt b0;; -.endp AsmWriteKr7 diff --git a/MdePkg/Library/BaseLib/Ipf/AccessKr7.s b/MdePkg/Library/BaseLib/Ipf/AccessKr7.s new file mode 100644 index 0000000000..d422d76df3 --- /dev/null +++ b/MdePkg/Library/BaseLib/Ipf/AccessKr7.s @@ -0,0 +1,63 @@ +/// @file +/// IPF specific AsmReadKr7() and AsmWriteKr7() +/// +/// Copyright (c) 2006 - 2009, Intel Corporation +/// All rights reserved. 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 +/// http://opensource.org/licenses/bsd-license.php +/// +/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +/// +/// Module Name: AccessKr7.s +/// +/// + +//--------------------------------------------------------------------------------- +//++ +// AsmReadKr7 +// +// This routine is used to get KR7. +// +// Arguments : +// +// On Entry : None. +// +// Return Value: The value store in KR7. +// +//-- +//---------------------------------------------------------------------------------- +.text +.type AsmReadKr7, @function +.proc AsmReadKr7 + +AsmReadKr7:: + mov r8 = ar.k7;; + br.ret.dpnt b0;; +.endp AsmReadKr7 + +//--------------------------------------------------------------------------------- +//++ +// AsmWriteKr7 +// +// This routine is used to write KR7. +// +// Arguments : +// +// On Entry : None. +// +// Return Value: The value written to the KR7. +// +//-- +//---------------------------------------------------------------------------------- +.text +.type AsmWriteKr7, @function +.proc AsmWriteKr7 +.regstk 1, 3, 0, 0 + +AsmWriteKr7:: + mov ar.k7 = in0 + mov r8 = in0;; + br.ret.dpnt b0;; +.endp AsmWriteKr7 -- cgit v1.2.3