aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ia64/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ia64/sysdep.h')
-rw-r--r--sysdeps/ia64/sysdep.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/sysdeps/ia64/sysdep.h b/sysdeps/ia64/sysdep.h
index aab440d..489cd07 100644
--- a/sysdeps/ia64/sysdep.h
+++ b/sysdeps/ia64/sysdep.h
@@ -21,6 +21,28 @@
#ifdef __ASSEMBLER__
+/* Macros to help writing .prologue directives in assembly code. */
+#define ASM_UNW_PRLG_RP 0x8
+#define ASM_UNW_PRLG_PFS 0x4
+#define ASM_UNW_PRLG_PSP 0x2
+#define ASM_UNW_PRLG_PR 0x1
+#define ASM_UNW_PRLG_GRSAVE(ninputs) (32+(ninputs))
+
+#define ENTRY(name) \
+ .text; \
+ .align 32; \
+ .proc C_SYMBOL_NAME(name); \
+ .global C_SYMBOL_NAME(name); \
+ C_LABEL(name) \
+ CALL_MCOUNT
+
+#define LOCAL_ENTRY(name) \
+ .text; \
+ .align 32; \
+ .proc C_SYMBOL_NAME(name); \
+ C_LABEL(name) \
+ CALL_MCOUNT
+
#define LEAF(name) \
.text; \
.align 32; \
@@ -28,6 +50,12 @@
.global name; \
C_LABEL(name)
+#define LOCAL_LEAF(name) \
+ .text; \
+ .align 32; \
+ .proc C_SYMBOL_NAME(name); \
+ C_LABEL(name)
+
/* Mark the end of function SYM. */
#undef END
#define END(sym) .endp C_SYMBOL_NAME(sym)