< prev index next >

src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp

Print this page

2530       // Receiver did not match any saved receiver and there is no empty row for it.
2531       // Increment total counter to indicate polymorphic case.
2532       __ ldr(tmp1, counter_addr);
2533       __ add(tmp1, tmp1, DataLayout::counter_increment);
2534       __ str(tmp1, counter_addr);
2535 
2536       __ bind(update_done);
2537     }
2538   } else {
2539     // Static call
2540     __ ldr(tmp1, counter_addr);
2541     __ add(tmp1, tmp1, DataLayout::counter_increment);
2542     __ str(tmp1, counter_addr);
2543   }
2544 }
2545 
2546 void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
2547   fatal("Type profiling not implemented on this platform");
2548 }
2549 




2550 void LIR_Assembler::emit_delay(LIR_OpDelay*) {
2551   Unimplemented();
2552 }
2553 
2554 
2555 void LIR_Assembler::monitor_address(int monitor_no, LIR_Opr dst) {
2556   Address mon_addr = frame_map()->address_for_monitor_lock(monitor_no);
2557   __ add_slow(dst->as_pointer_register(), mon_addr.base(), mon_addr.disp());
2558 }
2559 
2560 
2561 void LIR_Assembler::align_backward_branch_target() {
2562   // Some ARM processors do better with 8-byte branch target alignment
2563   __ align(8);
2564 }
2565 
2566 
2567 void LIR_Assembler::negate(LIR_Opr left, LIR_Opr dest, LIR_Opr tmp) {
2568   // tmp must be unused
2569   assert(tmp->is_illegal(), "wasting a register if tmp is allocated");

2530       // Receiver did not match any saved receiver and there is no empty row for it.
2531       // Increment total counter to indicate polymorphic case.
2532       __ ldr(tmp1, counter_addr);
2533       __ add(tmp1, tmp1, DataLayout::counter_increment);
2534       __ str(tmp1, counter_addr);
2535 
2536       __ bind(update_done);
2537     }
2538   } else {
2539     // Static call
2540     __ ldr(tmp1, counter_addr);
2541     __ add(tmp1, tmp1, DataLayout::counter_increment);
2542     __ str(tmp1, counter_addr);
2543   }
2544 }
2545 
2546 void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
2547   fatal("Type profiling not implemented on this platform");
2548 }
2549 
2550 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
2551   Unimplemented();
2552 }
2553 
2554 void LIR_Assembler::emit_delay(LIR_OpDelay*) {
2555   Unimplemented();
2556 }
2557 
2558 
2559 void LIR_Assembler::monitor_address(int monitor_no, LIR_Opr dst) {
2560   Address mon_addr = frame_map()->address_for_monitor_lock(monitor_no);
2561   __ add_slow(dst->as_pointer_register(), mon_addr.base(), mon_addr.disp());
2562 }
2563 
2564 
2565 void LIR_Assembler::align_backward_branch_target() {
2566   // Some ARM processors do better with 8-byte branch target alignment
2567   __ align(8);
2568 }
2569 
2570 
2571 void LIR_Assembler::negate(LIR_Opr left, LIR_Opr dest, LIR_Opr tmp) {
2572   // tmp must be unused
2573   assert(tmp->is_illegal(), "wasting a register if tmp is allocated");
< prev index next >