522 void modf(); 523 void modd(); 524 void l2f(); 525 526 void do_irem(); 527 528 // implementation of _get* and _put* bytecodes 529 void do_getstatic() { do_field_access(true, false); } 530 void do_getfield () { do_field_access(true, true); } 531 void do_putstatic() { do_field_access(false, false); } 532 void do_putfield () { do_field_access(false, true); } 533 534 // common code for making initial checks and forming addresses 535 void do_field_access(bool is_get, bool is_field); 536 bool static_field_ok_in_clinit(ciField *field, ciMethod *method); 537 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); | 522 void modf(); 523 void modd(); 524 void l2f(); 525 526 void do_irem(); 527 528 // implementation of _get* and _put* bytecodes 529 void do_getstatic() { do_field_access(true, false); } 530 void do_getfield () { do_field_access(true, true); } 531 void do_putstatic() { do_field_access(false, false); } 532 void do_putfield () { do_field_access(false, true); } 533 534 // common code for making initial checks and forming addresses 535 void do_field_access(bool is_get, bool is_field); 536 bool static_field_ok_in_clinit(ciField *field, ciMethod *method); 537 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 // implementation of object creation bytecodes 543 void emit_guard_for_new(ciInstanceKlass* klass); 544 void do_new(); 545 void do_newarray(BasicType elemtype); 546 void do_anewarray(); 547 void do_multianewarray(); 548 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs); 549 550 // implementation of jsr/ret 551 void do_jsr(); 552 void do_ret(); 553 554 float dynamic_branch_prediction(float &cnt, BoolTest::mask btest, Node* test); 555 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci, Node* test); 556 bool seems_never_taken(float prob) const; 557 bool path_is_suitable_for_uncommon_trap(float prob) const; 558 bool seems_stable_comparison() const; 559 560 void do_ifnull(BoolTest::mask btest, Node* c); 561 void do_if(BoolTest::mask btest, Node* c); |