This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: VAX Ultrix bootstrap with gcc-2.96 20000519: genrecog failure
- To: dave at hiauly1 dot hia dot nrc dot ca (John David Anglin)
- Subject: Re: VAX Ultrix bootstrap with gcc-2.96 20000519: genrecog failure
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Sat, 27 May 2000 17:38:48 -0400 (EDT)
- Cc: zack at wolery dot cumb dot org, rth at cygnus dot com, gcc-bugs at gcc dot gnu dot org
> The problem is due to the code generated for the return of the struct head
> in make_insn_sequence:
>
> L740:
> .stabd 68,0,2434
> movq -12(fp),LF126
> .stabd 68,0,2435
> LBE47:
> ret
>
> Under VAX Ultrix, PCC_STATIC_STRUCT_RETURN is defined. Thus, the callee
> should have returned the address of LF126 in r0.
In looking at function.c (expand_function_end), I can't see how struct
returns every worked in this situation:
a) 8 byte (non scalar) struct returned in memory,
b) PCC_STATIC_STRUCT_RETURN.
The rtx current_function_return_rtx has code = MEM. diddle_return_value
examines it. However, it doesn't handle rtx values with code MEM.
It is not clear to me that current_function_return_rtx is correct
for this situation.
The movq is generated by line 6673 of function.c. However, doesn't
something need to be done to get it into current_function_return_rtx?
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)