diff options
author | Paul Brook <pbrook@gcc.gnu.org> | 2005-03-29 03:00:27 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2005-03-29 03:00:27 +0000 |
commit | 2fa330b29a650365d4d88e4407fdbc2934dcb1b4 (patch) | |
tree | 5f9a2e31b4b52a15723c51d274cdc0bfd45a8612 /gcc/config/arm/arm.c | |
parent | a584cf65fa83edcdbcf903b479414b04ddcd07ee (diff) | |
download | gcc-2fa330b29a650365d4d88e4407fdbc2934dcb1b4.zip gcc-2fa330b29a650365d4d88e4407fdbc2934dcb1b4.tar.gz gcc-2fa330b29a650365d4d88e4407fdbc2934dcb1b4.tar.bz2 |
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
Diffstat (limited to 'gcc/config/arm/arm.c')
-rw-r--r-- | gcc/config/arm/arm.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index b307983..dc7d410f 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -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 (); +} + |