1 /* |
1 /* |
2 * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
542 const TypePtr* adr_type, |
542 const TypePtr* adr_type, |
543 Node* val, |
543 Node* val, |
544 BasicType bt); |
544 BasicType bt); |
545 |
545 |
546 // For the few case where the barriers need special help |
546 // For the few case where the barriers need special help |
547 void pre_barrier(Node* ctl, Node* obj, Node* adr, uint adr_idx, |
547 void pre_barrier(bool do_load, Node* ctl, |
548 Node* val, const TypeOopPtr* val_type, BasicType bt); |
548 Node* obj, Node* adr, uint adr_idx, Node* val, const TypeOopPtr* val_type, |
|
549 Node* pre_val, |
|
550 BasicType bt); |
549 |
551 |
550 void post_barrier(Node* ctl, Node* store, Node* obj, Node* adr, uint adr_idx, |
552 void post_barrier(Node* ctl, Node* store, Node* obj, Node* adr, uint adr_idx, |
551 Node* val, BasicType bt, bool use_precise); |
553 Node* val, BasicType bt, bool use_precise); |
552 |
554 |
553 // Return addressing for an array element. |
555 // Return addressing for an array element. |
667 // vanilla/CMS post barrier |
669 // vanilla/CMS post barrier |
668 void write_barrier_post(Node *store, Node* obj, |
670 void write_barrier_post(Node *store, Node* obj, |
669 Node* adr, uint adr_idx, Node* val, bool use_precise); |
671 Node* adr, uint adr_idx, Node* val, bool use_precise); |
670 |
672 |
671 // G1 pre/post barriers |
673 // G1 pre/post barriers |
672 void g1_write_barrier_pre(Node* obj, |
674 void g1_write_barrier_pre(bool do_load, |
|
675 Node* obj, |
673 Node* adr, |
676 Node* adr, |
674 uint alias_idx, |
677 uint alias_idx, |
675 Node* val, |
678 Node* val, |
676 const TypeOopPtr* val_type, |
679 const TypeOopPtr* val_type, |
|
680 Node* pre_val, |
677 BasicType bt); |
681 BasicType bt); |
678 |
682 |
679 void g1_write_barrier_post(Node* store, |
683 void g1_write_barrier_post(Node* store, |
680 Node* obj, |
684 Node* obj, |
681 Node* adr, |
685 Node* adr, |