aboutsummaryrefslogtreecommitdiff
path: root/arch/sh/pthread_arch.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-07-18remove utterly wrong includes from mips64/n32 bits/stat.hRich Felker2-6/+0
these were overlooked during review. bits headers are not allowed to pull in additional headers (note: that rule is currently broken in other places but just for endian.h). string.h has no place here anyway, and including bits/alltypes.h without defining macros to request types from it is a nop.
2019-07-17use register constraint instead of memory operand for riscv64 atomicsRich Felker1-8/+8
the "A" constraint is simply for an address expression that's a single register, but it's not yet supported by clang, and has no advantage here over just using a register operand for the address. the latter is actually preferable in the a_cas_p case because it avoids aliasing an lvalue onto the memory.
2019-07-17fix riscv64 atomic asm constraintsRich Felker1-6/+10
most egregious problem was the lack of memory clobber and lack of volatile asm; this made the atomics memory barriers but not compiler barriers. use of "+r" rather than "=r" for a clobbered temp was also wrong, since the initial value is indeterminate.
2019-07-17fix riscv64 syscall asm constraintRich Felker1-1/+1
having "+r"(a0) is redundant with "0"(a0) in syscalls with at least 1 arg, which is arguably a constraint violation (clang treats it as such), and an invalid input with indeterminate value in the 0-arg case. use the "=r"(a0) form instead.