arm-protos.h (arm_dbx_register_number): Add prototype.
2005-03-29 Paul Brook <paul@codesourcery.com> * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype. * config/arm/arm.c (arm_dbx_register_number): New function. * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define. From-SVN: r97150
This commit is contained in:
parent
a584cf65fa
commit
2fa330b29a
|
@ -38,6 +38,7 @@ extern HOST_WIDE_INT arm_compute_initial_elimination_offset (unsigned int,
|
|||
unsigned int);
|
||||
extern HOST_WIDE_INT thumb_compute_initial_elimination_offset (unsigned int,
|
||||
unsigned int);
|
||||
extern unsigned int arm_dbx_register_number (unsigned int);
|
||||
|
||||
#ifdef TREE_CODE
|
||||
extern int arm_return_in_memory (tree);
|
||||
|
|
|
@ -14641,3 +14641,30 @@ arm_shift_truncation_mask (enum machine_mode mode)
|
|||
{
|
||||
return mode == SImode ? 255 : 0;
|
||||
}
|
||||
|
||||
|
||||
/* Map internal gcc register numbers to DWARF2 register numbers. */
|
||||
|
||||
unsigned int
|
||||
arm_dbx_register_number (unsigned int regno)
|
||||
{
|
||||
if (regno < 16)
|
||||
return regno;
|
||||
|
||||
/* TODO: Legacy targets output FPA regs as registers 16-23 for backwards
|
||||
compatibility. The EABI defines them as registers 96-103. */
|
||||
if (IS_FPA_REGNUM (regno))
|
||||
return (TARGET_AAPCS_BASED ? 96 : 16) + regno - FIRST_FPA_REGNUM;
|
||||
|
||||
if (IS_VFP_REGNUM (regno))
|
||||
return 64 + regno - FIRST_VFP_REGNUM;
|
||||
|
||||
if (IS_IWMMXT_GR_REGNUM (regno))
|
||||
return 104 + regno - FIRST_IWMMXT_GR_REGNUM;
|
||||
|
||||
if (IS_IWMMXT_REGNUM (regno))
|
||||
return 112 + regno - FIRST_IWMMXT_REGNUM;
|
||||
|
||||
abort ();
|
||||
}
|
||||
|
||||
|
|
|
@ -1032,6 +1032,8 @@ extern const char * structure_size_string;
|
|||
/* ARM floating pointer registers. */
|
||||
#define FIRST_FPA_REGNUM 16
|
||||
#define LAST_FPA_REGNUM 23
|
||||
#define IS_FPA_REGNUM(REGNUM) \
|
||||
(((REGNUM) >= FIRST_FPA_REGNUM) && ((REGNUM) <= LAST_FPA_REGNUM))
|
||||
|
||||
#define FIRST_IWMMXT_GR_REGNUM 43
|
||||
#define LAST_IWMMXT_GR_REGNUM 46
|
||||
|
@ -1064,6 +1066,8 @@ extern const char * structure_size_string;
|
|||
/* VFP adds 32 + 1 more. */
|
||||
#define FIRST_PSEUDO_REGISTER 96
|
||||
|
||||
#define DBX_REGISTER_NUMBER(REGNO) arm_dbx_register_number (REGNO)
|
||||
|
||||
/* Value should be nonzero if functions must have frame pointers.
|
||||
Zero means the frame pointer need not be set up (and parms may be accessed
|
||||
via the stack pointer) in functions that seem suitable.
|
||||
|
|
Loading…
Reference in New Issue