498 // Helper function to uncommon-trap or bailout for non-compilable call-sites
499 bool can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass *klass);
500
501 // Helper function to setup for type-profile based inlining
502 bool prepare_type_profile_inline(ciInstanceKlass* prof_klass, ciMethod* prof_method);
503
504 // Helper functions for type checking bytecodes:
505 void do_checkcast();
506 void do_instanceof();
507
508 // Helper functions for shifting & arithmetic
509 void modf();
510 void modd();
511 void l2f();
512
513 void do_irem();
514
515 // implementation of _get* and _put* bytecodes
516 void do_getstatic() { do_field_access(true, false); }
517 void do_getfield () { do_field_access(true, true); }
518 void do_vgetfield();
519 void do_putstatic() { do_field_access(false, false); }
520 void do_putfield () { do_field_access(false, true); }
521
522 // common code for making initial checks and forming addresses
523 void do_field_access(bool is_get, bool is_field);
524 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
525
526 // common code for actually performing the load or store
527 void do_get_xxx(Node* obj, ciField* field, bool is_field);
528 void do_put_xxx(Node* obj, ciField* field, bool is_field);
529
530 // implementation of object creation bytecodes
531 void emit_guard_for_new(ciInstanceKlass* klass);
532 void do_new();
533 void do_vdefault();
534 void do_vwithfield();
535 void do_newarray(BasicType elemtype);
536 void do_newarray();
537 void do_multianewarray();
538 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
|
498 // Helper function to uncommon-trap or bailout for non-compilable call-sites
499 bool can_not_compile_call_site(ciMethod *dest_method, ciInstanceKlass *klass);
500
501 // Helper function to setup for type-profile based inlining
502 bool prepare_type_profile_inline(ciInstanceKlass* prof_klass, ciMethod* prof_method);
503
504 // Helper functions for type checking bytecodes:
505 void do_checkcast();
506 void do_instanceof();
507
508 // Helper functions for shifting & arithmetic
509 void modf();
510 void modd();
511 void l2f();
512
513 void do_irem();
514
515 // implementation of _get* and _put* bytecodes
516 void do_getstatic() { do_field_access(true, false); }
517 void do_getfield () { do_field_access(true, true); }
518 void do_putstatic() { do_field_access(false, false); }
519 void do_putfield () { do_field_access(false, true); }
520
521 // common code for making initial checks and forming addresses
522 void do_field_access(bool is_get, bool is_field);
523 bool static_field_ok_in_clinit(ciField *field, ciMethod *method);
524
525 // common code for actually performing the load or store
526 void do_get_xxx(Node* obj, ciField* field, bool is_field);
527 void do_put_xxx(Node* obj, ciField* field, bool is_field);
528
529 // implementation of object creation bytecodes
530 void emit_guard_for_new(ciInstanceKlass* klass);
531 void do_new();
532 void do_vdefault();
533 void do_vwithfield();
534 void do_newarray(BasicType elemtype);
535 void do_newarray();
536 void do_multianewarray();
537 Node* expand_multianewarray(ciArrayKlass* array_klass, Node* *lengths, int ndimensions, int nargs);
|