579 static bool use_ReduceInitialCardMarks() { |
580 static bool use_ReduceInitialCardMarks() { |
580 return (ReduceInitialCardMarks |
581 return (ReduceInitialCardMarks |
581 && Universe::heap()->can_elide_tlab_store_barriers()); |
582 && Universe::heap()->can_elide_tlab_store_barriers()); |
582 } |
583 } |
583 |
584 |
|
585 // G1 pre/post barriers |
|
586 void g1_write_barrier_pre(Node* obj, |
|
587 Node* adr, |
|
588 uint alias_idx, |
|
589 Node* val, |
|
590 const Type* val_type, |
|
591 BasicType bt); |
|
592 |
|
593 void g1_write_barrier_post(Node* store, |
|
594 Node* obj, |
|
595 Node* adr, |
|
596 uint alias_idx, |
|
597 Node* val, |
|
598 BasicType bt, |
|
599 bool use_precise); |
|
600 // Helper function for g1 |
|
601 private: |
|
602 void g1_mark_card(IdealKit* ideal, Node* card_adr, Node* store, Node* index, Node* index_adr, |
|
603 Node* buffer, const TypeFunc* tf); |
|
604 |
|
605 public: |
584 // Helper function to round double arguments before a call |
606 // Helper function to round double arguments before a call |
585 void round_double_arguments(ciMethod* dest_method); |
607 void round_double_arguments(ciMethod* dest_method); |
586 void round_double_result(ciMethod* dest_method); |
608 void round_double_result(ciMethod* dest_method); |
587 |
609 |
588 // rounding for strict float precision conformance |
610 // rounding for strict float precision conformance |