< prev index next > src/hotspot/cpu/x86/macroAssembler_x86.hpp
Print this page
void load_method_holder_cld(Register rresult, Register rmethod);
void load_method_holder(Register holder, Register method);
// oop manipulations
! void load_klass(Register dst, Register src, Register tmp);
void store_klass(Register dst, Register src, Register tmp);
void access_load_at(BasicType type, DecoratorSet decorators, Register dst, Address src,
Register tmp1, Register thread_tmp);
void access_store_at(BasicType type, DecoratorSet decorators, Address dst, Register src,
Register tmp1, Register tmp2);
void load_method_holder_cld(Register rresult, Register rmethod);
void load_method_holder(Register holder, Register method);
// oop manipulations
! void load_klass(Register dst, Register src, Register tmp, bool null_check_src = false);
+ #ifdef _LP64
+ void load_nklass(Register dst, Register src);
+ #endif
void store_klass(Register dst, Register src, Register tmp);
+ // Compares the Klass pointer of an object to a given Klass (which might be narrow,
+ // depending on UseCompressedClassPointers).
+ void cmp_klass(Register klass, Register dst, Register tmp);
+
+ // Compares the Klass pointer of two objects o1 and o2. Result is in the condition flags.
+ // Uses t1 and t2 as temporary registers.
+ void cmp_klass(Register src, Register dst, Register tmp1, Register tmp2);
+
void access_load_at(BasicType type, DecoratorSet decorators, Register dst, Address src,
Register tmp1, Register thread_tmp);
void access_store_at(BasicType type, DecoratorSet decorators, Address dst, Register src,
Register tmp1, Register tmp2);
void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
public:
// C2 compiled method's prolog code.
! void verified_entry(int framesize, int stack_bang_size, bool fp_mode_24b, bool is_stub);
// clear memory of size 'cnt' qwords, starting at 'base';
// if 'is_large' is set, do not try to produce short loop
void clear_mem(Register base, Register cnt, Register rtmp, XMMRegister xtmp, bool is_large, KRegister mask=knoreg);
void movl2ptr(Register dst, Register src) { LP64_ONLY(movslq(dst, src)) NOT_LP64(if (dst != src) movl(dst, src)); }
public:
// C2 compiled method's prolog code.
! void verified_entry(int framesize, int stack_bang_size, bool fp_mode_24b, bool is_stub, int max_monitors);
// clear memory of size 'cnt' qwords, starting at 'base';
// if 'is_large' is set, do not try to produce short loop
void clear_mem(Register base, Register cnt, Register rtmp, XMMRegister xtmp, bool is_large, KRegister mask=knoreg);
#endif // COMPILER2_OR_JVMCI
#endif // _LP64
void vallones(XMMRegister dst, int vector_len);
+
+ void fast_lock_impl(Register obj, Register hdr, Register thread, Register tmp, Label& slow, bool rt_check_stack = true);
+ void fast_unlock_impl(Register obj, Register hdr, Register tmp, Label& slow);
};
/**
* class SkipIfEqual:
*
< prev index next >