diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2000-10-06 18:12:07 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2000-10-06 18:12:07 +0000 |
commit | 827bdee40df26e3b67824885c60a775d4c3dbe41 (patch) | |
tree | 44d61370ec4c98691b11054450c1d69765d6d4fa | |
parent | c70eaeafa005e95e565806c8c9b30e54c8e8642f (diff) | |
download | gcc-827bdee40df26e3b67824885c60a775d4c3dbe41.zip gcc-827bdee40df26e3b67824885c60a775d4c3dbe41.tar.gz gcc-827bdee40df26e3b67824885c60a775d4c3dbe41.tar.bz2 |
sh.md (call, call_value): Use `TARGET_SH2' instead of `! TARGET_SH1'.
* config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
`! TARGET_SH1'. Reindent.
From-SVN: r36759
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 70 |
2 files changed, 42 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c98f4d9..ce617b3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-10-06 Alexandre Oliva <aoliva@redhat.com> + + * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of + `! TARGET_SH1'. Reindent. + 2000-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * builtins.c (is_valid_printf_arglist, expand_builtin_printf): diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 70510bd..2598356 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -3331,22 +3331,24 @@ (clobber (reg:SI 17))])] "" " -if (flag_pic && ! TARGET_SH1 && ! flag_unroll_loops - && GET_CODE (operands[0]) == MEM - && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF) - { - rtx reg = gen_reg_rtx (SImode), lab = gen_label_rtx (); - - if (SYMBOL_REF_FLAG (XEXP (operands[0], 0))) - emit_insn (gen_sym_label2reg (reg, XEXP (operands[0], 0), lab)); - else - emit_insn (gen_symPLT_label2reg (reg, XEXP (operands[0], 0), lab)); - operands[0] = reg; - emit_call_insn (gen_calli_pcrel (operands[0], operands[1], lab)); - DONE; - } -else - operands[0] = force_reg (SImode, XEXP (operands[0], 0));") +{ + if (flag_pic && TARGET_SH2 && ! flag_unroll_loops + && GET_CODE (operands[0]) == MEM + && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF) + { + rtx reg = gen_reg_rtx (SImode), lab = gen_label_rtx (); + + if (SYMBOL_REF_FLAG (XEXP (operands[0], 0))) + emit_insn (gen_sym_label2reg (reg, XEXP (operands[0], 0), lab)); + else + emit_insn (gen_symPLT_label2reg (reg, XEXP (operands[0], 0), lab)); + operands[0] = reg; + emit_call_insn (gen_calli_pcrel (operands[0], operands[1], lab)); + DONE; + } + else + operands[0] = force_reg (SImode, XEXP (operands[0], 0)); +}") (define_expand "call_value" [(parallel [(set (match_operand 0 "arith_reg_operand" "") @@ -3356,23 +3358,25 @@ else (clobber (reg:SI 17))])] "" " -if (flag_pic && ! TARGET_SH1 && ! flag_unroll_loops - && GET_CODE (operands[1]) == MEM - && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF) - { - rtx reg = gen_reg_rtx (SImode), lab = gen_label_rtx (); - - if (SYMBOL_REF_FLAG (XEXP (operands[1], 0))) - emit_insn (gen_sym_label2reg (reg, XEXP (operands[1], 0), lab)); - else - emit_insn (gen_symPLT_label2reg (reg, XEXP (operands[1], 0), lab)); - operands[1] = reg; - emit_call_insn (gen_call_valuei_pcrel (operands[0], operands[1], - operands[2], lab)); - DONE; - } -else - operands[1] = force_reg (SImode, XEXP (operands[1], 0));") +{ + if (flag_pic && TARGET_SH2 && ! flag_unroll_loops + && GET_CODE (operands[1]) == MEM + && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF) + { + rtx reg = gen_reg_rtx (SImode), lab = gen_label_rtx (); + + if (SYMBOL_REF_FLAG (XEXP (operands[1], 0))) + emit_insn (gen_sym_label2reg (reg, XEXP (operands[1], 0), lab)); + else + emit_insn (gen_symPLT_label2reg (reg, XEXP (operands[1], 0), lab)); + operands[1] = reg; + emit_call_insn (gen_call_valuei_pcrel (operands[0], operands[1], + operands[2], lab)); + DONE; + } + else + operands[1] = force_reg (SImode, XEXP (operands[1], 0)); +}") (define_insn "indirect_jump" [(set (pc) |