< prev index next >

src/hotspot/cpu/x86/c1_MacroAssembler_x86.cpp

Print this page




 323   push(rbp);
 324   if (PreserveFramePointer) {
 325     mov(rbp, rsp);
 326   }
 327 #ifdef TIERED
 328   // c2 leaves fpu stack dirty. Clean it on entry
 329   if (UseSSE < 2 ) {
 330     empty_FPU_stack();
 331   }
 332 #endif // TIERED
 333   decrement(rsp, frame_size_in_bytes); // does not emit code for frame_size == 0
 334 }
 335 
 336 
 337 void C1_MacroAssembler::remove_frame(int frame_size_in_bytes) {
 338   increment(rsp, frame_size_in_bytes);  // Does not emit code for frame_size == 0
 339   pop(rbp);
 340 }
 341 
 342 
 343 void C1_MacroAssembler::unverified_entry(Register receiver, Register ic_klass) {
 344   if (C1Breakpoint) int3();
 345   inline_cache_check(receiver, ic_klass);
 346 }
 347 
 348 
 349 void C1_MacroAssembler::verified_entry() {
 350   if (C1Breakpoint || VerifyFPU || !UseStackBanging) {
 351     // Verified Entry first instruction should be 5 bytes long for correct
 352     // patching by patch_verified_entry().
 353     //
 354     // C1Breakpoint and VerifyFPU have one byte first instruction.
 355     // Also first instruction will be one byte "push(rbp)" if stack banging
 356     // code is not generated (see build_frame() above).
 357     // For all these cases generate long instruction first.
 358     fat_nop();
 359   }
 360   if (C1Breakpoint)int3();
 361   // build frame
 362   verify_FPU(0, "method_entry");
 363 }
 364 
 365 
 366 #ifndef PRODUCT
 367 
 368 void C1_MacroAssembler::verify_stack_oop(int stack_offset) {




 323   push(rbp);
 324   if (PreserveFramePointer) {
 325     mov(rbp, rsp);
 326   }
 327 #ifdef TIERED
 328   // c2 leaves fpu stack dirty. Clean it on entry
 329   if (UseSSE < 2 ) {
 330     empty_FPU_stack();
 331   }
 332 #endif // TIERED
 333   decrement(rsp, frame_size_in_bytes); // does not emit code for frame_size == 0
 334 }
 335 
 336 
 337 void C1_MacroAssembler::remove_frame(int frame_size_in_bytes) {
 338   increment(rsp, frame_size_in_bytes);  // Does not emit code for frame_size == 0
 339   pop(rbp);
 340 }
 341 
 342 






 343 void C1_MacroAssembler::verified_entry() {
 344   if (C1Breakpoint || VerifyFPU || !UseStackBanging) {
 345     // Verified Entry first instruction should be 5 bytes long for correct
 346     // patching by patch_verified_entry().
 347     //
 348     // C1Breakpoint and VerifyFPU have one byte first instruction.
 349     // Also first instruction will be one byte "push(rbp)" if stack banging
 350     // code is not generated (see build_frame() above).
 351     // For all these cases generate long instruction first.
 352     fat_nop();
 353   }
 354   if (C1Breakpoint)int3();
 355   // build frame
 356   verify_FPU(0, "method_entry");
 357 }
 358 
 359 
 360 #ifndef PRODUCT
 361 
 362 void C1_MacroAssembler::verify_stack_oop(int stack_offset) {


< prev index next >