This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

Re: patch: dwarf handling of values spanning > 1 register


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


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