341 // Make sure there is enough stack space for this method's activation. 342 // Note that we do this before doing an enter(). 343 generate_stack_overflow_check(bang_size_in_bytes); 344 MacroAssembler::build_frame(framesize + 2 * wordSize); 345 if (NotifySimulator) { 346 notify(Assembler::method_entry); 347 } 348 } 349 350 void C1_MacroAssembler::remove_frame(int framesize) { 351 MacroAssembler::remove_frame(framesize + 2 * wordSize); 352 if (NotifySimulator) { 353 notify(Assembler::method_reentry); 354 } 355 } 356 357 358 void C1_MacroAssembler::verified_entry() { 359 } 360 361 #ifndef PRODUCT 362 363 void C1_MacroAssembler::verify_stack_oop(int stack_offset) { 364 if (!VerifyOops) return; 365 verify_oop_addr(Address(sp, stack_offset), "oop"); 366 } 367 368 void C1_MacroAssembler::verify_not_null_oop(Register r) { 369 if (!VerifyOops) return; 370 Label not_null; 371 cbnz(r, not_null); 372 stop("non-null oop required"); 373 bind(not_null); 374 verify_oop(r); 375 } 376 377 void C1_MacroAssembler::invalidate_registers(bool inv_r0, bool inv_r19, bool inv_r2, bool inv_r3, bool inv_r4, bool inv_r5) { 378 #ifdef ASSERT 379 static int nn; 380 if (inv_r0) mov(r0, 0xDEAD); | 341 // Make sure there is enough stack space for this method's activation. 342 // Note that we do this before doing an enter(). 343 generate_stack_overflow_check(bang_size_in_bytes); 344 MacroAssembler::build_frame(framesize + 2 * wordSize); 345 if (NotifySimulator) { 346 notify(Assembler::method_entry); 347 } 348 } 349 350 void C1_MacroAssembler::remove_frame(int framesize) { 351 MacroAssembler::remove_frame(framesize + 2 * wordSize); 352 if (NotifySimulator) { 353 notify(Assembler::method_reentry); 354 } 355 } 356 357 358 void C1_MacroAssembler::verified_entry() { 359 } 360 361 void C1_MacroAssembler::load_parameter(int offset_in_words, Register reg) { 362 // rbp, + 0: link 363 // + 1: return address 364 // + 2: argument with offset 0 365 // + 3: argument with offset 1 366 // + 4: ... 367 368 ldr(reg, Address(rfp, (offset_in_words + 2) * BytesPerWord)); 369 } 370 371 #ifndef PRODUCT 372 373 void C1_MacroAssembler::verify_stack_oop(int stack_offset) { 374 if (!VerifyOops) return; 375 verify_oop_addr(Address(sp, stack_offset), "oop"); 376 } 377 378 void C1_MacroAssembler::verify_not_null_oop(Register r) { 379 if (!VerifyOops) return; 380 Label not_null; 381 cbnz(r, not_null); 382 stop("non-null oop required"); 383 bind(not_null); 384 verify_oop(r); 385 } 386 387 void C1_MacroAssembler::invalidate_registers(bool inv_r0, bool inv_r19, bool inv_r2, bool inv_r3, bool inv_r4, bool inv_r5) { 388 #ifdef ASSERT 389 static int nn; 390 if (inv_r0) mov(r0, 0xDEAD); |