src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7045514 Sdiff src/cpu/x86/vm

src/cpu/x86/vm/assembler_x86.cpp

Print this page




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) {


src/cpu/x86/vm/assembler_x86.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File