< prev index next > src/hotspot/cpu/x86/macroAssembler_x86.cpp
Print this page
#include "gc/shared/barrierSetAssembler.hpp"
#include "gc/shared/collectedHeap.inline.hpp"
#include "gc/shared/tlab_globals.hpp"
#include "interpreter/bytecodeHistogram.hpp"
#include "interpreter/interpreter.hpp"
+ #include "interpreter/interpreterRuntime.hpp"
#include "jvm.h"
#include "memory/resourceArea.hpp"
#include "memory/universe.hpp"
#include "oops/accessDecorators.hpp"
#include "oops/compressedKlass.inline.hpp"
#ifdef _WIN64
// restore stack pointer
addq(rsp, frame::arg_reg_save_area_bytes);
#endif
-
}
void MacroAssembler::cmp64(Register src1, AddressLiteral src2, Register rscratch) {
assert(!src2.is_lval(), "should use cmpptr");
assert(rscratch != noreg || always_reachable(src2), "missing");
pop(rthread);
#endif
}
void MacroAssembler::inc_held_monitor_count() {
- #ifndef _LP64
- Register thread = rax;
- push(thread);
- get_thread(thread);
- incrementl(Address(thread, JavaThread::held_monitor_count_offset()));
- pop(thread);
- #else // LP64
+ #ifdef _LP64
incrementq(Address(r15_thread, JavaThread::held_monitor_count_offset()));
#endif
}
void MacroAssembler::dec_held_monitor_count() {
- #ifndef _LP64
- Register thread = rax;
- push(thread);
- get_thread(thread);
- decrementl(Address(thread, JavaThread::held_monitor_count_offset()));
- pop(thread);
- #else // LP64
+ #ifdef _LP64
decrementq(Address(r15_thread, JavaThread::held_monitor_count_offset()));
#endif
}
#ifdef ASSERT
lea(java_pc, InternalAddress(last_java_pc), rscratch);
}
movptr(Address(java_thread, JavaThread::last_Java_sp_offset()), last_java_sp);
}
+ #ifdef _LP64
+ void MacroAssembler::set_last_Java_frame(Register last_java_sp,
+ Register last_java_fp,
+ Label &L,
+ Register scratch) {
+ lea(scratch, L);
+ movptr(Address(r15_thread, JavaThread::last_Java_pc_offset()), scratch);
+ set_last_Java_frame(r15_thread, last_java_sp, last_java_fp, nullptr, scratch);
+ }
+ #endif
+
void MacroAssembler::shlptr(Register dst, int imm8) {
LP64_ONLY(shlq(dst, imm8)) NOT_LP64(shll(dst, imm8));
}
void MacroAssembler::shrptr(Register dst, int imm8) {
< prev index next >