This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix MAKE_THROW_FRAME on x86


On Sun, 2004-02-08 at 11:50, Diego Novillo wrote:

> MAKE_THROW_FRAME was taking the address of an incoming parameter and
> dereferencing it.  The aliasing changes I'm working on were correctly
> assuming that all the stores through that pointer were dead.
> 
> Fixed by marking the pointer volatile.  Committed as obvious.
> 
I should've waited until I fixed all the regressions. 
HANDLE_DIVIDE_OVERFLOW had the same problem.

Committed to mainline and tree-ssa.


Diego.

	* include/i386-signal.h (HANDLE_DIVIDE_OVERFLOW): Add volatile
	qualifier to _regs.

Index: include/i386-signal.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/include/i386-signal.h,v
retrieving revision 1.17
diff -d -c -p -r1.17 i386-signal.h
*** include/i386-signal.h	8 Feb 2004 16:51:03 -0000	1.17
--- include/i386-signal.h	8 Feb 2004 17:12:11 -0000
*************** while (0)
*** 40,46 ****
  do									\
  {									\
    void **_p = (void **)&_dummy;						\
!   struct sigcontext_struct *_regs = (struct sigcontext_struct *)++_p;	\
  									\
    register unsigned char *_eip = (unsigned char *)_regs->eip;		\
  									\
--- 40,46 ----
  do									\
  {									\
    void **_p = (void **)&_dummy;						\
!   volatile struct sigcontext_struct *_regs = (struct sigcontext_struct *)++_p;\
  									\
    register unsigned char *_eip = (unsigned char *)_regs->eip;		\
  									\



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]