This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
embedded target:

enum arc700_linux_regnums
    /* 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)

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]