Mercurial > hg > truffle
changeset 4680:acf7d88327fa
Fixed two asserts in the implicit div exception handling for Windows that are not valid for Graal (as it deoptimizes to some place before the div instead of exactly to the div bytecode).
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 23 Feb 2012 23:06:28 +0100 |
parents | 7406229b269f |
children | 84e7d6690293 bacc18e07f7b |
files | src/os/windows/vm/os_windows.cpp |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/os/windows/vm/os_windows.cpp Thu Feb 23 22:04:35 2012 +0100 +++ b/src/os/windows/vm/os_windows.cpp Thu Feb 23 23:06:28 2012 +0100 @@ -2083,9 +2083,9 @@ PCONTEXT ctx = exceptionInfo->ContextRecord; address pc = (address)ctx->Rip; NOT_PRODUCT(Events::log("idiv overflow exception at " INTPTR_FORMAT , pc)); - assert(pc[0] == 0xF7 || (pc[1] == 0xF7 && (pc[0] == 0x41 || pc[0] == 0x49)), "not an idiv opcode"); + //assert(pc[0] == 0xF7 || (pc[1] == 0xF7 && (pc[0] == 0x41 || pc[0] == 0x49)), "not an idiv opcode"); //assert((pc[1] & ~0x7) == 0xF8, "cannot handle non-register operands"); - assert((long)ctx->Rax == (long)min_jint || pc[0] == 0x49, "unexpected idiv exception"); + //assert((long)ctx->Rax == (long)min_jint || pc[0] == 0x49, "unexpected idiv exception"); // set correct result values and continue after idiv instruction ctx->Rip = (DWORD)pc + 2; // idiv reg, reg is 2 bytes ctx->Rax = (DWORD)min_jint; // result