diff options
author | Andrew Haley <aph@cambridge.redhat.com> | 2001-07-06 16:33:10 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2001-07-06 16:33:10 +0000 |
commit | b8ef6023aa859d213bae3523248257950c8d0ec2 (patch) | |
tree | 4a15a363d9d01c441eb8c1917b6f010d1016b367 /libjava | |
parent | b32685987f0b05b642646bf613f1c9b9853ac97a (diff) | |
download | gcc-b8ef6023aa859d213bae3523248257950c8d0ec2.zip gcc-b8ef6023aa859d213bae3523248257950c8d0ec2.tar.gz gcc-b8ef6023aa859d213bae3523248257950c8d0ec2.tar.bz2 |
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
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/include/i386-signal.h | 15 |
2 files changed, 5 insertions, 15 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 625f7d0..19a3e28 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -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> For PR java/3562: diff --git a/libjava/include/i386-signal.h b/libjava/include/i386-signal.h index f89a0b1..506984e 100644 --- a/libjava/include/i386-signal.h +++ b/libjava/include/i386-signal.h @@ -88,21 +88,6 @@ do \ _regs->eip = (unsigned long)_eip; \ 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 \ { \ /* Advance the program counter so that it is after the start \ |