diff options
author | Michael Snyder <msnyder@vmware.com> | 1997-07-03 20:50:11 +0000 |
---|---|---|
committer | Michael Snyder <msnyder@vmware.com> | 1997-07-03 20:50:11 +0000 |
commit | c430260caeb9fc2379659a7a32210ec8613d11ab (patch) | |
tree | 2b14c1f4864c23594d56f3addfa7468ca8c6e073 /gdb | |
parent | 0f552ea0451982bf0ce41188164547799ea74567 (diff) | |
download | gdb-c430260caeb9fc2379659a7a32210ec8613d11ab.zip gdb-c430260caeb9fc2379659a7a32210ec8613d11ab.tar.gz gdb-c430260caeb9fc2379659a7a32210ec8613d11ab.tar.bz2 |
Thu Jul 3 13:48:11 1997 Michael Snyder (msnyder@cleaver.cygnus.com)
* mips-tdep.c (mips_push_arguments): don't left-adjust 32-bit
integers in 64-bit register parameters before function calls.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/mips-tdep.c | 16 |
2 files changed, 13 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4cf2199..232511e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Thu Jul 3 13:48:11 1997 Michael Snyder (msnyder@cleaver.cygnus.com) + + * mips-tdep.c (mips_push_arguments): don't left-adjust 32-bit + integers in 64-bit register parameters before function calls. + Mon Jun 30 17:54:51 1997 Michael Snyder (msnyder@cleaver.cygnus.com) * mips-tdep.c (mips_push_arguments): special-case handling for diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index f68ecee..de60fae 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -1375,19 +1375,19 @@ mips_push_arguments(nargs, args, sp, struct_return, struct_addr) { CORE_ADDR regval = extract_address (val, partial_len); - /* A simple argument being passed in a general register. - If the length is smaller than the register size, we - have to adjust the alignment on big endian targets. + /* A non-floating-point argument being passed in a + general register. If a struct or union, and if + small enough for a single register, we have to + adjust the alignment. - For structs, it appears that we have to - do the same even in little endian mode. + It does not seem to be necessary to do the + same for integral types. - But don't do this adjustment on EABI targets. */ + Also don't do this adjustment on EABI targets. */ if (!MIPS_EABI && TYPE_LENGTH (arg_type) < MIPS_REGSIZE && - (TARGET_BYTE_ORDER == BIG_ENDIAN || - typecode == TYPE_CODE_STRUCT || + (typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION)) regval <<= ((MIPS_REGSIZE - partial_len) * TARGET_CHAR_BIT); |