[ASM]: Code formatting only.
[reactos.git] / reactos / sdk / include / asm / asm.inc
index 04175b8..ac515f5 100644 (file)
@@ -9,6 +9,13 @@
 #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
@@ -186,7 +193,6 @@ resb MACRO name, size
     __absolute__address__ = __absolute__address__ + size\r
 ENDM\r
 \r
-\r
 /* We need this to distinguish repeat from macros */\r
 #define ENDR ENDM\r
 \r
@@ -194,6 +200,18 @@ ENDM
 #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
@@ -218,7 +236,7 @@ ENDM
 .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
@@ -284,7 +302,9 @@ ENDM
 /* 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
@@ -360,17 +380,22 @@ code = 1
 #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