mirror of git://gcc.gnu.org/git/gcc.git
i386-signal.h: Don't do anything with unsigned divide overflow except throw an exception.
2001-07-06 Andrew Haley <aph@cambridge.redhat.com> * include/i386-signal.h: Don't do anything with unsigned divide overflow except throw an exception. From-SVN: r43813
This commit is contained in:
parent
b32685987f
commit
b8ef6023aa
|
@ -1,3 +1,8 @@
|
||||||
|
2001-07-06 Andrew Haley <aph@cambridge.redhat.com>
|
||||||
|
|
||||||
|
* include/i386-signal.h: Don't do anything with unsigned divide
|
||||||
|
overflow except throw an exception.
|
||||||
|
|
||||||
2001-07-05 Tom Tromey <tromey@redhat.com>
|
2001-07-05 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
For PR java/3562:
|
For PR java/3562:
|
||||||
|
|
|
@ -88,21 +88,6 @@ do \
|
||||||
_regs->eip = (unsigned long)_eip; \
|
_regs->eip = (unsigned long)_eip; \
|
||||||
return; \
|
return; \
|
||||||
} \
|
} \
|
||||||
else if (((_modrm >> 3) & 7) == 6) /* Unsigned divide */ \
|
|
||||||
{ \
|
|
||||||
/* We assume that unsigned divisions are in library code, so \
|
|
||||||
* we throw one level down the stack, which was hopefully \
|
|
||||||
* the place that called the library routine. This will \
|
|
||||||
* break if the library is ever compiled with \
|
|
||||||
* -fomit-frame-pointer, but at least this way we've got a \
|
|
||||||
* good chance of finding the exception handler. */ \
|
|
||||||
\
|
|
||||||
_eip = (unsigned char *)_ebp[1]; \
|
|
||||||
_ebp = (unsigned long *)_ebp[0]; \
|
|
||||||
\
|
|
||||||
asm volatile ("mov %0, (%%ebp); mov %1, 4(%%ebp)" \
|
|
||||||
: : "r"(_ebp), "r"(_eip)); \
|
|
||||||
} \
|
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
/* Advance the program counter so that it is after the start \
|
/* Advance the program counter so that it is after the start \
|
||||||
|
|
Loading…
Reference in New Issue