#ifndef __ASM_INC__\r
#define __ASM_INC__\r
\r
+/* Common definitions for FPO macro\r
+ see http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */\r
+#define FRAME_FPO 0\r
+#define FRAME_TRAP 1\r
+#define FRAME_TSS 2\r
+#define FRAME_NONFPO 3\r
+\r
#ifdef _USE_ML\r
\r
/* Allow ".name" identifiers */\r
__absolute__address__ = __absolute__address__ + size\r
ENDM\r
\r
-\r
/* We need this to distinguish repeat from macros */\r
#define ENDR ENDM\r
\r
#define LF 10\r
#define NUL 0\r
\r
+/* For compatibility with GAS */\r
+#define CFI_STARTPROC\r
+#define CFI_ENDPROC\r
+#define CFI_ADJUST_CFA_OFFSET\r
+#define CFI_OFFSET\r
+#define CFI_REGISTER\r
+#define CFI_DEF_CFA_REGISTER\r
+#define CFI_DEF_CFA\r
+#define CFI_REL_OFFSET\r
+#define CFI_SAME_VALUE\r
+#define CFI_DEF_CFA_OFFSET\r
+\r
#else /***********************************************************************/\r
\r
/* Force intel syntax */\r
.macro .PROC name\r
.func \name\r
#ifdef _X86_\r
- /* x86 gas expects a label with _ prefix */\r
+ /* x86 GAS expects a label with _ prefix */\r
_\name:\r
#endif\r
\name:\r
/* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx\r
and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */\r
.macro FPO cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame\r
- /* dummy */\r
+ .if (cbFrame == FRAME_TRAP)\r
+ .cfi_signal_frame\r
+ .endif\r
.endm\r
\r
/* Macros for x64 stack unwind OPs */\r
#define else .else\r
#define elseif .elseif\r
\r
-#define CR "\r"\r
-#define LF "\n"\r
+#define CR "\r"\r
+#define LF "\n"\r
#define NUL "\0"\r
\r
-#endif\r
+/* CFI annotations */\r
+#define CFI_STARTPROC .cfi_startproc\r
+#define CFI_ENDPROC .cfi_endproc\r
+#define CFI_ADJUST_CFA_OFFSET .cfi_adjust_cfa_offset\r
+#define CFI_OFFSET .cfi_offset\r
+#define CFI_REGISTER .cfi_register\r
+#define CFI_DEF_CFA_REGISTER .cfi_def_cfa_register\r
+#define CFI_DEF_CFA .cfi_def_cfa\r
+#define CFI_REL_OFFSET .cfi_rel_offset\r
+#define CFI_SAME_VALUE .cfi_same_value\r
+#define CFI_DEF_CFA_OFFSET .cfi_def_cfa_offset\r
\r
-/* Common definitions for FPO macro\r
- see http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */\r
-#define FRAME_FPO 0\r
-#define FRAME_TRAP 1\r
-#define FRAME_TSS 2\r
-#define FRAME_NONFPO 3\r
+#endif\r
\r
#endif /* __ASM_INC__ */\r