494
495 // when blocks are merged
496 void fixup_block_pointers() {
497 Instruction *cur = next()->next(); // next()'s block is set in set_next
498 while (cur && cur->_block != block()) {
499 cur->_block = block();
500 cur = cur->next();
501 }
502 }
503
504 Instruction *insert_after(Instruction *i) {
505 Instruction* n = _next;
506 set_next(i);
507 i->set_next(n);
508 return _next;
509 }
510
511 bool is_flattened_array() const; // FIXME -- remove it
512
513 bool is_loaded_flattened_array() const;
514 bool maybe_flattened_array() const;
515
516 Instruction *insert_after_same_bci(Instruction *i) {
517 #ifndef PRODUCT
518 i->set_printable_bci(printable_bci());
519 #endif
520 return insert_after(i);
521 }
522
523 void set_subst(Instruction* subst) {
524 assert(subst == NULL ||
525 type()->base() == subst->type()->base() ||
526 subst->type()->base() == illegalType, "type can't change");
527 _subst = subst;
528 }
529 void set_exception_handlers(XHandlers *xhandlers) { _exception_handlers = xhandlers; }
530 void set_exception_state(ValueStack* s) { check_state(s); _exception_state = s; }
531 void set_state_before(ValueStack* s) { check_state(s); _state_before = s; }
532
533 // machine-specifics
534 void set_operand(LIR_Opr operand) { assert(operand != LIR_OprFact::illegalOpr, "operand must exist"); _operand = operand; }
|
494
495 // when blocks are merged
496 void fixup_block_pointers() {
497 Instruction *cur = next()->next(); // next()'s block is set in set_next
498 while (cur && cur->_block != block()) {
499 cur->_block = block();
500 cur = cur->next();
501 }
502 }
503
504 Instruction *insert_after(Instruction *i) {
505 Instruction* n = _next;
506 set_next(i);
507 i->set_next(n);
508 return _next;
509 }
510
511 bool is_flattened_array() const; // FIXME -- remove it
512
513 bool is_loaded_flattened_array() const;
514 bool maybe_flattened_array();
515
516 Instruction *insert_after_same_bci(Instruction *i) {
517 #ifndef PRODUCT
518 i->set_printable_bci(printable_bci());
519 #endif
520 return insert_after(i);
521 }
522
523 void set_subst(Instruction* subst) {
524 assert(subst == NULL ||
525 type()->base() == subst->type()->base() ||
526 subst->type()->base() == illegalType, "type can't change");
527 _subst = subst;
528 }
529 void set_exception_handlers(XHandlers *xhandlers) { _exception_handlers = xhandlers; }
530 void set_exception_state(ValueStack* s) { check_state(s); _exception_state = s; }
531 void set_state_before(ValueStack* s) { check_state(s); _state_before = s; }
532
533 // machine-specifics
534 void set_operand(LIR_Opr operand) { assert(operand != LIR_OprFact::illegalOpr, "operand must exist"); _operand = operand; }
|