This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: VAX Ultrix bootstrap with gcc-2.96 20000519: genrecog failure


> 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)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]