538 // common code for actually performing the load or store
539 void do_get_xxx(Node* obj, ciField* field, bool is_field);
540 void do_put_xxx(Node* obj, ciField* field, bool is_field);
541
542 // loading from a constant field or the constant pool
543 // returns false if push failed (non-perm field constants only, not ldcs)
544 bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false, const Type* basic_type = NULL);
545
546 // implementation of object creation bytecodes
547 void emit_guard_for_new(ciInstanceKlass* klass);
548 void do_new();
549 void do_newarray(BasicType elemtype);
550 void do_anewarray();
551 void do_multianewarray();
552 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
553
554 // implementation of jsr/ret
555 void do_jsr();
556 void do_ret();
557
558 float dynamic_branch_prediction(float &cnt);
559 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci);
560 bool seems_never_taken(float prob) const;
561 bool path_is_suitable_for_uncommon_trap(float prob) const;
562 bool seems_stable_comparison() const;
563
564 void do_ifnull(BoolTest::mask btest, Node* c);
565 void do_if(BoolTest::mask btest, Node* c);
566 int repush_if_args();
567 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
568 Block* path, Block* other_path);
569 void sharpen_type_after_if(BoolTest::mask btest,
570 Node* con, const Type* tcon,
571 Node* val, const Type* tval);
572 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
573 Node* jump_if_join(Node* iffalse, Node* iftrue);
574 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
575 void jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
576 void jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
577
578 friend class SwitchRange;
579 void do_tableswitch();
|
538 // common code for actually performing the load or store
539 void do_get_xxx(Node* obj, ciField* field, bool is_field);
540 void do_put_xxx(Node* obj, ciField* field, bool is_field);
541
542 // loading from a constant field or the constant pool
543 // returns false if push failed (non-perm field constants only, not ldcs)
544 bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false, const Type* basic_type = NULL);
545
546 // implementation of object creation bytecodes
547 void emit_guard_for_new(ciInstanceKlass* klass);
548 void do_new();
549 void do_newarray(BasicType elemtype);
550 void do_anewarray();
551 void do_multianewarray();
552 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
553
554 // implementation of jsr/ret
555 void do_jsr();
556 void do_ret();
557
558 float dynamic_branch_prediction(float &cnt, BoolTest::mask btest, Node* test);
559 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci, Node* test);
560 bool seems_never_taken(float prob) const;
561 bool path_is_suitable_for_uncommon_trap(float prob) const;
562 bool seems_stable_comparison() const;
563
564 void do_ifnull(BoolTest::mask btest, Node* c);
565 void do_if(BoolTest::mask btest, Node* c);
566 int repush_if_args();
567 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
568 Block* path, Block* other_path);
569 void sharpen_type_after_if(BoolTest::mask btest,
570 Node* con, const Type* tcon,
571 Node* val, const Type* tval);
572 IfNode* jump_if_fork_int(Node* a, Node* b, BoolTest::mask mask);
573 Node* jump_if_join(Node* iffalse, Node* iftrue);
574 void jump_if_true_fork(IfNode *ifNode, int dest_bci_if_true, int prof_table_index);
575 void jump_if_false_fork(IfNode *ifNode, int dest_bci_if_false, int prof_table_index);
576 void jump_if_always_fork(int dest_bci_if_true, int prof_table_index);
577
578 friend class SwitchRange;
579 void do_tableswitch();
|