1) Changed the file including as '#include "Ipf\IpfCpuCore.i"' for Intel compiler...
authorzliu3 <zliu3@de2fecce-e211-0410-80a6-f3fac2684e05>
Mon, 8 Jan 2007 14:13:56 +0000 (14:13 +0000)
committerzliu3 <zliu3@de2fecce-e211-0410-80a6-f3fac2684e05>
Mon, 8 Jan 2007 14:13:56 +0000 (14:13 +0000)
2) Added the Intel IPF Compiler setting in the tools_def.template

git-svn-id: https://edk2.tianocore.org/svn/edk2/trunk@2195 de2fecce-e211-0410-80a6-f3fac2684e05

edk2/EdkModulePkg/Core/Pei/Ipf/IpfCpuCore.s
edk2/Tools/Conf/tools_def.template

index d8744b5..7628c5b 100644 (file)
@@ -1,13 +1,13 @@
 //++\r
-// Copyright (c) 2006, Intel Corporation                                                         \r
-// All rights reserved. This program and the accompanying materials                          \r
-// are licensed and made available under the terms and conditions of the BSD License         \r
-// which accompanies this distribution.  The full text of the license may be found at        \r
-// http://opensource.org/licenses/bsd-license.php                                            \r
+// Copyright (c) 2006, Intel Corporation\r
+// All rights reserved. This program and the accompanying materials\r
+// are licensed and made available under the terms and conditions of the BSD License\r
+// which accompanies this distribution.  The full text of the license may be found at\r
+// http://opensource.org/licenses/bsd-license.php\r
 //                                                                                           \r
-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-// \r
+// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+//\r
 //  Module Name:\r
 //\r
 //    IpfCpuCore.s\r
 //  Abstract:\r
 //    IPF Specific assembly routines\r
 //\r
-//-- \r
+//--\r
 \r
 .file  "IpfCpuCore.s"\r
 \r
 #include  "IpfMacro.i"\r
-#include  "IpfCpuCore.i"\r
+#include  "Ipf\IpfCpuCore.i"\r
 \r
 //----------------------------------------------------------------------------------\r
 // This module supports terminating CAR (Cache As RAM) stage. It copies all the\r
@@ -48,7 +48,7 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
         NESTED_SETUP (4,2,0,0)\r
 \r
         // first save all stack registers in GPRs.\r
-        mov     r13 = in0;;             // this is a pointer to the PLABEL of the continuation function.  \r
+        mov     r13 = in0;;             // this is a pointer to the PLABEL of the continuation function.\r
         ld8     r16 = [r13],8;;         // r16 = address of continuation function from the PLABEL\r
         ld8     gp = [r13];;            // gp  = gp of continuation function from the PLABEL\r
         mov     b1 = r16;;\r
@@ -60,7 +60,7 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
 \r
         mov     r8 = in3;;              // new stack pointer.\r
 \r
-        // r8 has the sp, this is 128K stack size, from this we will reserve 16K for the bspstore \r
+        // r8 has the sp, this is 128K stack size, from this we will reserve 16K for the bspstore\r
         movl    r15 = PEI_BSP_STORE_SIZE;;\r
         sub     r8 = r8, r15;;\r
         add     r15 = (GuardBand),r8;;  // some little buffer, now r15 will be our bspstore\r
@@ -69,21 +69,21 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
         mov     r4  = r15\r
         mov     r7  = r8\r
         mov     r16 = r8;;              // will be the new sp in uncache mode\r
-      \r
+\r
 \r
         alloc   r11=0,0,0,0;;           // Set 0-size frame\r
         flushrs;;\r
 \r
-        mov     r21 = RSC_KERNEL_DISABLED;; // for rse disable             \r
-        mov     ar.rsc = r21;;          // turn off RSE                \r
+        mov     r21 = RSC_KERNEL_DISABLED;; // for rse disable\r
+        mov     ar.rsc = r21;;          // turn off RSE\r
 \r
         add     sp = r0, r16            // transfer to the EFI stack\r
-        mov     ar.bspstore = r15       // switch to EFI BSP        \r
-        invala                          // change of ar.bspstore needs invala.     \r
-      \r
+        mov     ar.bspstore = r15       // switch to EFI BSP\r
+        invala                          // change of ar.bspstore needs invala.\r
+\r
         mov     r19 = RSC_KERNEL_LAZ;;  // RSC enabled, Lazy mode\r
-        mov     ar.rsc = r19;;          // turn rse on, in kernel mode \r
-                \r
+        mov     ar.rsc = r19;;          // turn rse on, in kernel mode\r
+\r
 //-----------------------------------------------------------------------------------\r
 // Save here the meaningful stuff for next few lines and then make the PAL call.\r
 // Make PAL call to terminate the CAR status.\r
