diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1993-12-22 18:06:15 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1993-12-22 18:06:15 -0800 |
commit | 4e6ee2672ef66ce3035f7b67899295c0efcf2e79 (patch) | |
tree | f4635f19ba52e06a0324f0b04d6fec5b7a7e92c3 /gcc | |
parent | 76767c30d93fdd09c3398f3e4464ecc4735fd4bd (diff) | |
download | gcc-4e6ee2672ef66ce3035f7b67899295c0efcf2e79.zip gcc-4e6ee2672ef66ce3035f7b67899295c0efcf2e79.tar.gz gcc-4e6ee2672ef66ce3035f7b67899295c0efcf2e79.tar.bz2 |
(dbxout_parms): For parameter passed by invisible
reference, use DECL_INCOMING_RTL if DECL_RTL is a pseudo-reg address.
From-SVN: r6275
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/dbxout.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index 08881fc..fd8bdd5 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -2178,8 +2178,15 @@ dbxout_parms (parms) current_sym_code = DBX_REGPARM_STABS_CODE; regparm_letter = DBX_REGPARM_STABS_LETTER; - /* DECL_RTL looks like (MEM (REG...). Get the register number. */ - current_sym_value = REGNO (XEXP (DECL_RTL (parms), 0)); + /* DECL_RTL looks like (MEM (REG...). Get the register number. + If it is an unallocated pseudo-reg, then use the register where + it was passed instead. */ + if (REGNO (XEXP (DECL_RTL (parms), 0)) >= 0 + && REGNO (XEXP (DECL_RTL (parms), 0)) < FIRST_PSEUDO_REGISTER) + current_sym_value = REGNO (XEXP (DECL_RTL (parms), 0)); + else + current_sym_value = REGNO (DECL_INCOMING_RTL (parms)); + current_sym_addr = 0; FORCE_TEXT; |