Hello, The attached patch, moves the frame's type into `struct frame_unwind' and in doing so makes it possible to combine the sequence: prev->type = frame_type_from_pc() prev->unwind = frame_unwind_find_by_pc() into a single: prev->unwind = frame_unwind_find_by_pc(); // prev->type == prev->unwind->type; and hence eliminate the the call to frame_type_from_pc(). Fine print: While the above is true for new code, old code continues to use the same confused combination of frame_type_from_pc(), frame_unwind_find_by_pc(), deprecated_set_frame_type(), and legacy_get_prev_frame(). A legacy frame's type is initialized to UNKNOWN_FRAME, and then zero or more of those functions will override it. get_frame_type() mapping an UNKNOWN_FRAME onto a NORMAL_FRAME. Importantly, if a legacy frame's unwinder returns a known frame type (!UNKNOWN_FRAME) then that will be used in preference to any other value. This should make it possible for old architectures to incrementally implement new unwinders. Tested on d10v, ppc, and i386. I'll commit in a few days, Andrew