@@ -91,7 +91,7 @@ PROCEDURE_ENTRY (SwitchCoreStacks)
 \r
         mov     r28=ar.k3;;\r
         dep     r2 = r28,r0,0,8;;       // Extract Function bits from GR20.\r
-        cmp.eq  p6,p7 = RecoveryFn,r2;; // Is it Recovery check  \r
+        cmp.eq  p6,p7 = RecoveryFn,r2;; // Is it Recovery check\r
         (p7)  br.sptk.few DoneCARTermination; // if not, don't terminate car..\r
 \r
 TerminateCAR::\r
@@ -120,37 +120,37 @@ ReturnToPEIMain::
         //\r
         // dead loop if the PAL call failed, we have the CAR on but the stack is now pointing to memory\r
         //\r
-        (p7) br.sptk.few ReturnToPEIMain;; \r
+        (p7) br.sptk.few ReturnToPEIMain;;\r
         //\r
-        // PAL call successed,now the stack are in memory so come into cache mode \r
+        // PAL call successed,now the stack are in memory so come into cache mode\r
         // instead of uncache mode\r
         //\r
 \r
         alloc   r11=0,0,0,0;;           // Set 0-size frame\r
         flushrs;;\r
-     \r
-        mov     r21 = RSC_KERNEL_DISABLED;; // for rse disable             \r
-        mov     ar.rsc = r21;;          // turn off RSE                \r
-    \r
-        dep     r6 = 0,r6,63,1          // zero the bit 63                               \r
-        dep     r7 = 0,r7,63,1          // zero the bit 63    \r
-        dep     r4 = 0,r4,63,1;;        // zero the bit 63   \r
-        add     sp = r0, r7             // transfer to the EFI stack in cache mode    \r
-        mov     ar.bspstore = r4        // switch to EFI BSP        \r
-        invala                          // change of ar.bspstore needs invala.     \r
-    \r
+\r
+        mov     r21 = RSC_KERNEL_DISABLED;; // for rse disable\r
+        mov     ar.rsc = r21;;          // turn off RSE\r
+\r
+        dep     r6 = 0,r6,63,1          // zero the bit 63\r
+        dep     r7 = 0,r7,63,1          // zero the bit 63\r
+        dep     r4 = 0,r4,63,1;;        // zero the bit 63\r
+        add     sp = r0, r7             // transfer to the EFI stack in cache mode\r
+        mov     ar.bspstore = r4        // switch to EFI BSP\r
+        invala                          // change of ar.bspstore needs invala.\r
+\r
         mov     r19 = RSC_KERNEL_LAZ;;  // RSC enabled, Lazy mode\r
         mov     ar.rsc = r19;;          // turn rse on, in kernel mode\r
 \r
 #endif\r
 \r
-DoneCARTermination::                                                                    \r
+DoneCARTermination::\r
 \r
-        // allocate a stack frame:                  \r
+        // allocate a stack frame:\r
         alloc   r11=0,2,2,0 ;;          // alloc  outs going to ensuing DXE IPL service\r
                                                                                                 // on the new stack\r
         mov     out0 = r5;;\r
-        mov     out1 = r6;;        \r
+        mov     out1 = r6;;\r
 \r
         mov     r16 = b1;;\r
         mov     b6 = r16;;\r
@@ -168,23 +168,23 @@ PROCEDURE_EXIT(SwitchCoreStacks)
 // This routine is called by all processors simultaneously, to get some hand-off\r
 // status that has been captured by IPF dispatcher and recorded in kernel registers.\r
 //\r
-// Arguments : \r
+// Arguments :\r
 //\r
 // On Entry :  None.\r
 //\r
 // Return Value: Lid, R20Status.\r
-// \r
+//\r
 //--\r
 //----------------------------------------------------------------------------------\r
 PROCEDURE_ENTRY (GetHandOffStatus)\r
-        \r
+\r
         NESTED_SETUP (0,2+0,0,0)\r
 \r
         mov     r8 = ar.k6              // Health Status (Self test params)\r
         mov     r9 = ar.k4              // LID bits\r
         mov     r10 = ar.k3;;           // SAL_E entry state\r
         mov     r11 = ar.k7             // Return address to PAL\r
-        \r
+\r
         NESTED_RETURN\r
 PROCEDURE_EXIT (GetHandOffStatus)\r
 //----------------------------------------------------------------------------------\r
