< prev index next >

src/hotspot/cpu/x86/macroAssembler_x86.cpp

Print this page

9712 // Resotres back legacy GPRs state from stack.
9713 void MacroAssembler::restore_legacy_gprs() {
9714   movq(r15, Address(rsp, 0));
9715   movq(r14, Address(rsp, wordSize));
9716   movq(r13, Address(rsp, 2 * wordSize));
9717   movq(r12, Address(rsp, 3 * wordSize));
9718   movq(r11, Address(rsp, 4 * wordSize));
9719   movq(r10, Address(rsp, 5 * wordSize));
9720   movq(r9,  Address(rsp, 6 * wordSize));
9721   movq(r8,  Address(rsp, 7 * wordSize));
9722   movq(rdi, Address(rsp, 8 * wordSize));
9723   movq(rsi, Address(rsp, 9 * wordSize));
9724   movq(rbp, Address(rsp, 10 * wordSize));
9725   movq(rbx, Address(rsp, 12 * wordSize));
9726   movq(rdx, Address(rsp, 13 * wordSize));
9727   movq(rcx, Address(rsp, 14 * wordSize));
9728   movq(rax, Address(rsp, 15 * wordSize));
9729   addq(rsp, 16 * wordSize);
9730 }
9731 














9732 void MacroAssembler::setcc(Assembler::Condition comparison, Register dst) {
9733   if (VM_Version::supports_apx_f()) {
9734     esetzucc(comparison, dst);
9735   } else {
9736     setb(comparison, dst);
9737     movzbl(dst, dst);
9738   }
9739 }

9712 // Resotres back legacy GPRs state from stack.
9713 void MacroAssembler::restore_legacy_gprs() {
9714   movq(r15, Address(rsp, 0));
9715   movq(r14, Address(rsp, wordSize));
9716   movq(r13, Address(rsp, 2 * wordSize));
9717   movq(r12, Address(rsp, 3 * wordSize));
9718   movq(r11, Address(rsp, 4 * wordSize));
9719   movq(r10, Address(rsp, 5 * wordSize));
9720   movq(r9,  Address(rsp, 6 * wordSize));
9721   movq(r8,  Address(rsp, 7 * wordSize));
9722   movq(rdi, Address(rsp, 8 * wordSize));
9723   movq(rsi, Address(rsp, 9 * wordSize));
9724   movq(rbp, Address(rsp, 10 * wordSize));
9725   movq(rbx, Address(rsp, 12 * wordSize));
9726   movq(rdx, Address(rsp, 13 * wordSize));
9727   movq(rcx, Address(rsp, 14 * wordSize));
9728   movq(rax, Address(rsp, 15 * wordSize));
9729   addq(rsp, 16 * wordSize);
9730 }
9731 
9732 void MacroAssembler::load_aotrc_address(Register reg, address a) {
9733 #if INCLUDE_CDS
9734   assert(AOTRuntimeConstants::contains(a), "address out of range for data area");
9735   if (AOTCodeCache::is_on_for_dump()) {
9736     // all aotrc field addresses should be registered in the AOTCodeCache address table
9737     lea(reg, ExternalAddress(a));
9738   } else {
9739     mov64(reg, (uint64_t)a);
9740   }
9741 #else
9742   ShouldNotReachHere();
9743 #endif
9744 }
9745 
9746 void MacroAssembler::setcc(Assembler::Condition comparison, Register dst) {
9747   if (VM_Version::supports_apx_f()) {
9748     esetzucc(comparison, dst);
9749   } else {
9750     setb(comparison, dst);
9751     movzbl(dst, dst);
9752   }
9753 }
< prev index next >