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
This commit is contained in:
qhuang8 2009-09-01 14:57:18 +00:00
parent 709f55c023
commit 8facd18f30
3 changed files with 66 additions and 50 deletions

View File

@ -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

View File

@ -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

View File

@ -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