5073 if ((WizardMode || Verbose) && PrintMiscellaneous) {
5074 tty->cr();
5075 findpc(eip);
5076 tty->cr();
5077 }
5078 #endif
5079 tty->print_cr("rax = 0x%08x", rax);
5080 tty->print_cr("rbx = 0x%08x", rbx);
5081 tty->print_cr("rcx = 0x%08x", rcx);
5082 tty->print_cr("rdx = 0x%08x", rdx);
5083 tty->print_cr("rdi = 0x%08x", rdi);
5084 tty->print_cr("rsi = 0x%08x", rsi);
5085 tty->print_cr("rbp = 0x%08x", rbp);
5086 tty->print_cr("rsp = 0x%08x", rsp);
5087 BREAKPOINT;
5088 assert(false, "start up GDB");
5089 }
5090 } else {
5091 ttyLocker ttyl;
5092 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg);
5093 assert(false, "DEBUG MESSAGE");
5094 }
5095 ThreadStateTransition::transition(thread, _thread_in_vm, saved_state);
5096 }
5097
5098 void MacroAssembler::stop(const char* msg) {
5099 ExternalAddress message((address)msg);
5100 // push address of message
5101 pushptr(message.addr());
5102 { Label L; call(L, relocInfo::none); bind(L); } // push eip
5103 pusha(); // push registers
5104 call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug32)));
5105 hlt();
5106 }
5107
5108 void MacroAssembler::warn(const char* msg) {
5109 push_CPU_state();
5110
5111 ExternalAddress message((address) msg);
5112 // push address of message
5113 pushptr(message.addr());
5636 tty->print_cr("rdx = 0x%016lx", regs[13]);
5637 tty->print_cr("rdi = 0x%016lx", regs[8]);
5638 tty->print_cr("rsi = 0x%016lx", regs[9]);
5639 tty->print_cr("rbp = 0x%016lx", regs[10]);
5640 tty->print_cr("rsp = 0x%016lx", regs[11]);
5641 tty->print_cr("r8 = 0x%016lx", regs[7]);
5642 tty->print_cr("r9 = 0x%016lx", regs[6]);
5643 tty->print_cr("r10 = 0x%016lx", regs[5]);
5644 tty->print_cr("r11 = 0x%016lx", regs[4]);
5645 tty->print_cr("r12 = 0x%016lx", regs[3]);
5646 tty->print_cr("r13 = 0x%016lx", regs[2]);
5647 tty->print_cr("r14 = 0x%016lx", regs[1]);
5648 tty->print_cr("r15 = 0x%016lx", regs[0]);
5649 BREAKPOINT;
5650 }
5651 ThreadStateTransition::transition(thread, _thread_in_vm, saved_state);
5652 } else {
5653 ttyLocker ttyl;
5654 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n",
5655 msg);
5656 }
5657 }
5658
5659 #endif // _LP64
5660
5661 // Now versions that are common to 32/64 bit
5662
5663 void MacroAssembler::addptr(Register dst, int32_t imm32) {
5664 LP64_ONLY(addq(dst, imm32)) NOT_LP64(addl(dst, imm32));
5665 }
5666
5667 void MacroAssembler::addptr(Register dst, Register src) {
5668 LP64_ONLY(addq(dst, src)) NOT_LP64(addl(dst, src));
5669 }
5670
5671 void MacroAssembler::addptr(Address dst, Register src) {
5672 LP64_ONLY(addq(dst, src)) NOT_LP64(addl(dst, src));
5673 }
5674
5675 void MacroAssembler::align(int modulus) {
|
5073 if ((WizardMode || Verbose) && PrintMiscellaneous) {
5074 tty->cr();
5075 findpc(eip);
5076 tty->cr();
5077 }
5078 #endif
5079 tty->print_cr("rax = 0x%08x", rax);
5080 tty->print_cr("rbx = 0x%08x", rbx);
5081 tty->print_cr("rcx = 0x%08x", rcx);
5082 tty->print_cr("rdx = 0x%08x", rdx);
5083 tty->print_cr("rdi = 0x%08x", rdi);
5084 tty->print_cr("rsi = 0x%08x", rsi);
5085 tty->print_cr("rbp = 0x%08x", rbp);
5086 tty->print_cr("rsp = 0x%08x", rsp);
5087 BREAKPOINT;
5088 assert(false, "start up GDB");
5089 }
5090 } else {
5091 ttyLocker ttyl;
5092 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n", msg);
5093 assert(false, err_msg("DEBUG MESSAGE: %s", msg));
5094 }
5095 ThreadStateTransition::transition(thread, _thread_in_vm, saved_state);
5096 }
5097
5098 void MacroAssembler::stop(const char* msg) {
5099 ExternalAddress message((address)msg);
5100 // push address of message
5101 pushptr(message.addr());
5102 { Label L; call(L, relocInfo::none); bind(L); } // push eip
5103 pusha(); // push registers
5104 call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug32)));
5105 hlt();
5106 }
5107
5108 void MacroAssembler::warn(const char* msg) {
5109 push_CPU_state();
5110
5111 ExternalAddress message((address) msg);
5112 // push address of message
5113 pushptr(message.addr());
5636 tty->print_cr("rdx = 0x%016lx", regs[13]);
5637 tty->print_cr("rdi = 0x%016lx", regs[8]);
5638 tty->print_cr("rsi = 0x%016lx", regs[9]);
5639 tty->print_cr("rbp = 0x%016lx", regs[10]);
5640 tty->print_cr("rsp = 0x%016lx", regs[11]);
5641 tty->print_cr("r8 = 0x%016lx", regs[7]);
5642 tty->print_cr("r9 = 0x%016lx", regs[6]);
5643 tty->print_cr("r10 = 0x%016lx", regs[5]);
5644 tty->print_cr("r11 = 0x%016lx", regs[4]);
5645 tty->print_cr("r12 = 0x%016lx", regs[3]);
5646 tty->print_cr("r13 = 0x%016lx", regs[2]);
5647 tty->print_cr("r14 = 0x%016lx", regs[1]);
5648 tty->print_cr("r15 = 0x%016lx", regs[0]);
5649 BREAKPOINT;
5650 }
5651 ThreadStateTransition::transition(thread, _thread_in_vm, saved_state);
5652 } else {
5653 ttyLocker ttyl;
5654 ::tty->print_cr("=============== DEBUG MESSAGE: %s ================\n",
5655 msg);
5656 assert(false, err_msg("DEBUG MESSAGE: %s", msg));
5657 }
5658 }
5659
5660 #endif // _LP64
5661
5662 // Now versions that are common to 32/64 bit
5663
5664 void MacroAssembler::addptr(Register dst, int32_t imm32) {
5665 LP64_ONLY(addq(dst, imm32)) NOT_LP64(addl(dst, imm32));
5666 }
5667
5668 void MacroAssembler::addptr(Register dst, Register src) {
5669 LP64_ONLY(addq(dst, src)) NOT_LP64(addl(dst, src));
5670 }
5671
5672 void MacroAssembler::addptr(Address dst, Register src) {
5673 LP64_ONLY(addq(dst, src)) NOT_LP64(addl(dst, src));
5674 }
5675
5676 void MacroAssembler::align(int modulus) {
|