comparison src/share/vm/opto/parse.hpp @ 10408:836a62f43af9

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jun 2013 10:45:56 +0200
parents 6f3fd5150b67
children edb5ab0f3fe5
comparison
equal deleted inserted replaced
10086:e0fb8a213650 10408:836a62f43af9
328 328
329 GraphKit _exits; // Record all normal returns and throws here. 329 GraphKit _exits; // Record all normal returns and throws here.
330 bool _wrote_final; // Did we write a final field? 330 bool _wrote_final; // Did we write a final field?
331 bool _count_invocations; // update and test invocation counter 331 bool _count_invocations; // update and test invocation counter
332 bool _method_data_update; // update method data oop 332 bool _method_data_update; // update method data oop
333 Node* _alloc_with_final; // An allocation node with final field
333 334
334 // Variables which track Java semantics during bytecode parsing: 335 // Variables which track Java semantics during bytecode parsing:
335 336
336 Block* _block; // block currently getting parsed 337 Block* _block; // block currently getting parsed
337 ciBytecodeStream _iter; // stream of this method's bytecodes 338 ciBytecodeStream _iter; // stream of this method's bytecodes
368 GraphKit& exits() { return _exits; } 369 GraphKit& exits() { return _exits; }
369 bool wrote_final() const { return _wrote_final; } 370 bool wrote_final() const { return _wrote_final; }
370 void set_wrote_final(bool z) { _wrote_final = z; } 371 void set_wrote_final(bool z) { _wrote_final = z; }
371 bool count_invocations() const { return _count_invocations; } 372 bool count_invocations() const { return _count_invocations; }
372 bool method_data_update() const { return _method_data_update; } 373 bool method_data_update() const { return _method_data_update; }
374 Node* alloc_with_final() const { return _alloc_with_final; }
375 void set_alloc_with_final(Node* n) {
376 assert((_alloc_with_final == NULL) || (_alloc_with_final == n), "different init objects?");
377 _alloc_with_final = n;
378 }
373 379
374 Block* block() const { return _block; } 380 Block* block() const { return _block; }
375 ciBytecodeStream& iter() { return _iter; } 381 ciBytecodeStream& iter() { return _iter; }
376 Bytecodes::Code bc() const { return _iter.cur_bc(); } 382 Bytecodes::Code bc() const { return _iter.cur_bc(); }
377 383
510 void do_get_xxx(Node* obj, ciField* field, bool is_field); 516 void do_get_xxx(Node* obj, ciField* field, bool is_field);
511 void do_put_xxx(Node* obj, ciField* field, bool is_field); 517 void do_put_xxx(Node* obj, ciField* field, bool is_field);
512 518
513 // loading from a constant field or the constant pool 519 // loading from a constant field or the constant pool
514 // returns false if push failed (non-perm field constants only, not ldcs) 520 // returns false if push failed (non-perm field constants only, not ldcs)
515 bool push_constant(ciConstant con, bool require_constant = false); 521 bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false);
516 522
517 // implementation of object creation bytecodes 523 // implementation of object creation bytecodes
518 void emit_guard_for_new(ciInstanceKlass* klass); 524 void emit_guard_for_new(ciInstanceKlass* klass);
519 void do_new(); 525 void do_new();
520 void do_newarray(BasicType elemtype); 526 void do_newarray(BasicType elemtype);