src/share/vm/c1/c1_LIRGenerator.hpp

changeset 8604
04d83ba48607
parent 8415
d109bda16490
parent 7994
04ff2f6cd0eb
child 8859
f39c2b3891e2
     1.1 --- a/src/share/vm/c1/c1_LIRGenerator.hpp	Thu Sep 22 13:16:27 2016 -0700
     1.2 +++ b/src/share/vm/c1/c1_LIRGenerator.hpp	Thu May 24 17:06:56 2018 +0800
     1.3 @@ -22,6 +22,12 @@
     1.4   *
     1.5   */
     1.6  
     1.7 +/*
     1.8 + * This file has been modified by Loongson Technology in 2015. These
     1.9 + * modifications are Copyright (c) 2015 Loongson Technology, and are made
    1.10 + * available on the same license terms set forth above.
    1.11 + */
    1.12 +
    1.13  #ifndef SHARE_VM_C1_C1_LIRGENERATOR_HPP
    1.14  #define SHARE_VM_C1_C1_LIRGENERATOR_HPP
    1.15  
    1.16 @@ -186,6 +192,9 @@
    1.17    LIR_OprList                     _reg_for_constants;
    1.18    Values                          _unpinned_constants;
    1.19  
    1.20 +#ifdef MIPS64
    1.21 +  LIR_Const*                      _card_table_base;
    1.22 +#endif
    1.23    friend class PhiResolver;
    1.24  
    1.25    // unified bailout support
    1.26 @@ -206,6 +215,11 @@
    1.27    LIR_Opr load_constant(Constant* x);
    1.28    LIR_Opr load_constant(LIR_Const* constant);
    1.29  
    1.30 +#ifdef MIPS64
    1.31 +  LIR_Const* card_table_base() const {
    1.32 +     return _card_table_base;
    1.33 +  }
    1.34 +#endif
    1.35    // Given an immediate value, return an operand usable in logical ops.
    1.36    LIR_Opr load_immediate(int x, BasicType type);
    1.37  
    1.38 @@ -226,6 +240,9 @@
    1.39    LIR_Opr round_item(LIR_Opr opr);
    1.40    LIR_Opr force_to_spill(LIR_Opr value, BasicType t);
    1.41  
    1.42 +#ifdef MIPS64
    1.43 +  void profile_branch(If* if_instr, If::Condition cond, LIR_Opr left, LIR_Opr right);
    1.44 +#endif
    1.45    PhiResolverState& resolver_state() { return _resolver_state; }
    1.46  
    1.47    void  move_to_phi(PhiResolver* resolver, Value cur_val, Value sux_val);
    1.48 @@ -330,7 +347,11 @@
    1.49    void monitor_enter (LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no, CodeEmitInfo* info_for_exception, CodeEmitInfo* info);
    1.50    void monitor_exit  (LIR_Opr object, LIR_Opr lock, LIR_Opr hdr, LIR_Opr scratch, int monitor_no);
    1.51  
    1.52 +#ifndef MIPS64
    1.53    void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, bool is_unresolved, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  klass_reg, CodeEmitInfo* info);
    1.54 +#else
    1.55 +  void new_instance    (LIR_Opr  dst, ciInstanceKlass* klass, LIR_Opr  scratch1, LIR_Opr  scratch2, LIR_Opr  scratch3,  LIR_Opr scratch4, LIR_Opr  scratch5, LIR_Opr scratch6, LIR_Opr klass_reg, CodeEmitInfo* info);
    1.56 +#endif
    1.57  
    1.58    // machine dependent
    1.59    void cmp_mem_int(LIR_Condition condition, LIR_Opr base, int disp, int c, CodeEmitInfo* info);
    1.60 @@ -352,6 +373,9 @@
    1.61    }
    1.62    LIR_Address* emit_array_address(LIR_Opr array_opr, LIR_Opr index_opr, BasicType type, bool needs_card_mark);
    1.63  
    1.64 +#ifdef MIPS64
    1.65 +  void write_barrier(LIR_Opr addr);
    1.66 +#endif
    1.67    // the helper for generate_address
    1.68    void add_large_constant(LIR_Opr src, int c, LIR_Opr dest);
    1.69  

mercurial