diff options
author | Lulu Cheng <chenglulu@loongson.cn> | 2023-11-16 15:06:11 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2023-11-18 16:14:33 +0800 |
commit | 094cca429399680cb1c8f4e65041350da71d6937 (patch) | |
tree | e8c7d612371e067615d2c680091c537e0245be51 /gcc/coverage.cc | |
parent | 841008d3966c0fe7a80ec10703a50fbdab7620ac (diff) | |
download | gcc-094cca429399680cb1c8f4e65041350da71d6937.zip gcc-094cca429399680cb1c8f4e65041350da71d6937.tar.gz gcc-094cca429399680cb1c8f4e65041350da71d6937.tar.bz2 |
LoongArch: Add code generation support for call36 function calls.
When compiling with '-mcmodel=medium', the function call is made through
'pcaddu18i+jirl' if binutils supports call36, otherwise the
native implementation 'pcalau12i+jirl' is used.
gcc/ChangeLog:
* config.in: Regenerate.
* config/loongarch/loongarch-opts.h (HAVE_AS_SUPPORT_CALL36): Define macro.
* config/loongarch/loongarch.cc (loongarch_legitimize_call_address):
If binutils supports call36, the function call is not split over expand.
* config/loongarch/loongarch.md: Add call36 generation code.
* config/loongarch/predicates.md: Likewise.
* configure: Regenerate.
* configure.ac: Check whether binutils supports call36.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/func-call-medium-5.c: If the assembler supports call36,
the test is abandoned.
* gcc.target/loongarch/func-call-medium-6.c: Likewise.
* gcc.target/loongarch/func-call-medium-7.c: Likewise.
* gcc.target/loongarch/func-call-medium-8.c: Likewise.
* lib/target-supports.exp: Added a function to see if the assembler supports
the call36 relocation.
* gcc.target/loongarch/func-call-medium-call36-1.c: New test.
* gcc.target/loongarch/func-call-medium-call36.c: New test.
Co-authored-by: Xi Ruoyao <xry111@xry111.site>
Diffstat (limited to 'gcc/coverage.cc')
0 files changed, 0 insertions, 0 deletions