-//++\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:\r
-// IpfMacro.i\r
-//\r
-// Abstract:\r
-// Contains the macros needed for calling procedures in Itanium-based assembly code.\r
-//\r
-//\r
-// Revision History:\r
-//\r
-//--\r
+// @file\r
+// Contains the macros required by calling procedures in Itanium-based assembly code.\r
+//\r
+// Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+// 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
\r
#ifndef __IA64PROC_I__\r
#define __IA64PROC_I__\r
\r
-\r
+//\r
+// Delcare the begin of assembly function entry.\r
+//\r
+// @param name Name of function in assembly code.\r
+//\r
#define PROCEDURE_ENTRY(name) .##text; \\r
.##type name, @function; \\r
.##proc name; \\r
name::\r
\r
+//\r
+// End of assembly function.\r
+//\r
+// @param name Name of function in assembly code.\r
+//\r
#define PROCEDURE_EXIT(name) .##endp name\r
\r
-// Note: use of NESTED_SETUP requires number of locals (l) >= 3\r
-\r
+//\r
+// NESTED_SETUP Requires number of locals (l) >= 3\r
+//\r
#define NESTED_SETUP(i,l,o,r) \\r
alloc loc1=ar##.##pfs,i,l,o,r ;\\r
mov loc0=b0\r
\r
+//\r
+// End of Nested\r
+//\r
#define NESTED_RETURN \\r
mov b0=loc0 ;\\r
mov ar##.##pfs=loc1 ;;\\r
br##.##ret##.##dpnt b0;;\r
\r
+//\r
+// Export assembly function as the global function.\r
+//\r
+// @param Function Name of function in assembly code.\r
+//\r
#define GLOBAL_FUNCTION(Function) \\r
.##type Function, @function; \\r
- .##global Function\r
-\r
-#define INTERRUPT_HANDLER_BEGIN(name) \\r
-PROCEDURE_ENTRY(name##HandlerBegin) \\r
-;; \\r
-PROCEDURE_EXIT(name##HandlerBegin)\r
-\r
-#define INTERRUPT_HANDLER_END(name) \\r
-PROCEDURE_ENTRY(name##HandlerEnd) \\r
-;; \\r
-PROCEDURE_EXIT(name##HandlerEnd) \r
-\r
-\r
-#define INTERRUPT_HANDLER_BLOCK_BEGIN \\r
-INTERRUPT_HANDLER_BEGIN(First)\r
-\r
-#define INTERRUPT_HANDLER_BLOCK_END \\r
-INTERRUPT_HANDLER_END(Last)\r
-\r
-\r
+ .##globl Function\r
\r
#endif\r