Mercurial > hg > truffle
comparison src/share/vm/opto/node.hpp @ 6266:1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
author | twisti |
---|---|
date | Tue, 24 Jul 2012 10:51:00 -0700 |
parents | 8c92982cbbc4 |
children | 6c5b7a6becc8 |
comparison
equal
deleted
inserted
replaced
6241:aba91a731143 | 6266:1d7922586cf6 |
---|---|
361 } | 361 } |
362 Node* last_out(DUIterator_Last i) const { return *i; } | 362 Node* last_out(DUIterator_Last i) const { return *i; } |
363 #endif | 363 #endif |
364 | 364 |
365 // Reference to the i'th input Node. Error if out of bounds. | 365 // Reference to the i'th input Node. Error if out of bounds. |
366 Node* in(uint i) const { assert(i < _max,"oob"); return _in[i]; } | 366 Node* in(uint i) const { assert(i < _max, err_msg("oob: i=%d, _max=%d", i, _max)); return _in[i]; } |
367 // Reference to the i'th output Node. Error if out of bounds. | 367 // Reference to the i'th output Node. Error if out of bounds. |
368 // Use this accessor sparingly. We are going trying to use iterators instead. | 368 // Use this accessor sparingly. We are going trying to use iterators instead. |
369 Node* raw_out(uint i) const { assert(i < _outcnt,"oob"); return _out[i]; } | 369 Node* raw_out(uint i) const { assert(i < _outcnt,"oob"); return _out[i]; } |
370 // Return the unique out edge. | 370 // Return the unique out edge. |
371 Node* unique_out() const { assert(_outcnt==1,"not unique"); return _out[0]; } | 371 Node* unique_out() const { assert(_outcnt==1,"not unique"); return _out[0]; } |
392 void add_req_batch( Node* n, uint m ); // Append m NEW required inputs (all n). | 392 void add_req_batch( Node* n, uint m ); // Append m NEW required inputs (all n). |
393 void del_req( uint idx ); // Delete required edge & compact | 393 void del_req( uint idx ); // Delete required edge & compact |
394 void ins_req( uint i, Node *n ); // Insert a NEW required input | 394 void ins_req( uint i, Node *n ); // Insert a NEW required input |
395 void set_req( uint i, Node *n ) { | 395 void set_req( uint i, Node *n ) { |
396 assert( is_not_dead(n), "can not use dead node"); | 396 assert( is_not_dead(n), "can not use dead node"); |
397 assert( i < _cnt, "oob"); | 397 assert( i < _cnt, err_msg("oob: i=%d, _cnt=%d", i, _cnt)); |
398 assert( !VerifyHashTableKeys || _hash_lock == 0, | 398 assert( !VerifyHashTableKeys || _hash_lock == 0, |
399 "remove node from hash table before modifying it"); | 399 "remove node from hash table before modifying it"); |
400 Node** p = &_in[i]; // cache this._in, across the del_out call | 400 Node** p = &_in[i]; // cache this._in, across the del_out call |
401 if (*p != NULL) (*p)->del_out((Node *)this); | 401 if (*p != NULL) (*p)->del_out((Node *)this); |
402 (*p) = n; | 402 (*p) = n; |