diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-01-22 18:59:36 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-01-22 13:59:36 -0500 |
commit | f5f5363f77c3b6cd53cf40d53f67e14ab71a6cdc (patch) | |
tree | f5e8f6715a0be21af19590c3f435a3e5898db37a /gcc | |
parent | a09b9232cd7029bde88a5d23514b169d78f02a72 (diff) | |
download | gcc-f5f5363f77c3b6cd53cf40d53f67e14ab71a6cdc.zip gcc-f5f5363f77c3b6cd53cf40d53f67e14ab71a6cdc.tar.gz gcc-f5f5363f77c3b6cd53cf40d53f67e14ab71a6cdc.tar.bz2 |
explow.c (probe_stack_range): Ensure value passed to stack_check_libfunc is ptr_mode, not Pmode.
* explow.c (probe_stack_range): Ensure value passed to
stack_check_libfunc is ptr_mode, not Pmode.
From-SVN: r39185
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/explow.c | 20 |
2 files changed, 19 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de41674..421766e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 22 13:59:09 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * explow.c (probe_stack_range): Ensure value passed to + stack_check_libfunc is ptr_mode, not Pmode. + Mon Jan 22 16:53:06 2001 J"orn Rennecke <amylaar@redhat.com> * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND diff --git a/gcc/explow.c b/gcc/explow.c index a1c6380..aa1e8a6 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -1558,12 +1558,20 @@ probe_stack_range (first, size) /* First see if the front end has set up a function for us to call to check the stack. */ if (stack_check_libfunc != 0) - emit_library_call (stack_check_libfunc, 0, VOIDmode, 1, - memory_address (QImode, - gen_rtx (STACK_GROW_OP, Pmode, - stack_pointer_rtx, - plus_constant (size, first))), - ptr_mode); + { + rtx addr = memory_address (QImode, + gen_rtx (STACK_GROW_OP, Pmode, + stack_pointer_rtx, + plus_constant (size, first))); + +#ifdef POINTERS_EXTEND_UNSIGNED + if (GET_MODE (addr) != ptr_mode) + addr = convert_memory_address (ptr_mode, addr); +#endif + + emit_library_call (stack_check_libfunc, 0, VOIDmode, 1, addr, + ptr_mode); + } /* Next see if we have an insn to check the stack. Use it if so. */ #ifdef HAVE_check_stack |