]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Library/BaseLib/Ipf/AsmPalCall.s
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Library / BaseLib / Ipf / AsmPalCall.s
diff --git a/OldMdePkg/Library/BaseLib/Ipf/AsmPalCall.s b/OldMdePkg/Library/BaseLib/Ipf/AsmPalCall.s
deleted file mode 100644 (file)
index 9e70a78..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/// @file\r
-///   Contains an implementation of CallPalProcStacked on Itanium-based\r
-///   architecture.\r
-///\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
-/// Module Name:  AsmPalCall.s\r
-///\r
-///\r
-\r
-\r
-//-----------------------------------------------------------------------------\r
-//++\r
-//  AsmPalCall\r
-//\r
-//  Makes a PAL procedure call.\r
-//  This is function to make a PAL procedure call.  Based on the Index\r
-//  value this API will make static or stacked PAL call.  The following table\r
-//  describes the usage of PAL Procedure Index Assignment. Architected procedures\r
-//  may be designated as required or optional.  If a PAL procedure is specified\r
-//  as optional, a unique return code of 0xFFFFFFFFFFFFFFFF is returned in the\r
-//  Status field of the PAL_CALL_RETURN structure.\r
-//  This indicates that the procedure is not present in this PAL implementation.\r
-//  It is the caller¡¯s responsibility to check for this return code after calling\r
-//  any optional PAL procedure.\r
-//  No parameter checking is performed on the 5 input parameters, but there are\r
-//  some common rules that the caller should follow when making a PAL call.  Any\r
-//  address passed to PAL as buffers for return parameters must be 8-byte aligned.\r
-//  Unaligned addresses may cause undefined results.  For those parameters defined\r
-//  as reserved or some fields defined as reserved must be zero filled or the invalid\r
-//  argument return value may be returned or undefined result may occur during the\r
-//  execution of the procedure.  If the PalEntryPoint  does not point to a valid\r
-//  PAL entry point then the system behavior is undefined.  This function is only\r
-//  available on IPF.\r
-//\r
-//  On Entry :\r
-//           in0:  PAL_PROC entrypoint\r
-//           in1-in4 : PAL_PROC arguments\r
-//\r
-//  Return Value:\r
-//\r
-//  As per stacked calling conventions.\r
-//\r
-//--\r
-//---------------------------------------------------------------------------\r
-\r
-//\r
-// PAL function calls\r
-//\r
-#define PAL_MC_CLEAR_LOG               0x0015\r
-#define PAL_MC_DYNAMIC_STATE           0x0018\r
-#define PAL_MC_ERROR_INFO              0x0019\r
-#define PAL_MC_RESUME                  0x001a\r
-\r
-\r
-.text\r
-.proc AsmPalCall\r
-.type AsmPalCall, @function\r
-\r
-AsmPalCall::\r
-         alloc          loc1 = ar.pfs,5,8,4,0\r
-         mov            loc0 = b0\r
-         mov            loc3 = b5\r
-         mov            loc4 = r2\r
-         mov            loc7 = r1\r
-         mov            r2 = psr;;\r
-         mov            r28 = in1\r
-         mov            loc5 = r2;;\r
-\r
-         movl           loc6 = 0x100;;\r
-         cmp.ge         p6,p7 = r28,loc6;;\r
-\r
-(p6)     movl           loc6 = 0x1FF;;\r
-(p7)     br.dpnt.few PalCallStatic;;                  // 0 ~ 255 make a static Pal Call\r
-(p6)     cmp.le         p6,p7 = r28,loc6;;\r
-(p6)     br.dpnt.few PalCallStacked;;                 // 256 ~ 511 make a stacked Pal Call\r
-(p7)     movl           loc6 = 0x300;;\r
-(p7)     cmp.ge         p6,p7 = r28,loc6;;\r
-(p7)     br.dpnt.few PalCallStatic;;                  // 512 ~ 767 make a static Pal Call\r
-(p6)     movl           loc6 = 0x3FF;;\r
-(p6)     cmp.le         p6,p7 = r28,loc6;;\r
-(p6)     br.dpnt.few PalCallStacked;;                 // 768 ~ 1023 make a stacked Pal Call\r
-\r
-(p7)     mov            r8 = 0xFFFFFFFFFFFFFFFF;;     // > 1024 return invalid\r
-(p7)     br.dpnt.few    ComeBackFromPALCall;;\r
-\r
-PalCallStatic:\r
-         movl           loc6 = PAL_MC_CLEAR_LOG;;\r
-         cmp.eq         p6,p7 = r28,loc6;;\r
-\r
-(p7)     movl           loc6 = PAL_MC_DYNAMIC_STATE;;\r
-(p7)     cmp.eq         p6,p7 = r28,loc6;;\r
-\r
-(p7)     movl           loc6 = PAL_MC_ERROR_INFO;;\r
-(p7)     cmp.eq         p6,p7 = r28,loc6;;\r
-\r
-(p7)     movl           loc6 = PAL_MC_RESUME;;\r
-(p7)     cmp.eq         p6,p7 = r28,loc6 ;;\r
-\r
-         mov            loc6 = 0x1;;\r
-(p7)     dep            r2 = loc6,r2,13,1;;           // psr.ic = 1\r
-\r
-// p6 will be true, if it is one of the MCHK calls. There has been lots of debate\r
-// on psr.ic for these values. For now, do not do any thing to psr.ic\r
-\r
-         dep            r2 = r0,r2,14,1;;             // psr.i = 0\r
-\r
-         mov            psr.l = r2\r
-         srlz.d                                       // Needs data serailization.\r
-         srlz.i                                       // Needs instruction serailization.\r
-\r
-StaticGetPALLocalIP:\r
-         mov            loc2 = ip;;\r
-         add            loc2 = ComeBackFromPALCall - StaticGetPALLocalIP,loc2;;\r
-         mov            b0 = loc2                     // return address after Pal call\r
-\r
-         mov            r29 = in2\r
-         mov            r30 = in3\r
-         mov            r31 = in4\r
-         mov            b5 = in0;;                    // get the PalProcEntrypt from input\r
-         br.sptk        b5;;                          // Take the plunge.\r
-\r
-PalCallStacked:\r
-         dep            r2 = r0,r2,14,1;;             // psr.i = 0\r
-         mov            psr.l = r2;;\r
-         srlz.d                                       // Needs data serailization.\r
-         srlz.i                                       // Needs instruction serailization.\r
-\r
-StackedGetPALLocalIP:\r
-         mov            out0 = in1\r
-         mov            out1 = in2\r
-         mov            out2 = in3\r
-         mov            out3 = in4\r
-         mov            b5 =  in0 ;;                  // get the PalProcEntrypt from input\r
-         br.call.dpnt   b0 = b5 ;;                    // Take the plunge.\r
-\r
-ComeBackFromPALCall:\r
-         mov            psr.l = loc5 ;;\r
-         srlz.d                                       // Needs data serailization.\r
-         srlz.i                                       // Needs instruction serailization.\r
-\r
-         mov            b5 = loc3\r
-         mov            r2 = loc4\r
-         mov            r1 = loc7\r
-\r
-         mov            b0 = loc0\r
-         mov            ar.pfs = loc1;;\r
-         br.ret.dpnt    b0;;\r
-\r
-.endp AsmPalCall\r
-\r