96 lines
1.7 KiB
C
96 lines
1.7 KiB
C
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
Licensed under the MIT License.
|
|
|
|
Module Name:
|
|
|
|
asmmacro.h
|
|
|
|
Abstract:
|
|
|
|
This module implements common macros for the assembly modules.
|
|
|
|
--*/
|
|
|
|
/*++
|
|
|
|
Macro Description:
|
|
|
|
This macro emits the assembler directives to annotate a new function.
|
|
|
|
Arguments:
|
|
|
|
FunctionName - Supplies the name of the function.
|
|
|
|
--*/
|
|
|
|
.macro FUNCTION_ENTRY FunctionName
|
|
|
|
.p2align 2
|
|
#if defined(__APPLE__)
|
|
.globl _\FunctionName\()
|
|
_\FunctionName\():
|
|
#else
|
|
.globl \FunctionName\()
|
|
.type \FunctionName\(),%function
|
|
\FunctionName\():
|
|
#endif
|
|
|
|
.endm
|
|
|
|
/*++
|
|
|
|
Macro Description:
|
|
|
|
This macro conditionally emits the statement if Count is greater than or
|
|
equal to Value.
|
|
|
|
Arguments:
|
|
|
|
Count - Supplies the variable used in the comparison.
|
|
|
|
Value - Supplies the static used in the comparison.
|
|
|
|
Statement - Supplies the statement to conditionally emit.
|
|
|
|
--*/
|
|
|
|
.macro EmitIfCountGE Count1, Value1, Statement
|
|
|
|
.if (\Count1\() >= \Value1\())
|
|
\Statement\()
|
|
.endif
|
|
|
|
.endm
|
|
|
|
/*++
|
|
|
|
Macro Description:
|
|
|
|
This macro conditionally emits the statement if Count1 is greater than or
|
|
equal to Value1 and Count2 is greater than or equal to Value2.
|
|
|
|
Arguments:
|
|
|
|
Count1 - Supplies the variable used in the comparison.
|
|
|
|
Value1 - Supplies the static used in the comparison.
|
|
|
|
Count2 - Supplies the variable used in the comparison.
|
|
|
|
Value2 - Supplies the static used in the comparison.
|
|
|
|
Statement - Supplies the statement to conditionally emit.
|
|
|
|
--*/
|
|
|
|
.macro EmitIfCount2GE Count1, Value1, Count2, Value2, Statement
|
|
|
|
.if (\Count1\() >= \Value1\()) && (\Count2\() >= \Value2\())
|
|
\Statement\()
|
|
.endif
|
|
|
|
.endm
|