Commit 2fa330b2 by Paul Brook

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
parent a584cf65
......@@ -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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment