< prev index next >

src/hotspot/share/c1/c1_LIRAssembler.cpp

Print this page
rev 59189 : imported patch hotspot


 555 
 556     case lir_leal:
 557       leal(op->in_opr(), op->result_opr(), op->patch_code(), op->info());
 558       break;
 559 
 560     case lir_null_check: {
 561       ImplicitNullCheckStub* stub = add_debug_info_for_null_check_here(op->info());
 562 
 563       if (op->in_opr()->is_single_cpu()) {
 564         _masm->null_check(op->in_opr()->as_register(), stub->entry());
 565       } else {
 566         Unimplemented();
 567       }
 568       break;
 569     }
 570 
 571     case lir_monaddr:
 572       monitor_address(op->in_opr()->as_constant_ptr()->as_jint(), op->result_opr());
 573       break;
 574 
 575 #ifdef SPARC
 576     case lir_pack64:
 577       pack64(op->in_opr(), op->result_opr());
 578       break;
 579 
 580     case lir_unpack64:
 581       unpack64(op->in_opr(), op->result_opr());
 582       break;
 583 #endif
 584 
 585     case lir_unwind:
 586       unwind_op(op->in_opr());
 587       break;
 588 
 589     default:
 590       Unimplemented();
 591       break;
 592   }
 593 }
 594 
 595 
 596 void LIR_Assembler::emit_op0(LIR_Op0* op) {
 597   switch (op->code()) {
 598     case lir_nop:
 599       assert(op->info() == NULL, "not supported");
 600       _masm->nop();
 601       break;
 602 
 603     case lir_label:
 604       Unimplemented();


 818   } else if (src->is_address()) {
 819     mem2reg(src, dest, type, patch_code, info, wide, unaligned);
 820 
 821   } else {
 822     ShouldNotReachHere();
 823   }
 824 }
 825 
 826 
 827 void LIR_Assembler::verify_oop_map(CodeEmitInfo* info) {
 828 #ifndef PRODUCT
 829   if (VerifyOops) {
 830     OopMapStream s(info->oop_map());
 831     while (!s.is_done()) {
 832       OopMapValue v = s.current();
 833       if (v.is_oop()) {
 834         VMReg r = v.reg();
 835         if (!r->is_stack()) {
 836           stringStream st;
 837           st.print("bad oop %s at %d", r->as_Register()->name(), _masm->offset());
 838 #ifdef SPARC
 839           _masm->_verify_oop(r->as_Register(), os::strdup(st.as_string(), mtCompiler), __FILE__, __LINE__);
 840 #else
 841           _masm->verify_oop(r->as_Register());
 842 #endif
 843         } else {
 844           _masm->verify_stack_oop(r->reg2stack() * VMRegImpl::stack_slot_size);
 845         }
 846       }
 847       check_codespace();
 848       CHECK_BAILOUT();
 849 
 850       s.next();
 851     }
 852   }
 853 #endif
 854 }


 555 
 556     case lir_leal:
 557       leal(op->in_opr(), op->result_opr(), op->patch_code(), op->info());
 558       break;
 559 
 560     case lir_null_check: {
 561       ImplicitNullCheckStub* stub = add_debug_info_for_null_check_here(op->info());
 562 
 563       if (op->in_opr()->is_single_cpu()) {
 564         _masm->null_check(op->in_opr()->as_register(), stub->entry());
 565       } else {
 566         Unimplemented();
 567       }
 568       break;
 569     }
 570 
 571     case lir_monaddr:
 572       monitor_address(op->in_opr()->as_constant_ptr()->as_jint(), op->result_opr());
 573       break;
 574 










 575     case lir_unwind:
 576       unwind_op(op->in_opr());
 577       break;
 578 
 579     default:
 580       Unimplemented();
 581       break;
 582   }
 583 }
 584 
 585 
 586 void LIR_Assembler::emit_op0(LIR_Op0* op) {
 587   switch (op->code()) {
 588     case lir_nop:
 589       assert(op->info() == NULL, "not supported");
 590       _masm->nop();
 591       break;
 592 
 593     case lir_label:
 594       Unimplemented();


 808   } else if (src->is_address()) {
 809     mem2reg(src, dest, type, patch_code, info, wide, unaligned);
 810 
 811   } else {
 812     ShouldNotReachHere();
 813   }
 814 }
 815 
 816 
 817 void LIR_Assembler::verify_oop_map(CodeEmitInfo* info) {
 818 #ifndef PRODUCT
 819   if (VerifyOops) {
 820     OopMapStream s(info->oop_map());
 821     while (!s.is_done()) {
 822       OopMapValue v = s.current();
 823       if (v.is_oop()) {
 824         VMReg r = v.reg();
 825         if (!r->is_stack()) {
 826           stringStream st;
 827           st.print("bad oop %s at %d", r->as_Register()->name(), _masm->offset());



 828           _masm->verify_oop(r->as_Register());

 829         } else {
 830           _masm->verify_stack_oop(r->reg2stack() * VMRegImpl::stack_slot_size);
 831         }
 832       }
 833       check_codespace();
 834       CHECK_BAILOUT();
 835 
 836       s.next();
 837     }
 838   }
 839 #endif
 840 }
< prev index next >