From: Nick Clifton Date: Mon, 26 Nov 2007 12:34:29 +0000 (+0000) Subject: mn10300.md: (call_internal): Remove mode on operand 0 in order to match UNPSEC'ed... X-Git-Tag: releases/gcc-4.3.0~1326 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f6284d979e752b69dfdce8f07318f08489d3a6c4;p=thirdparty%2Fgcc.git mn10300.md: (call_internal): Remove mode on operand 0 in order to match UNPSEC'ed calls... * config/mn10300/mn10300.md: (call_internal): Remove mode on operand 0 in order to match UNPSEC'ed calls generated in PIC mode. (call_value_internal): Remove mode on operands 0 and 1 in order to match UNPSEC'ed calls generated in PIC mode. (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between two insns. From-SVN: r130437 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 76daadca1158..474e34c21421 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-11-26 Nick Clifton + + * config/mn10300/mn10300.md: (call_internal): Remove mode on + operand 0 in order to match UNPSEC'ed calls generated in PIC mode. + (call_value_internal): Remove mode on operands 0 and 1 in order to + match UNPSEC'ed calls generated in PIC mode. + (GOTaddr2picreg): Use copy_rtx to prevent sharing an rtx between + two insns. + 2007-11-26 Richard Guenther PR middle-end/34233 diff --git a/gcc/config/mn10300/mn10300.md b/gcc/config/mn10300/mn10300.md index 6d686743bc28..c9540b8e9feb 100644 --- a/gcc/config/mn10300/mn10300.md +++ b/gcc/config/mn10300/mn10300.md @@ -1819,8 +1819,10 @@ DONE; }") +;; NB: Mode on match_operand 0 deliberately omitted in +;; order to be able to match UNSPECs in PIC mode. (define_insn "call_internal" - [(call (mem:QI (match_operand:SI 0 "call_address_operand" "aS")) + [(call (mem:QI (match_operand 0 "call_address_operand" "aS")) (match_operand:SI 1 "general_operand" "g"))] "" "* @@ -1864,10 +1866,12 @@ DONE; }") +;; NB: Mode on match_operands 0 and 1 deliberately omitted +;; in order to be able to match UNSPECs in PIC mode. (define_insn "call_value_internal" - [(set (match_operand 0 "" "=dax") - (call (mem:QI (match_operand:SI 1 "call_address_operand" "aS")) - (match_operand:SI 2 "general_operand" "g")))] + [(set (match_operand 0 "register_operand" "=dax") + (call (mem:QI (match_operand 1 "call_address_operand" "aS")) + (match_operand:SI 2 "general_operand" "g")))] "" "* { @@ -2560,7 +2564,7 @@ emit_insn (gen_am33_loadPC (operands[0])); else emit_insn (gen_mn10300_loadPC (operands[0])); - emit_insn (gen_add_GOT_to_pic_reg (operands[0])); + emit_insn (gen_add_GOT_to_pic_reg (copy_rtx (operands[0]))); DONE; } ")