src/hotspot/cpu/x86/gc/z/zBarrierSetAssembler_x86.hpp
changeset 58516 d376d86b0a01
parent 53440 a0b98a2af86c
equal deleted inserted replaced
58515:8f849d3ec1e5 58516:d376d86b0a01
    22  */
    22  */
    23 
    23 
    24 #ifndef CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP
    24 #ifndef CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP
    25 #define CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP
    25 #define CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP
    26 
    26 
       
    27 #include "code/vmreg.hpp"
       
    28 #include "oops/accessDecorators.hpp"
       
    29 #ifdef COMPILER2
       
    30 #include "opto/optoreg.hpp"
       
    31 #endif // COMPILER2
       
    32 
       
    33 class MacroAssembler;
       
    34 
    27 #ifdef COMPILER1
    35 #ifdef COMPILER1
    28 class LIR_Assembler;
    36 class LIR_Assembler;
    29 class LIR_OprDesc;
    37 class LIR_OprDesc;
    30 typedef LIR_OprDesc* LIR_Opr;
    38 typedef LIR_OprDesc* LIR_Opr;
    31 class StubAssembler;
    39 class StubAssembler;
    32 class ZLoadBarrierStubC1;
    40 class ZLoadBarrierStubC1;
    33 #endif // COMPILER1
    41 #endif // COMPILER1
    34 
    42 
       
    43 #ifdef COMPILER2
       
    44 class Node;
       
    45 class ZLoadBarrierStubC2;
       
    46 #endif // COMPILER2
       
    47 
    35 class ZBarrierSetAssembler : public ZBarrierSetAssemblerBase {
    48 class ZBarrierSetAssembler : public ZBarrierSetAssemblerBase {
    36 private:
       
    37   address _load_barrier_slow_stub[RegisterImpl::number_of_registers];
       
    38   address _load_barrier_weak_slow_stub[RegisterImpl::number_of_registers];
       
    39 
       
    40 public:
    49 public:
    41   ZBarrierSetAssembler();
       
    42 
       
    43   virtual void load_at(MacroAssembler* masm,
    50   virtual void load_at(MacroAssembler* masm,
    44                        DecoratorSet decorators,
    51                        DecoratorSet decorators,
    45                        BasicType type,
    52                        BasicType type,
    46                        Register dst,
    53                        Register dst,
    47                        Address src,
    54                        Address src,
    80 
    87 
    81   void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm,
    88   void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm,
    82                                              DecoratorSet decorators) const;
    89                                              DecoratorSet decorators) const;
    83 #endif // COMPILER1
    90 #endif // COMPILER1
    84 
    91 
    85   virtual void barrier_stubs_init();
    92 #ifdef COMPILER2
       
    93   OptoReg::Name refine_register(const Node* node,
       
    94                                 OptoReg::Name opto_reg);
    86 
    95 
    87   address load_barrier_slow_stub(Register reg);
    96   void generate_c2_load_barrier_stub(MacroAssembler* masm,
    88   address load_barrier_weak_slow_stub(Register reg);
    97                                      ZLoadBarrierStubC2* stub) const;
       
    98 #endif // COMPILER2
    89 };
    99 };
    90 
   100 
    91 #endif // CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP
   101 #endif // CPU_X86_GC_Z_ZBARRIERSETASSEMBLER_X86_HPP