From 7d798969ff2b148bc38bc86fba0a200d516f509f Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Fri, 28 Mar 2003 23:40:51 +0000 Subject: gcc/ ChangeLog: * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is set up before any trapping memory access if flag_non_call_exceptions. libjava/ ChangeLog: * configure.in (HAVE_BACKTRACE) [s390*-*-linux*]: Define. * configure: Regenerate. From-SVN: r64995 --- gcc/ChangeLog | 5 +++++ gcc/config/s390/s390.c | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b345fd7..2209c43 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-03-29 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is + set up before any trapping memory access if flag_non_call_exceptions. + 2003-03-29 Alan Modra * reload1.c (reload_as_needed): Allow a USE in asm reloads. diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index befaf8f..b1e7c5b 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -5429,6 +5429,16 @@ s390_emit_prologue () set_mem_alias_set (addr, s390_sr_alias_set); insn = emit_insn (gen_move_insn (addr, temp_reg)); } + + /* If we support asynchronous exceptions (e.g. for Java), + we need to make sure the backchain pointer is set up + before any possibly trapping memory access. */ + + if (TARGET_BACKCHAIN && flag_non_call_exceptions) + { + addr = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)); + emit_insn (gen_rtx_CLOBBER (VOIDmode, addr)); + } } /* Save fprs 8 - 15 (64 bit ABI). */ -- cgit v1.1