src/hotspot/cpu/aarch64/gc/z/zBarrierSetAssembler_aarch64.hpp
changeset 58516 d376d86b0a01
parent 55379 865775b86780
child 58679 9c3209ff7550
equal deleted inserted replaced
58515:8f849d3ec1e5 58516:d376d86b0a01
    22  */
    22  */
    23 
    23 
    24 #ifndef CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
    24 #ifndef CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
    25 #define CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
    25 #define CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_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 
    27 #ifdef COMPILER1
    33 #ifdef COMPILER1
    28 class LIR_Assembler;
    34 class LIR_Assembler;
    29 class LIR_OprDesc;
    35 class LIR_OprDesc;
    30 typedef LIR_OprDesc* LIR_Opr;
    36 typedef LIR_OprDesc* LIR_Opr;
    31 class StubAssembler;
    37 class StubAssembler;
    32 class ZLoadBarrierStubC1;
    38 class ZLoadBarrierStubC1;
    33 #endif // COMPILER1
    39 #endif // COMPILER1
    34 
    40 
       
    41 #ifdef COMPILER2
       
    42 class Node;
       
    43 class ZLoadBarrierStubC2;
       
    44 #endif // COMPILER2
       
    45 
    35 class ZBarrierSetAssembler : public ZBarrierSetAssemblerBase {
    46 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:
    47 public:
    41   ZBarrierSetAssembler();
       
    42 
       
    43   virtual void load_at(MacroAssembler* masm,
    48   virtual void load_at(MacroAssembler* masm,
    44                        DecoratorSet decorators,
    49                        DecoratorSet decorators,
    45                        BasicType type,
    50                        BasicType type,
    46                        Register dst,
    51                        Register dst,
    47                        Address src,
    52                        Address src,
    81 
    86 
    82   void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm,
    87   void generate_c1_load_barrier_runtime_stub(StubAssembler* sasm,
    83                                              DecoratorSet decorators) const;
    88                                              DecoratorSet decorators) const;
    84 #endif // COMPILER1
    89 #endif // COMPILER1
    85 
    90 
    86   virtual void barrier_stubs_init();
    91 #ifdef COMPILER2
       
    92   OptoReg::Name refine_register(const Node* node,
       
    93                                 OptoReg::Name opto_reg);
    87 
    94 
    88   address load_barrier_slow_stub(Register reg);
    95   void generate_c2_load_barrier_stub(MacroAssembler* masm,
    89   address load_barrier_weak_slow_stub(Register reg);
    96                                      ZLoadBarrierStubC2* stub) const;
       
    97 #endif // COMPILER2
    90 };
    98 };
    91 
    99 
    92 #endif // CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP
   100 #endif // CPU_AARCH64_GC_Z_ZBARRIERSETASSEMBLER_AARCH64_HPP