equal
deleted
inserted
replaced
822 masm->mov(c_rarg3, arg); |
822 masm->mov(c_rarg3, arg); |
823 } |
823 } |
824 } |
824 } |
825 |
825 |
826 void MacroAssembler::stop(const char* msg) { |
826 void MacroAssembler::stop(const char* msg) { |
827 address rip = pc(); |
827 if (ShowMessageBoxOnError) { |
828 pusha(); // get regs on stack |
828 address rip = pc(); |
|
829 pusha(); // get regs on stack |
|
830 lea(c_rarg1, InternalAddress(rip)); |
|
831 movq(c_rarg2, rsp); // pass pointer to regs array |
|
832 } |
829 lea(c_rarg0, ExternalAddress((address) msg)); |
833 lea(c_rarg0, ExternalAddress((address) msg)); |
830 lea(c_rarg1, InternalAddress(rip)); |
|
831 movq(c_rarg2, rsp); // pass pointer to regs array |
|
832 andq(rsp, -16); // align stack as required by ABI |
834 andq(rsp, -16); // align stack as required by ABI |
833 call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug64))); |
835 call(RuntimeAddress(CAST_FROM_FN_PTR(address, MacroAssembler::debug64))); |
834 hlt(); |
836 hlt(); |
835 } |
837 } |
836 |
838 |