Mercurial > hg > truffle
comparison src/cpu/x86/vm/assembler_x86.cpp @ 1793:d257356e35f0
6939224: MethodHandle.invokeGeneric needs to perform the correct set of conversions
Reviewed-by: never
author | jrose |
---|---|
date | Mon, 13 Sep 2010 23:24:30 -0700 |
parents | d6f45b55c972 |
children | d55217dc206f |
comparison
equal
deleted
inserted
replaced
1792:d20603ee9e10 | 1793:d257356e35f0 |
---|---|
4991 // This is the value of eip which points to where verify_oop will return. | 4991 // This is the value of eip which points to where verify_oop will return. |
4992 if (os::message_box(msg, "Execution stopped, print registers?")) { | 4992 if (os::message_box(msg, "Execution stopped, print registers?")) { |
4993 ttyLocker ttyl; | 4993 ttyLocker ttyl; |
4994 tty->print_cr("eip = 0x%08x", eip); | 4994 tty->print_cr("eip = 0x%08x", eip); |
4995 #ifndef PRODUCT | 4995 #ifndef PRODUCT |
4996 tty->cr(); | 4996 if ((WizardMode || Verbose) && PrintMiscellaneous) { |
4997 findpc(eip); | 4997 tty->cr(); |
4998 tty->cr(); | 4998 findpc(eip); |
4999 tty->cr(); | |
5000 } | |
4999 #endif | 5001 #endif |
5000 tty->print_cr("rax, = 0x%08x", rax); | 5002 tty->print_cr("rax = 0x%08x", rax); |
5001 tty->print_cr("rbx, = 0x%08x", rbx); | 5003 tty->print_cr("rbx = 0x%08x", rbx); |
5002 tty->print_cr("rcx = 0x%08x", rcx); | 5004 tty->print_cr("rcx = 0x%08x", rcx); |
5003 tty->print_cr("rdx = 0x%08x", rdx); | 5005 tty->print_cr("rdx = 0x%08x", rdx); |
5004 tty->print_cr("rdi = 0x%08x", rdi); | 5006 tty->print_cr("rdi = 0x%08x", rdi); |
5005 tty->print_cr("rsi = 0x%08x", rsi); | 5007 tty->print_cr("rsi = 0x%08x", rsi); |
5006 tty->print_cr("rbp, = 0x%08x", rbp); | 5008 tty->print_cr("rbp = 0x%08x", rbp); |
5007 tty->print_cr("rsp = 0x%08x", rsp); | 5009 tty->print_cr("rsp = 0x%08x", rsp); |
5008 BREAKPOINT; | 5010 BREAKPOINT; |
5011 assert(false, "start up GDB"); | |
5009 } | 5012 } |
5010 } else { | 5013 } else { |
5011 ttyLocker ttyl; | 5014 ttyLocker ttyl; |
5012 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); | 5015 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg); |
5013 assert(false, "DEBUG MESSAGE"); | 5016 assert(false, "DEBUG MESSAGE"); |
7675 | 7678 |
7676 // load indirectly to solve generation ordering problem | 7679 // load indirectly to solve generation ordering problem |
7677 movptr(tmp, ExternalAddress((address) delayed_value_addr)); | 7680 movptr(tmp, ExternalAddress((address) delayed_value_addr)); |
7678 | 7681 |
7679 #ifdef ASSERT | 7682 #ifdef ASSERT |
7680 Label L; | 7683 { Label L; |
7681 testptr(tmp, tmp); | 7684 testptr(tmp, tmp); |
7682 jccb(Assembler::notZero, L); | 7685 if (WizardMode) { |
7683 hlt(); | 7686 jcc(Assembler::notZero, L); |
7684 bind(L); | 7687 char* buf = new char[40]; |
7688 sprintf(buf, "DelayedValue="INTPTR_FORMAT, delayed_value_addr[1]); | |
7689 stop(buf); | |
7690 } else { | |
7691 jccb(Assembler::notZero, L); | |
7692 hlt(); | |
7693 } | |
7694 bind(L); | |
7695 } | |
7685 #endif | 7696 #endif |
7686 | 7697 |
7687 if (offset != 0) | 7698 if (offset != 0) |
7688 addptr(tmp, offset); | 7699 addptr(tmp, offset); |
7689 | 7700 |