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
2 changed files with 5 additions and 15 deletions
|
@ -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 \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue