diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2000-08-22 19:30:49 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2000-08-22 13:30:49 -0600 |
commit | d60eab50e172e80a6bdfbb67da40278e1a7ed5e4 (patch) | |
tree | 69200aa3f5efeb7916d16e3ba5b0e77e522e7cc1 /gcc/calls.c | |
parent | 9861b0c9d63ef866cf7e5b99ffc528f978ca66e2 (diff) | |
download | gcc-d60eab50e172e80a6bdfbb67da40278e1a7ed5e4.zip gcc-d60eab50e172e80a6bdfbb67da40278e1a7ed5e4.tar.gz gcc-d60eab50e172e80a6bdfbb67da40278e1a7ed5e4.tar.bz2 |
calls.c (check_sibcall_argument_overlap_1): Adjust for ARGS_GROW_DOWNWARD.
* calls.c (check_sibcall_argument_overlap_1): Adjust for
ARGS_GROW_DOWNWARD.
(check_sibcall_argument_overlap): Likewise.
From-SVN: r35887
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index 2d0d52c..6784bca 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -1974,6 +1974,10 @@ check_sibcall_argument_overlap_1 (x) else return 0; +#ifdef ARGS_GROW_DOWNWARD + i = -i - GET_MODE_SIZE (GET_MODE (x)); +#endif + for (k = 0; k < GET_MODE_SIZE (GET_MODE (x)); k++) if (i + k < stored_args_map->n_bits && TEST_BIT (stored_args_map, i + k)) @@ -2025,7 +2029,12 @@ check_sibcall_argument_overlap (insn, arg) check_sibcall_argument_overlap_1 (PATTERN (insn))) break; +#ifdef ARGS_GROW_DOWNWARD + low = -arg->offset.constant - arg->size.constant; +#else low = arg->offset.constant; +#endif + for (high = low + arg->size.constant; low < high; low++) SET_BIT (stored_args_map, low); return insn != NULL_RTX; |