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) { |