512 void do_instanceof();
513
514 // Helper functions for shifting & arithmetic
515 void modf();
516 void modd();
517 void l2f();
518
519 void do_irem();
520
521 // implementation of _get* and _put* bytecodes
522 void do_getstatic() { do_field_access(true, false); }
523 void do_getfield () { do_field_access(true, true); }
524 void do_putstatic() { do_field_access(false, false); }
525 void do_putfield () { do_field_access(false, true); }
526
527 // common code for making initial checks and forming addresses
528 void do_field_access(bool is_get, bool is_field);
529 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
530
531 // common code for actually performing the load or store
532 void do_get_xxx(Node* obj, ciField* field, bool is_field);
533 void do_put_xxx(Node* obj, ciField* field, bool is_field);
534
535 // implementation of object creation bytecodes
536 void emit_guard_for_new(ciInstanceKlass* klass);
537 void do_new();
538 void do_defaultvalue();
539 void do_withfield();
540 void do_newarray(BasicType elemtype);
541 void do_newarray();
542 void do_multianewarray();
543 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
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;
|
512 void do_instanceof();
513
514 // Helper functions for shifting & arithmetic
515 void modf();
516 void modd();
517 void l2f();
518
519 void do_irem();
520
521 // implementation of _get* and _put* bytecodes
522 void do_getstatic() { do_field_access(true, false); }
523 void do_getfield () { do_field_access(true, true); }
524 void do_putstatic() { do_field_access(false, false); }
525 void do_putfield () { do_field_access(false, true); }
526
527 // common code for making initial checks and forming addresses
528 void do_field_access(bool is_get, bool is_field);
529 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
530
531 // common code for actually performing the load or store
532 void do_get_xxx(Node* obj, ciField* field);
533 void do_put_xxx(Node* obj, ciField* field, bool is_field);
534
535 // implementation of object creation bytecodes
536 void emit_guard_for_new(ciInstanceKlass* klass);
537 void do_new();
538 void do_defaultvalue();
539 void do_withfield();
540 void do_newarray(BasicType elemtype);
541 void do_newarray();
542 void do_multianewarray();
543 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
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;
|