501 void l2f();
502
503 void do_irem();
504
505 // implementation of _get* and _put* bytecodes
506 void do_getstatic() { do_field_access(true, false); }
507 void do_getfield () { do_field_access(true, true); }
508 void do_putstatic() { do_field_access(false, false); }
509 void do_putfield () { do_field_access(false, true); }
510
511 // common code for making initial checks and forming addresses
512 void do_field_access(bool is_get, bool is_field);
513 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
514
515 // common code for actually performing the load or store
516 void do_get_xxx(Node* obj, ciField* field, bool is_field);
517 void do_put_xxx(Node* obj, ciField* field, bool is_field);
518
519 // loading from a constant field or the constant pool
520 // returns false if push failed (non-perm field constants only, not ldcs)
521 bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false);
522
523 // implementation of object creation bytecodes
524 void emit_guard_for_new(ciInstanceKlass* klass);
525 void do_new();
526 void do_newarray(BasicType elemtype);
527 void do_anewarray();
528 void do_multianewarray();
529 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
530
531 // implementation of jsr/ret
532 void do_jsr();
533 void do_ret();
534
535 float dynamic_branch_prediction(float &cnt);
536 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci);
537 bool seems_never_taken(float prob);
538 bool seems_stable_comparison(BoolTest::mask btest, Node* c);
539
540 void do_ifnull(BoolTest::mask btest, Node* c);
541 void do_if(BoolTest::mask btest, Node* c);
|
501 void l2f();
502
503 void do_irem();
504
505 // implementation of _get* and _put* bytecodes
506 void do_getstatic() { do_field_access(true, false); }
507 void do_getfield () { do_field_access(true, true); }
508 void do_putstatic() { do_field_access(false, false); }
509 void do_putfield () { do_field_access(false, true); }
510
511 // common code for making initial checks and forming addresses
512 void do_field_access(bool is_get, bool is_field);
513 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
514
515 // common code for actually performing the load or store
516 void do_get_xxx(Node* obj, ciField* field, bool is_field);
517 void do_put_xxx(Node* obj, ciField* field, bool is_field);
518
519 // loading from a constant field or the constant pool
520 // returns false if push failed (non-perm field constants only, not ldcs)
521 bool push_constant(ciConstant con, bool require_constant = false, bool is_autobox_cache = false, const Type* basic_type = NULL);
522
523 // implementation of object creation bytecodes
524 void emit_guard_for_new(ciInstanceKlass* klass);
525 void do_new();
526 void do_newarray(BasicType elemtype);
527 void do_anewarray();
528 void do_multianewarray();
529 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
530
531 // implementation of jsr/ret
532 void do_jsr();
533 void do_ret();
534
535 float dynamic_branch_prediction(float &cnt);
536 float branch_prediction(float &cnt, BoolTest::mask btest, int target_bci);
537 bool seems_never_taken(float prob);
538 bool seems_stable_comparison(BoolTest::mask btest, Node* c);
539
540 void do_ifnull(BoolTest::mask btest, Node* c);
541 void do_if(BoolTest::mask btest, Node* c);
|