index c4e5661..54d181b 100644 (file)
@@ -46,6 +46,7 @@ IDENTIFIER = Default TOOL_CHAIN_CONF
 #   WINDDK3790x1830  - Microsoft Windows DDK 3790.1830\r
 #   UINIXGCC         - UINIX GCC\r
 #   CYGWINGCC        - CygWin GCC\r
+#   ICC              - Intel C Compiler V9.1\r
 #   MYTOOLS          - Settings compatible with previous versions of tools_def.template\r
 #\r
 ####################################################################################\r
@@ -486,6 +487,91 @@ RELEASE_MIXED_X64_ASM_FLAGS   = /nologo /W3 /WX /c /Cx /Zd
 # *_*_*_ASL_PATH    = C:\ASL\r
 # \r
 \r
+\r
+####################################################################################\r
+#\r
+# Intel(R) C++ Compiler Version 9.1\r
+#\r
+#   IPF  - Intel(R) C++ Compiler for Itanium(R)Version 9.1  Build 20060928 Package ID: W_CC_C_9.1.032\r
+#   ASL  - Intel ACPI Source Language COmpiler\r
+#\r
+####################################################################################\r
+*_ICC_*_*_FAMILY             = MSFT\r
+\r
+*_ICC_*_CC_NAME              = cl.exe\r
+*_ICC_*_SLINK_NAME           = lib.exe\r
+*_ICC_*_DLINK_NAME           = link.exe\r
+*_ICC_*_ASMLINK_NAME         = link.exe\r
+*_ICC_*_PP_NAME              = cl.exe\r
+*_ICC_*_VFRPP_NAME           = cl.exe\r
+*_ICC_*_APP_NAME             = cl.exe\r
+*_ICC_*_ASM_NAME             = ml.exe\r
+\r
+*_ICC_*_VFRPP_FLAGS            = /nologo /P /TC /DVFRCOMPILE\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_ICC_IA32_PCH_NAME          = cl.exe\r
+*_ICC_IA32_ASM_EXT           = .asm\r
+\r
+*_ICC_IA32_*_PATH            = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\r
+*_ICC_IA32_*_DPATH           = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
+*_ICC_IA32_ASMLINK_PATH      = C:\WINDDK\3790.1830\bin\bin16\\r
+\r
+*_ICC_IA32_APP_FLAGS         = /nologo /P /TC\r
+*_ICC_IA32_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+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\r
+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\r
+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\r
+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\r
+DEBUG_ICC_IA32_ASM_FLAGS     = /nologo /W3 /WX /c /coff /Cx /Zd /W0 /Zi\r
+RELEASE_ICC_IA32_ASM_FLAGS   = /nologo /W3 /WX /c /coff /Cx /Zd /W0\r
+*_ICC_IA32_SLINK_FLAGS       = /nologo /LTCG\r
+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\r
+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\r
+\r
+\r
+##################\r
+# IPF definitions\r
+##################\r
+*_ICC_IPF_*_FAMILY  = INTEL\r
+\r
+*_ICC_IPF_CC_NAME           = icl.exe\r
+*_ICC_IPF_SLINK_NAME        = xilib.exe\r
+*_ICC_IPF_DLINK_NAME        = xilink.exe\r
+*_ICC_IPF_ASMLINK_NAME      = xilink.exe\r
+*_ICC_IPF_PP_NAME           = icl.exe\r
+*_ICC_IPF_VFRPP_NAME        = icl.exe\r
+\r
+*_ICC_IPF_PCH_NAME          = icl.exe\r
+*_ICC_IPF_APP_NAME          = icl.exe\r
+*_ICC_IPF_ASM_NAME          = ias.exe\r
+*_ICC_IPF_ASM_EXT           = .s\r
+\r
+\r
+\r
+*_ICC_IPF_*_PATH            = C:\Program Files\Intel\Compiler\C++\9.1\Itanium\Bin\r
+\r
+*_ICC_IPF_APP_FLAGS         = /nologo /P /TC\r
+*_ICC_IPF_PP_FLAGS          = /nologo /P /TC /FI${DEST_DIR_DEBUG}/AutoGen.h\r
+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\r
+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\r
+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\r
+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\r
+DEBUG_ICC_IPF_ASM_FLAGS     = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
+RELEASE_ICC_IPF_ASM_FLAGS   = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
+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\r
+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\r
+*_ICC_IPF_SLINK_FLAGS       = /nologo /LTCG\r
+\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_ICC_*_ASL_FAMILY  = INTEL\r
+*_ICC_*_ASL_NAME    = iasl.exe\r
+*_ICC_*_ASL_PATH    = C:\ASL\r
+\r
 ####################################################################################\r
 #\r
 # MYTOOLS\r