mirror of https://github.com/acidanthera/audk.git
1) Changed the file including as '#include "Ipf\IpfCpuCore.i"' for Intel compiler supporting
2) Added the Intel IPF Compiler setting in the tools_def.template git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2195 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
2384947051
commit
66d8c20686
|
@ -1,13 +1,13 @@
|
|||
//++
|
||||
// Copyright (c) 2006, 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
|
||||
// Copyright (c) 2006, 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.
|
||||
//
|
||||
// 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:
|
||||
//
|
||||
// IpfCpuCore.s
|
||||
|
@ -15,12 +15,12 @@
|
|||
// Abstract:
|
||||
// IPF Specific assembly routines
|
||||
//
|
||||
//--
|
||||
//--
|
||||
|
||||
.file "IpfCpuCore.s"
|
||||
|
||||
#include "IpfMacro.i"
|
||||
#include "IpfCpuCore.i"
|
||||
#include "Ipf\IpfCpuCore.i"
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
// This module supports terminating CAR (Cache As RAM) stage. It copies all the
|
||||
|
@ -48,7 +48,7 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
|
|||
NESTED_SETUP (4,2,0,0)
|
||||
|
||||
// first save all stack registers in GPRs.
|
||||
mov r13 = in0;; // this is a pointer to the PLABEL of the continuation function.
|
||||
mov r13 = in0;; // this is a pointer to the PLABEL of the continuation function.
|
||||
ld8 r16 = [r13],8;; // r16 = address of continuation function from the PLABEL
|
||||
ld8 gp = [r13];; // gp = gp of continuation function from the PLABEL
|
||||
mov b1 = r16;;
|
||||
|
@ -60,7 +60,7 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
|
|||
|
||||
mov r8 = in3;; // new stack pointer.
|
||||
|
||||
// r8 has the sp, this is 128K stack size, from this we will reserve 16K for the bspstore
|
||||
// r8 has the sp, this is 128K stack size, from this we will reserve 16K for the bspstore
|
||||
movl r15 = PEI_BSP_STORE_SIZE;;
|
||||
sub r8 = r8, r15;;
|
||||
add r15 = (GuardBand),r8;; // some little buffer, now r15 will be our bspstore
|
||||
|
@ -69,21 +69,21 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
|
|||
mov r4 = r15
|
||||
mov r7 = r8
|
||||
mov r16 = r8;; // will be the new sp in uncache mode
|
||||
|
||||
|
||||
|
||||
alloc r11=0,0,0,0;; // Set 0-size frame
|
||||
flushrs;;
|
||||
|
||||
mov r21 = RSC_KERNEL_DISABLED;; // for rse disable
|
||||
mov ar.rsc = r21;; // turn off RSE
|
||||
mov r21 = RSC_KERNEL_DISABLED;; // for rse disable
|
||||
mov ar.rsc = r21;; // turn off RSE
|
||||
|
||||
add sp = r0, r16 // transfer to the EFI stack
|
||||
mov ar.bspstore = r15 // switch to EFI BSP
|
||||
invala // change of ar.bspstore needs invala.
|
||||
|
||||
mov ar.bspstore = r15 // switch to EFI BSP
|
||||
invala // change of ar.bspstore needs invala.
|
||||
|
||||
mov r19 = RSC_KERNEL_LAZ;; // RSC enabled, Lazy mode
|
||||
mov ar.rsc = r19;; // turn rse on, in kernel mode
|
||||
|
||||
mov ar.rsc = r19;; // turn rse on, in kernel mode
|
||||
|
||||
//-----------------------------------------------------------------------------------
|
||||
// Save here the meaningful stuff for next few lines and then make the PAL call.
|
||||
// Make PAL call to terminate the CAR status.
|
||||
|
@ -91,7 +91,7 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
|
|||
|
||||
mov r28=ar.k3;;
|
||||
dep r2 = r28,r0,0,8;; // Extract Function bits from GR20.
|
||||
cmp.eq p6,p7 = RecoveryFn,r2;; // Is it Recovery check
|
||||
cmp.eq p6,p7 = RecoveryFn,r2;; // Is it Recovery check
|
||||
(p7) br.sptk.few DoneCARTermination; // if not, don't terminate car..
|
||||
|
||||
TerminateCAR::
|
||||
|
@ -120,37 +120,37 @@ ReturnToPEIMain::
|
|||
//
|
||||
// dead loop if the PAL call failed, we have the CAR on but the stack is now pointing to memory
|
||||
//
|
||||
(p7) br.sptk.few ReturnToPEIMain;;
|
||||
(p7) br.sptk.few ReturnToPEIMain;;
|
||||
//
|
||||
// PAL call successed,now the stack are in memory so come into cache mode
|
||||
// PAL call successed,now the stack are in memory so come into cache mode
|
||||
// instead of uncache mode
|
||||
//
|
||||
|
||||
alloc r11=0,0,0,0;; // Set 0-size frame
|
||||
flushrs;;
|
||||
|
||||
mov r21 = RSC_KERNEL_DISABLED;; // for rse disable
|
||||
mov ar.rsc = r21;; // turn off RSE
|
||||
|
||||
dep r6 = 0,r6,63,1 // zero the bit 63
|
||||
dep r7 = 0,r7,63,1 // zero the bit 63
|
||||
dep r4 = 0,r4,63,1;; // zero the bit 63
|
||||
add sp = r0, r7 // transfer to the EFI stack in cache mode
|
||||
mov ar.bspstore = r4 // switch to EFI BSP
|
||||
invala // change of ar.bspstore needs invala.
|
||||
|
||||
|
||||
mov r21 = RSC_KERNEL_DISABLED;; // for rse disable
|
||||
mov ar.rsc = r21;; // turn off RSE
|
||||
|
||||
dep r6 = 0,r6,63,1 // zero the bit 63
|
||||
dep r7 = 0,r7,63,1 // zero the bit 63
|
||||
dep r4 = 0,r4,63,1;; // zero the bit 63
|
||||
add sp = r0, r7 // transfer to the EFI stack in cache mode
|
||||
mov ar.bspstore = r4 // switch to EFI BSP
|
||||
invala // change of ar.bspstore needs invala.
|
||||
|
||||
mov r19 = RSC_KERNEL_LAZ;; // RSC enabled, Lazy mode
|
||||
mov ar.rsc = r19;; // turn rse on, in kernel mode
|
||||
|
||||
#endif
|
||||
|
||||
DoneCARTermination::
|
||||
DoneCARTermination::
|
||||
|
||||
// allocate a stack frame:
|
||||
// allocate a stack frame:
|
||||
alloc r11=0,2,2,0 ;; // alloc outs going to ensuing DXE IPL service
|
||||
// on the new stack
|
||||
mov out0 = r5;;
|
||||
mov out1 = r6;;
|
||||
mov out1 = r6;;
|
||||
|
||||
mov r16 = b1;;
|
||||
mov b6 = r16;;
|
||||
|
@ -168,23 +168,23 @@ PROCEDURE_EXIT(SwitchCoreStacks)
|
|||
// This routine is called by all processors simultaneously, to get some hand-off
|
||||
// status that has been captured by IPF dispatcher and recorded in kernel registers.
|
||||
//
|
||||
// Arguments :
|
||||
// Arguments :
|
||||
//
|
||||
// On Entry : None.
|
||||
//
|
||||
// Return Value: Lid, R20Status.
|
||||
//
|
||||
//
|
||||
//--
|
||||
//----------------------------------------------------------------------------------
|
||||
PROCEDURE_ENTRY (GetHandOffStatus)
|
||||
|
||||
|
||||
NESTED_SETUP (0,2+0,0,0)
|
||||
|
||||
mov r8 = ar.k6 // Health Status (Self test params)
|
||||
mov r9 = ar.k4 // LID bits
|
||||
mov r10 = ar.k3;; // SAL_E entry state
|
||||
mov r11 = ar.k7 // Return address to PAL
|
||||
|
||||
|
||||
NESTED_RETURN
|
||||
PROCEDURE_EXIT (GetHandOffStatus)
|
||||
//----------------------------------------------------------------------------------
|
||||
|
|
|
@ -46,6 +46,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
|
|||
# WINDDK3790x1830 - Microsoft Windows DDK 3790.1830
|
||||
# UINIXGCC - UINIX GCC
|
||||
# CYGWINGCC - CygWin GCC
|
||||
# ICC - Intel C Compiler V9.1
|
||||
# MYTOOLS - Settings compatible with previous versions of tools_def.template
|
||||
#
|
||||
####################################################################################
|
||||
|
@ -486,6 +487,91 @@ RELEASE_MIXED_X64_ASM_FLAGS = /nologo /W3 /WX /c /Cx /Zd
|
|||
# *_*_*_ASL_PATH = C:\ASL
|
||||
#
|
||||
|
||||
|
||||
####################################################################################
|
||||
#
|
||||
# Intel(R) C++ Compiler Version 9.1
|
||||
#
|
||||
# IPF - Intel(R) C++ Compiler for Itanium(R)Version 9.1 Build 20060928 Package ID: W_CC_C_9.1.032
|
||||
# ASL - Intel ACPI Source Language COmpiler
|
||||
#
|
||||
####################################################################################
|
||||
*_ICC_*_*_FAMILY = MSFT
|
||||
|
||||
*_ICC_*_CC_NAME = cl.exe
|
||||
*_ICC_*_SLINK_NAME = lib.exe
|
||||
*_ICC_*_DLINK_NAME = link.exe
|
||||
*_ICC_*_ASMLINK_NAME = link.exe
|
||||
*_ICC_*_PP_NAME = cl.exe
|
||||
*_ICC_*_VFRPP_NAME = cl.exe
|
||||
*_ICC_*_APP_NAME = cl.exe
|
||||
*_ICC_*_ASM_NAME = ml.exe
|
||||
|
||||
*_ICC_*_VFRPP_FLAGS = /nologo /P /TC /DVFRCOMPILE
|
||||
##################
|
||||
# IA32 definitions
|
||||
##################
|
||||
*_ICC_IA32_PCH_NAME = cl.exe
|
||||
*_ICC_IA32_ASM_EXT = .asm
|
||||
|
||||
*_ICC_IA32_*_PATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin
|
||||
*_ICC_IA32_*_DPATH = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE
|
||||
*_ICC_IA32_ASMLINK_PATH = C:\WINDDK\3790.1830\bin\bin16\
|
||||
|
||||
*_ICC_IA32_APP_FLAGS = /nologo /P /TC
|
||||
*_ICC_IA32_PP_FLAGS = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h
|
||||
DEBUG_ICC_IA32_CC_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h /Zi /Gm
|
||||
RELEASE_ICC_IA32_CC_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yu${DEST_DIR_DEBUG}/AutoGen.h
|
||||
DEBUG_ICC_IA32_PCH_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC /Zi /Gm
|
||||
RELEASE_ICC_IA32_PCH_FLAGS = /nologo /W4 /WX /Gy /c /D UNICODE /D EFI32 /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /EHs-c- /GF /Gs8192 /Fp${DEST_DIR_OUTPUT}/AutoGen.h.gch /Yc /TC
|
||||
DEBUG_ICC_IA32_ASM_FLAGS = /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi
|
||||
RELEASE_ICC_IA32_ASM_FLAGS = /nologo /W3 /WX /c /coff /Cx /Zd /W0
|
||||
*_ICC_IA32_SLINK_FLAGS = /nologo /LTCG
|
||||
DEBUG_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:${ENTRYPOINT} /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
|
||||
RELEASE_ICC_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:${ENTRYPOINT} /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
|
||||
|
||||
|
||||
##################
|
||||
# IPF definitions
|
||||
##################
|
||||
*_ICC_IPF_*_FAMILY = INTEL
|
||||
|
||||
*_ICC_IPF_CC_NAME = icl.exe
|
||||
*_ICC_IPF_SLINK_NAME = xilib.exe
|
||||
*_ICC_IPF_DLINK_NAME = xilink.exe
|
||||
*_ICC_IPF_ASMLINK_NAME = xilink.exe
|
||||
*_ICC_IPF_PP_NAME = icl.exe
|
||||
*_ICC_IPF_VFRPP_NAME = icl.exe
|
||||
|
||||
*_ICC_IPF_PCH_NAME = icl.exe
|
||||
*_ICC_IPF_APP_NAME = icl.exe
|
||||
*_ICC_IPF_ASM_NAME = ias.exe
|
||||
*_ICC_IPF_ASM_EXT = .s
|
||||
|
||||
|
||||
|
||||
*_ICC_IPF_*_PATH = C:\Program Files\Intel\Compiler\C++\9.1\Itanium\Bin
|
||||
|
||||
*_ICC_IPF_APP_FLAGS = /nologo /P /TC
|
||||
*_ICC_IPF_PP_FLAGS = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h
|
||||
DEBUG_ICC_IPF_CC_FLAGS = /nologo /W3 /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h
|
||||
RELEASE_ICC_IPF_CC_FLAGS = /nologo /W3 /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h
|
||||
DEBUG_ICC_IPF_PCH_FLAGS = /nologo /W3 /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Yc /TC /Zi
|
||||
RELEASE_ICC_IPF_PCH_FLAGS = /nologo /W3 /GX /Gy /c /Od /D EFI64 /DSTRING_ARRAY_NAME=${BASE_NAME}Strings /FI${DEST_DIR_DEBUG}/AutoGen.h /Yc /TC
|
||||
DEBUG_ICC_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32
|
||||
RELEASE_ICC_IPF_ASM_FLAGS = -N us -X explicit -M ilp64 -N so -W3 -F COFF32
|
||||
DEBUG_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb /DEBUG
|
||||
RELEASE_ICC_IPF_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /MACHINE:IA64 /ENTRY:${ENTRYPOINT} /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:${DEST_DIR_DEBUG}/${BASE_NAME}.map /PDB:${DEST_DIR_DEBUG}/${BASE_NAME}.pdb
|
||||
*_ICC_IPF_SLINK_FLAGS = /nologo /LTCG
|
||||
|
||||
|
||||
##################
|
||||
# ASL definitions
|
||||
##################
|
||||
*_ICC_*_ASL_FAMILY = INTEL
|
||||
*_ICC_*_ASL_NAME = iasl.exe
|
||||
*_ICC_*_ASL_PATH = C:\ASL
|
||||
|
||||
####################################################################################
|
||||
#
|
||||
# MYTOOLS
|
||||
|
|
Loading…
Reference in New Issue