summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arc/bits
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/arc/bits')
-rw-r--r--libc/sysdeps/linux/arc/bits/syscalls.h10
-rwxr-xr-xlibc/sysdeps/linux/arc/bits/uClibc_arch_features.h7
2 files changed, 16 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/arc/bits/syscalls.h b/libc/sysdeps/linux/arc/bits/syscalls.h
index 5da6aadb3..248ef7844 100644
--- a/libc/sysdeps/linux/arc/bits/syscalls.h
+++ b/libc/sysdeps/linux/arc/bits/syscalls.h
@@ -98,7 +98,11 @@ extern int __syscall_error (int);
* for syscall itself.
*-------------------------------------------------------------------------*/
-#define ARC_TRAP_INSN "trap0 \n\t"
+#ifdef __A7__
+#define ARC_TRAP_INSN "trap0 \n\t"
+#elif defined(__HS__)
+#define ARC_TRAP_INSN "trap_s 0 \n\t"
+#endif
#define INTERNAL_SYSCALL_NCS(nm, err, nr_args, args...) \
({ \
@@ -176,7 +180,11 @@ extern int __syscall_error (int);
#else
+#ifdef __A7__
#define ARC_TRAP_INSN trap0
+#elif defined(__HS__)
+#define ARC_TRAP_INSN trap_s 0
+#endif
#endif /* __ASSEMBLER__ */
diff --git a/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h b/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h
index 8af6eca4c..451575586 100755
--- a/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h
+++ b/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h
@@ -47,4 +47,11 @@
/* The default ';' is a comment on ARC. */
#define __UCLIBC_ASM_LINE_SEP__ `
+/* does your target align 64bit values in register pairs ? (32bit arches only) */
+#if defined(__A7__)
+#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
+#else
+#define __UCLIBC_SYSCALL_ALIGN_64BIT__
+#endif
+
#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */