This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, committed] SH: Fix PR58314 (unsatisfied constraints)
- From: Christian Bruel <christian dot bruel at st dot com>
- To: Richard Sandiford <rdsandiford at googlemail dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 18 Sep 2013 09:55:14 +0200
- Subject: Re: [PATCH, committed] SH: Fix PR58314 (unsatisfied constraints)
- Authentication-results: sourceware.org; auth=none
- References: <5231C3AB dot 3040401 at st dot com> <20130913 dot 080155 dot 487158670 dot kkojima at rr dot iij4u dot or dot jp> <5232D014 dot 8050801 at st dot com> <87bo3sk80m dot fsf at talisman dot default>
Hi Richard,
On 09/16/2013 07:10 PM, Richard Sandiford wrote:
> Hi Christian,
>
> Christian Bruel <christian.bruel@st.com> writes:
>> @@ -6893,11 +6894,14 @@ label:
>> ;; reloading MAC subregs otherwise. For that probably special patterns
>> ;; would be required.
>> (define_insn "*mov<mode>_reg_reg"
>> - [(set (match_operand:QIHI 0 "arith_reg_dest" "=r")
>> - (match_operand:QIHI 1 "register_operand" "r"))]
>> + [(set (match_operand:QIHI 0 "arith_reg_dest" "=r,m,*z")
>> + (match_operand:QIHI 1 "register_operand" "r,*z,m"))]
> If the constraints allow "m", the predicates need to accept memories too.
> (It'd be worth having an insn condition that rejects both operands
> being memories though.)
>
> Thanks,
> Richard
Thanks for your comment,
I was wondering this too when doing the fix. I felt that a memory
operand would be matched by the *movhi" patterns bellow. As I wanted
to fix only the spilling case, so the original operand is a pseudo reg
having matched the register predicate.
Without the predicate memory not found, I wonder how I never hit a kind
of "insn not found" error, well, 'll give a try to adding a memory
condition in the predicate, but I fear that the movhi patterns will stop
to match,
Cheers
Christian