MIPS: fix build from IR files, nan2008 and FpAbi
authorYunQiang Su <wzssyqa@gmail.com>
Thu, 15 Dec 2022 09:04:36 +0000 (09:04 +0000)
committerFangrui Song <i@maskray.me>
Thu, 15 Dec 2022 09:04:36 +0000 (09:04 +0000)
commit9739bb81aed490bfcbcbbac6970da8fb7232fd34
tree3b4f0384d676f8ab17fb3971538186e257b8092d
parent92619956eb27ef08dd24045307593fc3d7f78db0
MIPS: fix build from IR files, nan2008 and FpAbi

When we use llc or lld to compiler IR files, the features +nan2008 and +fpxx/+fp64 are not used.
Thus wrong format files are produced.

In IR files, the attributes are only set for function while not the whole compile units.
So we output `.nan 2008` and `.module fp=xx/64` before every function.

`isFPXXDefault`: for o32, the FPXX should always be the default, no matter about the vendors.
Of course some distributions with FP64 default enabled should be listed explicit.
Let's add them in future if we know about one.

Reviewed By: MaskRay

Differential Revision: https://reviews.llvm.org/D138179
clang/lib/Driver/ToolChains/Arch/Mips.cpp
clang/test/Driver/mips-as.c
clang/test/Driver/mips-integrated-as.s
llvm/lib/Target/Mips/MipsAsmPrinter.cpp
llvm/test/CodeGen/Mips/abiflags-2008-fp64.ll [new file with mode: 0644]