459 void do_putstatic() { do_field_access(false, false); }
460 void do_putfield () { do_field_access(false, true); }
461
462 // common code for making initial checks and forming addresses
463 void do_field_access(bool is_get, bool is_field);
464 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
465
466 // common code for actually performing the load or store
467 void do_get_xxx(const TypePtr* obj_type, Node* obj, ciField* field, bool is_field);
468 void do_put_xxx(const TypePtr* obj_type, Node* obj, ciField* field, bool is_field);
469
470 // loading from a constant field or the constant pool
471 // returns false if push failed (non-perm field constants only, not ldcs)
472 bool push_constant(ciConstant con);
473
474 // implementation of object creation bytecodes
475 void do_new();
476 void do_newarray(BasicType elemtype);
477 void do_anewarray();
478 void do_multianewarray();
479 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions);
480
481 // implementation of jsr/ret
482 void do_jsr();
483 void do_ret();
484
485 float dynamic_branch_prediction(float &cnt);
486 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci);
487 bool seems_never_taken(float prob);
488
489 void do_ifnull(BoolTest::mask btest, Node* c);
490 void do_if(BoolTest::mask btest, Node* c);
491 void repush_if_args();
492 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
493 Block* path, Block* other_path);
494 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
495 Node* jump_if_join(Node* iffalse, Node* iftrue);
496 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
497 void jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
498 void jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
499
|
459 void do_putstatic() { do_field_access(false, false); }
460 void do_putfield () { do_field_access(false, true); }
461
462 // common code for making initial checks and forming addresses
463 void do_field_access(bool is_get, bool is_field);
464 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
465
466 // common code for actually performing the load or store
467 void do_get_xxx(const TypePtr* obj_type, Node* obj, ciField* field, bool is_field);
468 void do_put_xxx(const TypePtr* obj_type, Node* obj, ciField* field, bool is_field);
469
470 // loading from a constant field or the constant pool
471 // returns false if push failed (non-perm field constants only, not ldcs)
472 bool push_constant(ciConstant con);
473
474 // implementation of object creation bytecodes
475 void do_new();
476 void do_newarray(BasicType elemtype);
477 void do_anewarray();
478 void do_multianewarray();
479 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
480
481 // implementation of jsr/ret
482 void do_jsr();
483 void do_ret();
484
485 float dynamic_branch_prediction(float &cnt);
486 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci);
487 bool seems_never_taken(float prob);
488
489 void do_ifnull(BoolTest::mask btest, Node* c);
490 void do_if(BoolTest::mask btest, Node* c);
491 void repush_if_args();
492 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
493 Block* path, Block* other_path);
494 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
495 Node* jump_if_join(Node* iffalse, Node* iftrue);
496 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
497 void jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
498 void jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
499
|