Jose Flavio Aguilar Paulino wrote:
Hi People,
Well, finally I finished the libunwind patch for Power64!
First,
- I have to create a new kind of registers VREGS, because PowerPC has
vector registers (Special ones 128bits longs only for special
instructions) and the libunwind has General Use Registers and Flating
Pointer Registers. So I had to create a dummy register array in x86.
Does this involve a change to accessors_t? I.e., it breaks the abi?
If it does, would a more generic get_register (num, char*, len) method
be better? I'm pretty sure that, come the next ISA, we'll be faced with
the same problem :-(
- Second, in some functions I had to add the a void pointer to ARGs,
because I need in some cases to pass special parameters.
If there's going to be abi breakage then, more in keeping with O-O, I
wonder if this arg should just be embedded into unw_addr_space_t
(instead of specifying it as unw_init_remote). It would certainly
simplify the implementation of O-O bindings.
- Third, I had to add new generic file for function pointer translate:
Gget_func_addr.c. This is necessary because functions are called
indirectly in Power. So, as in GDB, I need to create a dummy function
for x86.
- Fourth, I add some Power specific tests
Well, I thinks thats all..
One last thing, I have corrected the libunwind for x86 because its the
only one Arch that I have available besides Power64, so problems will
occur in other Archs, I can work with you to solve them.
Thanks,
Jose Flavio Aguilar Paulino
Ps: Its a big patch, more than 400kb.
cool!
_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel