diff options
author | devans <devans@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-05-16 18:41:43 +0000 |
---|---|---|
committer | devans <devans@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-05-16 18:41:43 +0000 |
commit | c945294187fc6c838a2b46dbcde5e4dfe8c9a223 (patch) | |
tree | 903e5c957b04c10c1a1fa32f74ec9299b7889c19 /gcc/dbxout.c | |
parent | 15a7704b99a9a685f215b4175a641f86095d2c5d (diff) | |
download | gcc-c945294187fc6c838a2b46dbcde5e4dfe8c9a223.tar.gz |
* dbxout.c (dbxout_parms): If mode of type of parameter living
in memory doesn't match mode of DECL_RTL, make big endian correction.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19808 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dbxout.c')
-rw-r--r-- | gcc/dbxout.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c index dc7b754af43..513f9000556 100644 --- a/gcc/dbxout.c +++ b/gcc/dbxout.c @@ -2403,6 +2403,15 @@ dbxout_parms (parms) current_sym_value = INTVAL (XEXP (XEXP (DECL_RTL (parms), 0), 1)); current_sym_addr = 0; + /* Make a big endian correction if the mode of the type of the + parameter is not the same as the mode of the rtl. */ + if (BYTES_BIG_ENDIAN + && TYPE_MODE (TREE_TYPE (parms)) != GET_MODE (DECL_RTL (parms)) + && GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (parms))) < UNITS_PER_WORD) + { + current_sym_value += UNITS_PER_WORD - GET_MODE_SIZE (TYPE_MODE (TREE_TYPE (parms))); + } + FORCE_TEXT; if (DECL_NAME (parms)) { |