[Clang][LoongArch] Support inline asm constraint 'J'
authorWeining Lu <luweining@loongson.cn>
Mon, 31 Oct 2022 00:46:58 +0000 (08:46 +0800)
committerWeining Lu <luweining@loongson.cn>
Mon, 31 Oct 2022 01:13:52 +0000 (09:13 +0800)
commitcd0174aacb734904205ed7827fb923acda08f79a
treeb12a22d39cc806c1aa83b3db250b28ccc59f9782
parentbd28a0a51181ad33dc9030fb887d26cd6b238c1f
[Clang][LoongArch] Support inline asm constraint 'J'

'J' is defined in GCC [1] but not documented [2] while Linux [3] has
already used it in LoongArch port.

[1]: https://github.com/gcc-mirror/gcc/blob/master/gcc/config/loongarch/constraints.md#L61
[2]: https://gcc.gnu.org/onlinedocs/gccint/Machine-Constraints.html
[3]: https://github.com/torvalds/linux/blob/master/arch/loongarch/include/asm/cmpxchg.h#L19

Differential Revision: https://reviews.llvm.org/D136835
clang/lib/Basic/Targets/LoongArch.cpp
clang/test/CodeGen/LoongArch/inline-asm-constraints.c
llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
llvm/test/CodeGen/LoongArch/inline-asm-constraint-error.ll
llvm/test/CodeGen/LoongArch/inline-asm-constraint.ll