Hi Andrew
I'm not sure I understand the question.
I agree, and I don't think it will make much difference eitehr way,
however
I was just thinking that it would be a whole lot easier to explain these
functions...
Um, this is still dangling. Can you please express your question using
terminology consistent with the frame unwind code.
Sorry, it was a bit of a ramble :-)
Avr and d10v ports both have function avr/d10v_frame_unwind_cache which
figure out everything about a frame but are internal functions.
The frame-base and frame-unwind APIs provides a machanism to register
functions -
struct frame_base
{
...
frame_this_base_ftype *this_base;
frame_this_locals_ftype *this_locals;
frame_this_args_ftype *this_args;
};
struct frame_unwind
{
...
frame_this_id_ftype *this_id;
frame_prev_register_ftype *prev_register;
};
All five of these functions work on the principle of "given this frame,
figure out xxx information of the caller's frame" and are passed a pointer
to the next_frame (child frame). For example, "given this frame, figure out
where the arguments start of the caller's frame."