[Clang][LoongArch] Define more LoongArch specific built-in macros
authorWeining Lu <luweining@loongson.cn>
Thu, 27 Oct 2022 12:31:05 +0000 (20:31 +0800)
committergonglingqin <gonglingqin@loongson.cn>
Thu, 10 Nov 2022 09:27:29 +0000 (17:27 +0800)
commit60e5cfe2a4eba3bf0a642aeeb53a3f37dfed5fdb
treec39f38c96d58e680addef2efe4748ea1d4c6bd84
parent135a9272a4c99b7f960086d0bf9d7e7da4c0396d
[Clang][LoongArch] Define more LoongArch specific built-in macros

Define below macros according to LoongArch toolchain conventions [1].

* `__loongarch_grlen`
* `__loongarch_frlen`
* `__loongarch_lp64`
* `__loongarch_hard_float`
* `__loongarch_soft_float`
* `__loongarch_single_float`
* `__loongarch_double_float`

Note:
1. `__loongarch__` has been defined in earlier patch.
2. `__loongarch_arch` is not defined because I don't know how `TargetInfo` can get the arch name specified by `-march`.
3. `__loongarch_tune` will be defined in future.

[1]: https://loongson.github.io/LoongArch-Documentation/LoongArch-toolchain-conventions-EN.html

Depends on D136146

Differential Revision: https://reviews.llvm.org/D136413
clang/lib/Basic/Targets/LoongArch.cpp
clang/lib/Basic/Targets/LoongArch.h
clang/test/Preprocessor/init-loongarch.c