This is really kevinb's work, with some minor tweaks. I've tested this on over 50 multilib combinations and it looks goood. 2004-05-26 Kevin Buettner: * dwarf2-frame.c (execute_cfa_program): Fix typo in which the alignment was being added to the offset instead of multiplied. * dwarf2-frame.c (struct comp_unit): Add new field ``signed_addr_p''. (encoding_for_size): Add new parameter ``signed_addr_p''. Adjust all callers. Add code for handling signed encodings. (dwarf2_build_frame_info): Initialize ``unit.signed_addr_p''. * dwarf2-frame.c (dwarf2_build_frame_info): Set unit.addr_size. * config/mips/tm-mips.h (SP_REGNUM): Delete define. * mips-tdep.h (MIPS_SP_REGNUM): Define. * mips-tdep.c (mips_gdbarch_init): Set SP_REGNUM via call to set_gdbarch_sp_regnum(). Use cooked register number. (SP_REGNUM): Replace all occurrences with MIPS_SP_REGNUM. * mips-tdep.c (mips_gdbarch_init): Set PC_REGNUM (via call to set_gdbarch_pc_regnum()) to cooked register number. * mips-tdep.c (dwarf2-frame.h): Include. (mips_gdbarch_init): Enable DWARF2 CFI support. -- Martin M. Hunt Red Hat Inc.