summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sparc/sysdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sparc/sysdep.h')
-rw-r--r--sysdeps/unix/sparc/sysdep.h32
1 files changed, 21 insertions, 11 deletions
diff --git a/sysdeps/unix/sparc/sysdep.h b/sysdeps/unix/sparc/sysdep.h
index fe74a91809..576813a52c 100644
--- a/sysdeps/unix/sparc/sysdep.h
+++ b/sysdeps/unix/sparc/sysdep.h
@@ -27,19 +27,29 @@
#define syscall_error C_SYMBOL_NAME(__syscall_error)
#endif
-#define ENTRY(name) \
- .global C_SYMBOL_NAME(name); \
- .align 2; \
+#ifdef HAVE_ELF
+#define ENTRY(name) \
+ .global C_SYMBOL_NAME(name); \
+ .type name,@function; \
+ .align 4; \
C_LABEL(name)
-#define PSEUDO(name, syscall_name, args) \
- .global syscall_error; \
- ENTRY (name) \
- mov SYS_ify(syscall_name), %g1; \
- ta 0; \
- bcc 1f; \
- sethi %hi(syscall_error), %g1; \
- jmp %g1 + %lo(syscall_error); nop; \
+#else
+#define ENTRY(name) \
+ .global C_SYMBOL_NAME(name); \
+ .align 4; \
+ C_LABEL(name)
+
+#endif /* HAVE_ELF */
+
+#define PSEUDO(name, syscall_name, args) \
+ .global syscall_error; \
+ ENTRY (name) \
+ mov SYS_ify(syscall_name), %g1; \
+ ta 0; \
+ bcc 1f; \
+ sethi %hi(syscall_error), %g1; \
+ jmp %g1 + %lo(syscall_error); nop; \
1:
#define ret retl; nop