27
28 #include "asm/macroAssembler.hpp"
29 #include "memory/allocation.hpp"
30 #include "oops/access.hpp"
31
32 class InterpreterMacroAssembler;
33
34 class BarrierSetAssembler: public CHeapObj<mtGC> {
35 protected:
36 public:
37 virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
38 Register src, Register dst, Register count) {}
39 virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
40 Register src, Register dst, Register count) {}
41
42 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
43 Register dst, Address src, Register tmp1, Register tmp_thread);
44 virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
45 Address dst, Register val, Register tmp1, Register tmp2);
46
47 // Support for jniFastGetField to try resolving a jobject/jweak in native
48 virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
49 Register obj, Register tmp, Label& slowpath);
50
51 virtual void barrier_stubs_init() {}
52 };
53
54 #endif // CPU_X86_GC_SHARED_BARRIERSETASSEMBLER_X86_HPP
|
27
28 #include "asm/macroAssembler.hpp"
29 #include "memory/allocation.hpp"
30 #include "oops/access.hpp"
31
32 class InterpreterMacroAssembler;
33
34 class BarrierSetAssembler: public CHeapObj<mtGC> {
35 protected:
36 public:
37 virtual void arraycopy_prologue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
38 Register src, Register dst, Register count) {}
39 virtual void arraycopy_epilogue(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
40 Register src, Register dst, Register count) {}
41
42 virtual void load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
43 Register dst, Address src, Register tmp1, Register tmp_thread);
44 virtual void store_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
45 Address dst, Register val, Register tmp1, Register tmp2);
46
47 #ifndef _LP64
48 virtual void obj_equals(MacroAssembler* masm, DecoratorSet decorators,
49 Address obj1, jobject obj2);
50 virtual void obj_equals(MacroAssembler* masm, DecoratorSet decorators,
51 Register obj1, jobject obj2);
52 #endif
53
54 virtual void obj_equals(MacroAssembler* masm, DecoratorSet decorators,
55 Register obj1, Register obj2);
56 virtual void obj_equals(MacroAssembler* masm, DecoratorSet decorators,
57 Register obj1, Address obj2);
58
59 // Support for jniFastGetField to try resolving a jobject/jweak in native
60 virtual void try_resolve_jobject_in_native(MacroAssembler* masm, Register jni_env,
61 Register obj, Register tmp, Label& slowpath);
62
63 virtual void barrier_stubs_init() {}
64 };
65
66 #endif // CPU_X86_GC_SHARED_BARRIERSETASSEMBLER_X86_HPP
|