1.1 --- a/src/share/vm/c1/c1_LIRGenerator.hpp Wed Jun 04 13:51:09 2008 -0700 1.2 +++ b/src/share/vm/c1/c1_LIRGenerator.hpp Thu Jun 05 15:57:56 2008 -0700 1.3 @@ -145,6 +145,7 @@ 1.4 1.5 // only the classes below belong in the same file 1.6 class LIRGenerator: public InstructionVisitor, public BlockClosure { 1.7 + 1.8 private: 1.9 Compilation* _compilation; 1.10 ciMethod* _method; // method that we are compiling 1.11 @@ -154,6 +155,7 @@ 1.12 Values _instruction_for_operand; 1.13 BitMap2D _vreg_flags; // flags which can be set on a per-vreg basis 1.14 LIR_List* _lir; 1.15 + BarrierSet* _bs; 1.16 1.17 LIRGenerator* gen() { 1.18 return this; 1.19 @@ -174,8 +176,6 @@ 1.20 LIR_OprList _reg_for_constants; 1.21 Values _unpinned_constants; 1.22 1.23 - LIR_Const* _card_table_base; 1.24 - 1.25 friend class PhiResolver; 1.26 1.27 // unified bailout support 1.28 @@ -196,8 +196,6 @@ 1.29 LIR_Opr load_constant(Constant* x); 1.30 LIR_Opr load_constant(LIR_Const* constant); 1.31 1.32 - LIR_Const* card_table_base() const { return _card_table_base; } 1.33 - 1.34 void set_result(Value x, LIR_Opr opr) { 1.35 assert(opr->is_valid(), "must set to valid value"); 1.36 assert(x->operand()->is_illegal(), "operand should never change"); 1.37 @@ -253,12 +251,17 @@ 1.38 1.39 // generic interface 1.40 1.41 + void pre_barrier(LIR_Opr addr_opr, bool patch, CodeEmitInfo* info); 1.42 void post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val); 1.43 1.44 // specific implementations 1.45 + // pre barriers 1.46 + 1.47 + void G1SATBCardTableModRef_pre_barrier(LIR_Opr addr_opr, bool patch, CodeEmitInfo* info); 1.48 1.49 // post barriers 1.50 1.51 + void G1SATBCardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val); 1.52 void CardTableModRef_post_barrier(LIR_OprDesc* addr, LIR_OprDesc* new_val); 1.53 1.54