This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch: dwarf handling of values spanning > 1 register
- From: Zack Weinberg <zack at codesourcery dot com>
- To: Aldy Hernandez <aldy at andrews dot edu>
- Cc: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org, Andrew Cagney <ac131313 at redhat dot com>, Anthony Green <green at redhat dot com>
- Date: Wed, 05 Mar 2003 12:04:43 -0800
- Subject: Re: patch: dwarf handling of values spanning > 1 register
- References: <74898756-4F40-11D7-9DB4-000393750C1E@andrews.edu>
Aldy Hernandez <aldy at andrews dot edu> writes:
>> [Oh yeah rth, based on what we talked, there are more changes to
>> come for brain-dead architectures that need non-contiguous
>> registers].
>
> Well this was coming up sooner or later, might as well do the whole
> thing now and get it over with ;-).
>
> Same thing, but handling non contiguous registers for those
> "interesting" architectures.
The concept is fine, but I do not like the idea of generating a
PARALLEL containing a bunch of REGs just to pass the relevant REGNOs
back to the caller.
Is there any reason to believe that the size of the vector returned by
your dwarf_register_span hook will ever be different from the 'nregs'
value calculated in multiple_reg_loc_descriptor? If not, then have
multiple_reg_loc_descriptor pass nregs, and a pointer to an array of
unsigned ints of size nregs, to the register_span hook; register_span
shall then fill in the array with register numbers and return void.
Also, have the default register_span hook fill in the array with
consecutive register numbers, and document that any override must
always fill in the array. Then you do not need two separate cases in
multiple_reg_loc_descriptor.
zw