Even if !HAVE_AS_SUPPORT_CALL36, const_call_insn_operand should still
return false when -mexplict-relocs=none -mcmodel=medium to make
loongarch_legitimize_call_address emit la.local or la.global.

gcc/ChangeLog:

        * config/loongarch/predicates.md (const_call_insn_operand):
        Remove buggy "HAVE_AS_SUPPORT_CALL36" conditions.  Change "1" to
        "true" to make the coding style consistent.
---

Not fully regtested, but it should be obvious and it indeed fixes the
func-call-medium-*.c test failures.  Ok for trunk?

 gcc/config/loongarch/predicates.md | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/gcc/config/loongarch/predicates.md 
b/gcc/config/loongarch/predicates.md
index 56f7c48e126..d02e846cb12 100644
--- a/gcc/config/loongarch/predicates.md
+++ b/gcc/config/loongarch/predicates.md
@@ -444,21 +444,19 @@ (define_predicate "const_call_insn_operand"
     case SYMBOL_PCREL:
       if (TARGET_CMODEL_EXTREME
          || (TARGET_CMODEL_MEDIUM
-             && HAVE_AS_SUPPORT_CALL36
              && (la_opt_explicit_relocs == EXPLICIT_RELOCS_NONE)))
        return false;
       else
-       return 1;
+       return true;
 
     case SYMBOL_GOT_DISP:
       if (TARGET_CMODEL_EXTREME
          || !flag_plt
          || (flag_plt && TARGET_CMODEL_MEDIUM
-             && HAVE_AS_SUPPORT_CALL36
              && (la_opt_explicit_relocs == EXPLICIT_RELOCS_NONE)))
        return false;
       else
-       return 1;
+       return true;
 
     default:
       return false;
-- 
2.42.1

Reply via email to