12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- --- a/sysdeps/arc/atomic-machine.h
- +++ b/sysdeps/arc/atomic-machine.h
- @@ -64,6 +64,10 @@ typedef uintmax_t uatomic_max_t;
- __atomic_val_bysize (__arch_compare_and_exchange_val, int, \
- mem, new, old, __ATOMIC_ACQUIRE)
-
- +#ifdef __ARC700__
- +#define atomic_full_barrier() ({ asm volatile ("sync":::"memory"); })
- +#else
- #define atomic_full_barrier() ({ asm volatile ("dmb 3":::"memory"); })
- +#endif
-
- #endif /* _ARC_BITS_ATOMIC_H */
- --- a/sysdeps/unix/sysv/linux/arc/syscall.S
- +++ b/sysdeps/unix/sysv/linux/arc/syscall.S
- @@ -24,8 +24,13 @@ ENTRY (syscall)
- mov_s r1, r2
- mov_s r2, r3
- mov_s r3, r4
- +#ifdef __ARC700__
- + mov r4, r5
- + mov r5, r6
- +#else
- mov_s r4, r5
- mov_s r5, r6
- +#endif
-
- ARC_TRAP_INSN
- brhi r0, -4096, L (call_syscall_err)
- --- a/sysdeps/unix/sysv/linux/arc/sysdep.h
- +++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
- @@ -128,7 +128,11 @@ L (call_syscall_err): ASM_LINE_SEP \
- mov r8, __NR_##syscall_name ASM_LINE_SEP \
- ARC_TRAP_INSN ASM_LINE_SEP
-
- +# ifdef __ARC700__
- +# define ARC_TRAP_INSN trap0
- +# else
- # define ARC_TRAP_INSN trap_s 0
- +# endif
-
- #else /* !__ASSEMBLER__ */
-
- @@ -139,7 +143,11 @@ extern long int __syscall_error (long in
- hidden_proto (__syscall_error)
- # endif
-
- +# ifdef __ARC700__
- +# define ARC_TRAP_INSN "trap0 \n\t"
- +# else
- # define ARC_TRAP_INSN "trap_s 0 \n\t"
- +#endif
-
- # undef INTERNAL_SYSCALL_NCS
- # define INTERNAL_SYSCALL_NCS(number, nr_args, args...) \
|