[PATCH 1/5] asm-common-amd64: add missing CFI directives for large memory model code

Jussi Kivilinna jussi.kivilinna at iki.fi
Sun Jul 28 18:50:56 CEST 2024


* cipher/asm-common-amd64.h [__code_model_large__]
(GET_EXTERN_POINTER): Add CFI_PUSH/CFI_POP directives.
--

Signed-off-by: Jussi Kivilinna <jussi.kivilinna at iki.fi>
---
 cipher/asm-common-amd64.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/cipher/asm-common-amd64.h b/cipher/asm-common-amd64.h
index 870fef9a..3fa065e8 100644
--- a/cipher/asm-common-amd64.h
+++ b/cipher/asm-common-amd64.h
@@ -59,14 +59,18 @@
 #  ifdef __code_model_large__
 #    define GET_EXTERN_POINTER(name, reg) \
 	       pushq %r15; \
+	       CFI_PUSH(%r15); \
 	       pushq %r14; \
+	       CFI_PUSH(%r14); \
 	    1: leaq 1b(%rip), reg; \
 	       movabsq $_GLOBAL_OFFSET_TABLE_-1b, %r14; \
 	       movabsq $name at GOT, %r15; \
 	       addq %r14, reg; \
 	       popq %r14; \
+	       CFI_POP(%r14); \
 	       movq (reg, %r15), reg; \
-	       popq %r15;
+	       popq %r15; \
+	       CFI_POP(%r15);
 #  else
 #    define GET_EXTERN_POINTER(name, reg) movq name at GOTPCREL(%rip), reg
 #  endif
-- 
2.43.0




More information about the Gcrypt-devel mailing list