From 9173e7c6cf9fe05b432204bbdededd96c0926f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Fri, 29 Sep 2017 17:31:23 +0000 Subject: [PATCH] [ASM] - Add CFI annotation macros CORE-13850 #resolve svn path=/trunk/; revision=75989 --- reactos/sdk/include/asm/asm.inc | 42 ++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/reactos/sdk/include/asm/asm.inc b/reactos/sdk/include/asm/asm.inc index 04175b8cd74..22b3ba79a3a 100644 --- a/reactos/sdk/include/asm/asm.inc +++ b/reactos/sdk/include/asm/asm.inc @@ -9,6 +9,13 @@ #ifndef __ASM_INC__ #define __ASM_INC__ +/* Common definitions for FPO macro + see http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */ +#define FRAME_FPO 0 +#define FRAME_TRAP 1 +#define FRAME_TSS 2 +#define FRAME_NONFPO 3 + #ifdef _USE_ML /* Allow ".name" identifiers */ @@ -194,6 +201,18 @@ ENDM #define LF 10 #define NUL 0 +/* For compatibility with gas */ +#define CFI_STARTPROC +#define CFI_ENDPROC +#define CFI_ADJUST_CFA_OFFSET +#define CFI_OFFSET +#define CFI_REGISTER +#define CFI_DEF_CFA_REGISTER +#define CFI_DEF_CFA +#define CFI_REL_OFFSET +#define CFI_SAME_VALUE +#define CFI_DEF_CFA_OFFSET + #else /***********************************************************************/ /* Force intel syntax */ @@ -284,7 +303,9 @@ ENDM /* check http://msdn.microsoft.com/en-us/library/9c9k076y%28VS.80%29.aspx and http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */ .macro FPO cdwLocals, cdwParams, cbProlog, cbRegs, fUseBP, cbFrame - /* dummy */ + .if (cbFrame == FRAME_TRAP) + .cfi_signal_frame + .endif .endm /* Macros for x64 stack unwind OPs */ @@ -364,13 +385,18 @@ code = 1 #define LF "\n" #define NUL "\0" +/* CFI annotations */ +#define CFI_STARTPROC .cfi_startproc +#define CFI_ENDPROC .cfi_endproc +#define CFI_ADJUST_CFA_OFFSET .cfi_adjust_cfa_offset +#define CFI_OFFSET .cfi_offset +#define CFI_REGISTER .cfi_register +#define CFI_DEF_CFA_REGISTER .cfi_def_cfa_register +#define CFI_DEF_CFA .cfi_def_cfa +#define CFI_REL_OFFSET .cfi_rel_offset +#define CFI_SAME_VALUE .cfi_same_value +#define CFI_DEF_CFA_OFFSET .cfi_def_cfa_offset + #endif -/* Common definitions for FPO macro - see http://msdn.microsoft.com/en-us/library/ms679352%28VS.85%29.aspx */ -#define FRAME_FPO 0 -#define FRAME_TRAP 1 -#define FRAME_TSS 2 -#define FRAME_NONFPO 3 - #endif /* __ASM_INC__ */