Print this page
rev 2161 : [mq]: initial-intrinsification-changes
rev 2162 : [mq]: code-review-comments-vladimir

Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/graphKit.hpp
          +++ new/src/share/vm/opto/graphKit.hpp
   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    3   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4    4   *
   5    5   * This code is free software; you can redistribute it and/or modify it
   6    6   * under the terms of the GNU General Public License version 2 only, as
   7    7   * published by the Free Software Foundation.
   8    8   *
   9    9   * This code is distributed in the hope that it will be useful, but WITHOUT
  10   10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11   11   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12   12   * version 2 for more details (a copy is included in the LICENSE file that
↓ open down ↓ 524 lines elided ↑ open up ↑
 537  537  
 538  538    // Could be an array or object we don't know at compile time (unsafe ref.)
 539  539    Node* store_oop_to_unknown(Node* ctl,
 540  540                               Node* obj,   // containing obj
 541  541                               Node* adr,  // actual adress to store val at
 542  542                               const TypePtr* adr_type,
 543  543                               Node* val,
 544  544                               BasicType bt);
 545  545  
 546  546    // For the few case where the barriers need special help
 547      -  void pre_barrier(Node* ctl, Node* obj, Node* adr, uint adr_idx,
 548      -                   Node* val, const TypeOopPtr* val_type, BasicType bt);
      547 +  void pre_barrier(bool do_load, Node* ctl,
      548 +                   Node* obj, Node* adr, uint adr_idx, Node* val, const TypeOopPtr* val_type,
      549 +                   Node* pre_val,
      550 +                   BasicType bt);
 549  551  
 550  552    void post_barrier(Node* ctl, Node* store, Node* obj, Node* adr, uint adr_idx,
 551  553                      Node* val, BasicType bt, bool use_precise);
 552  554  
 553  555    // Return addressing for an array element.
 554  556    Node* array_element_address(Node* ary, Node* idx, BasicType elembt,
 555  557                                // Optional constraint on the array size:
 556  558                                const TypeInt* sizetype = NULL);
 557  559  
 558  560    // Return a load of array element at idx.
↓ open down ↓ 103 lines elided ↑ open up ↑
 662  664              && Universe::heap()->can_elide_tlab_store_barriers());
 663  665    }
 664  666  
 665  667    void sync_kit(IdealKit& ideal);
 666  668  
 667  669    // vanilla/CMS post barrier
 668  670    void write_barrier_post(Node *store, Node* obj,
 669  671                            Node* adr,  uint adr_idx, Node* val, bool use_precise);
 670  672  
 671  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  676                              Node* adr,
 674  677                              uint alias_idx,
 675  678                              Node* val,
 676  679                              const TypeOopPtr* val_type,
      680 +                            Node* pre_val,
 677  681                              BasicType bt);
 678  682  
 679  683    void g1_write_barrier_post(Node* store,
 680  684                               Node* obj,
 681  685                               Node* adr,
 682  686                               uint alias_idx,
 683  687                               Node* val,
 684  688                               BasicType bt,
 685  689                               bool use_precise);
 686  690    // Helper function for g1
↓ open down ↓ 158 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX