This is the mail archive of the
mailing list for the GCC project.
Re: [patch,mips] avoid invalid register for JALR
- From: Sandra Loosemore <sandra at codesourcery dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, <rdsandiford at googlemail dot com>
- Date: Tue, 13 May 2014 17:55:42 -0600
- Subject: Re: [patch,mips] avoid invalid register for JALR
- Authentication-results: sourceware.org; auth=none
- References: <53727BC3 dot 3060600 at codesourcery dot com> <87mwelcq5f dot fsf at talisman dot default>
On 05/13/2014 03:41 PM, Richard Sandiford wrote:
Sandra Loosemore <email@example.com> writes:
When I was trying to benchmark another patch (which I'll be sending
along shortly) with CSiBE for -mabi=64, I ran into an assembler error
/tmp/ccJv2faG.s: Assembler messages:
/tmp/ccJv2faG.s:1605: Error: a destination register must be supplied
JALR patterns should have an explicit clobber of $31, which I thought
was also supposed to stop $31 from being used as the call address.
Hmmmmm. Yes, that ought to work, in theory....
Do you have a testcase?
I can reproduce the error in a current mipsisa64-elfoabi build, with my
patch to delete ADJUST_REG_ALLOC_ORDER applied. It triggers on this
file from CSiBE:
mipsisa64-elfoabi-gcc -c -mabi=64 -O2 -fno-common -w
I had some difficulty in regression-testing this patch because of
unrelated problems on trunk in the past week -- at first I was getting
ICEs due to a null pointer dereference in tree code, then when I tried
again a couple days later trunk was not even building.
Could you give more details?
I think both of these problems have been fixed now, or at least I can
build things again. The tree null pointer dereference was probably the
same thing you discussed here
and the build failures seemed like this one