hotspot/src/share/vm/c1/c1_LIRAssembler.cpp
changeset 1066 717c3345024f
parent 1 489c9b5090e2
child 1217 5eb97f366a6a
child 1394 43b4b8b54e65
equal deleted inserted replaced
1065:dbeb68f8a0ee 1066:717c3345024f
   213     block->print(ip);
   213     block->print(ip);
   214   }
   214   }
   215 #endif /* PRODUCT */
   215 #endif /* PRODUCT */
   216 
   216 
   217   assert(block->lir() != NULL, "must have LIR");
   217   assert(block->lir() != NULL, "must have LIR");
   218   IA32_ONLY(assert(_masm->rsp_offset() == 0, "frame size should be fixed"));
   218   X86_ONLY(assert(_masm->rsp_offset() == 0, "frame size should be fixed"));
   219 
   219 
   220 #ifndef PRODUCT
   220 #ifndef PRODUCT
   221   if (CommentedAssembly) {
   221   if (CommentedAssembly) {
   222     stringStream st;
   222     stringStream st;
   223     st.print_cr(" block B%d [%d, %d]", block->block_id(), block->bci(), block->end()->bci());
   223     st.print_cr(" block B%d [%d, %d]", block->block_id(), block->bci(), block->end()->bci());
   225   }
   225   }
   226 #endif
   226 #endif
   227 
   227 
   228   emit_lir_list(block->lir());
   228   emit_lir_list(block->lir());
   229 
   229 
   230   IA32_ONLY(assert(_masm->rsp_offset() == 0, "frame size should be fixed"));
   230   X86_ONLY(assert(_masm->rsp_offset() == 0, "frame size should be fixed"));
   231 }
   231 }
   232 
   232 
   233 
   233 
   234 void LIR_Assembler::emit_lir_list(LIR_List* list) {
   234 void LIR_Assembler::emit_lir_list(LIR_List* list) {
   235   peephole(list);
   235   peephole(list);
   432   case lir_virtual_call:
   432   case lir_virtual_call:
   433     vtable_call(op->vtable_offset(), op->info());
   433     vtable_call(op->vtable_offset(), op->info());
   434     break;
   434     break;
   435   default: ShouldNotReachHere();
   435   default: ShouldNotReachHere();
   436   }
   436   }
   437 #if defined(IA32) && defined(TIERED)
   437 #if defined(X86) && defined(TIERED)
   438   // C2 leave fpu stack dirty clean it
   438   // C2 leave fpu stack dirty clean it
   439   if (UseSSE < 2) {
   439   if (UseSSE < 2) {
   440     int i;
   440     int i;
   441     for ( i = 1; i <= 7 ; i++ ) {
   441     for ( i = 1; i <= 7 ; i++ ) {
   442       ffree(i);
   442       ffree(i);
   443     }
   443     }
   444     if (!op->result_opr()->is_float_kind()) {
   444     if (!op->result_opr()->is_float_kind()) {
   445       ffree(0);
   445       ffree(0);
   446     }
   446     }
   447   }
   447   }
   448 #endif // IA32 && TIERED
   448 #endif // X86 && TIERED
   449 }
   449 }
   450 
   450 
   451 
   451 
   452 void LIR_Assembler::emit_opLabel(LIR_OpLabel* op) {
   452 void LIR_Assembler::emit_opLabel(LIR_OpLabel* op) {
   453   _masm->bind (*(op->label()));
   453   _masm->bind (*(op->label()));