518 // implementation of _get* and _put* bytecodes
519 void do_getstatic() { do_field_access(true, false); }
520 void do_getfield () { do_field_access(true, true); }
521 void do_vgetfield();
522 void do_putstatic() { do_field_access(false, false); }
523 void do_putfield () { do_field_access(false, true); }
524
525 // common code for making initial checks and forming addresses
526 void do_field_access(bool is_get, bool is_field);
527 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
528
529 // common code for actually performing the load or store
530 void do_get_xxx(Node* obj, ciField* field, bool is_field);
531 void do_put_xxx(Node* obj, ciField* field, bool is_field);
532
533 // implementation of object creation bytecodes
534 void emit_guard_for_new(ciInstanceKlass* klass);
535 void do_new();
536 void do_vnew();
537 void do_newarray(BasicType elemtype);
538 void do_anewarray();
539 void do_multianewarray();
540 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
541
542 void do_vbox();
543 void do_vunbox();
544
545 // implementation of jsr/ret
546 void do_jsr();
547 void do_ret();
548
549 float dynamic_branch_prediction(float &cnt, BoolTest::mask btest, Node* test);
550 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci, Node* test);
551 bool seems_never_taken(float prob) const;
552 bool path_is_suitable_for_uncommon_trap(float prob) const;
553 bool seems_stable_comparison() const;
554
555 void do_ifnull(BoolTest::mask btest, Node* c);
556 void do_if(BoolTest::mask btest, Node* c);
557 int repush_if_args();
558 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
|
518 // implementation of _get* and _put* bytecodes
519 void do_getstatic() { do_field_access(true, false); }
520 void do_getfield () { do_field_access(true, true); }
521 void do_vgetfield();
522 void do_putstatic() { do_field_access(false, false); }
523 void do_putfield () { do_field_access(false, true); }
524
525 // common code for making initial checks and forming addresses
526 void do_field_access(bool is_get, bool is_field);
527 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
528
529 // common code for actually performing the load or store
530 void do_get_xxx(Node* obj, ciField* field, bool is_field);
531 void do_put_xxx(Node* obj, ciField* field, bool is_field);
532
533 // implementation of object creation bytecodes
534 void emit_guard_for_new(ciInstanceKlass* klass);
535 void do_new();
536 void do_vnew();
537 void do_newarray(BasicType elemtype);
538 void do_newarray();
539 void do_multianewarray();
540 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
541
542 void do_vbox();
543 void do_vunbox();
544
545 // implementation of jsr/ret
546 void do_jsr();
547 void do_ret();
548
549 float dynamic_branch_prediction(float &cnt, BoolTest::mask btest, Node* test);
550 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci, Node* test);
551 bool seems_never_taken(float prob) const;
552 bool path_is_suitable_for_uncommon_trap(float prob) const;
553 bool seems_stable_comparison() const;
554
555 void do_ifnull(BoolTest::mask btest, Node* c);
556 void do_if(BoolTest::mask btest, Node* c);
557 int repush_if_args();
558 void adjust_map_after_if(BoolTest::mask btest, Node* c, float prob,
|