This is the mail archive of the
mailing list for the GDB project.
Re: How do I replace DEPRECATED_TM_FILE?
> Why are the register numbers different (and which register numbers)?
It's because of the different dwarf mapping.
These are the registers that are different in linux that for the plain
/* Regnums 0..26 are R0..R26 */
ARC_BTA_REGNUM = 27,
ARC_LP_START_REGNUM = 28,
ARC_LP_END_REGNUM = 29,
ARC_LP_COUNT_REGNUM = 30,
ARC_STATUS32_REGNUM = 31,
ARC_BLINK_REGNUM = 32,
ARC_FP_REGNUM = 33,
ARC_SP_REGNUM = 34,
ARC_EFA_REGNUM = 35,
ARC_RET_REGNUM = 36,
ARC_ORIG_R8_REGNUM = 37,
ARC_STOP_PC_REGNUM = 38
#define ARC_NR_REGS 39
/* Pseudo-regs. */
#define ARC_ILINK1_REGNUM (NUM_REGS)
#define ARC_ILINK2_REGNUM (NUM_REGS+1)
#define ARC_ERET_REGNUM (NUM_REGS+2)
#define ARC_STATUS32_L1_REGNUM (NUM_REGS+3)
#define ARC_STATUS32_L2_REGNUM (NUM_REGS+4)
#define ARC_ERSTATUS_REGNUM (NUM_REGS+5)
except for ARC_RET_REGNUM and ARC_ORIG_R8_REGNUM, these registers
exist also for the embedded target, but with different numbers;
the embedded target allos access to numerous extra auxilary registers.
> That determines the answer to your question. If it's the dwarf2
> mapping, for instance, you'd put overrides in an OS/ABI sniffer in the
> Linux tdep file.
> I've done a lot of work lately to isolate GDB's internal register
> numbering from various external numberings. You can probably use the
> same internal registers in most places now.
Another difference is the osabi setting. arc_gdbarch_init also calls
different functions for the different subtargtes to set a number of other