< prev index next >

src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp

Print this page

2551       // Receiver did not match any saved receiver and there is no empty row for it.
2552       // Increment total counter to indicate polymorphic case.
2553       __ ldr(tmp1, counter_addr);
2554       __ add(tmp1, tmp1, DataLayout::counter_increment);
2555       __ str(tmp1, counter_addr);
2556 
2557       __ bind(update_done);
2558     }
2559   } else {
2560     // Static call
2561     __ ldr(tmp1, counter_addr);
2562     __ add(tmp1, tmp1, DataLayout::counter_increment);
2563     __ str(tmp1, counter_addr);
2564   }
2565 }
2566 
2567 void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
2568   fatal("Type profiling not implemented on this platform");
2569 }
2570 




2571 void LIR_Assembler::emit_delay(LIR_OpDelay*) {
2572   Unimplemented();
2573 }
2574 
2575 
2576 void LIR_Assembler::monitor_address(int monitor_no, LIR_Opr dst) {
2577   Address mon_addr = frame_map()->address_for_monitor_lock(monitor_no);
2578   __ add_slow(dst->as_pointer_register(), mon_addr.base(), mon_addr.disp());
2579 }
2580 
2581 
2582 void LIR_Assembler::align_backward_branch_target() {
2583   // Some ARM processors do better with 8-byte branch target alignment
2584   __ align(8);
2585 }
2586 
2587 
2588 void LIR_Assembler::negate(LIR_Opr left, LIR_Opr dest, LIR_Opr tmp) {
2589   // tmp must be unused
2590   assert(tmp->is_illegal(), "wasting a register if tmp is allocated");

2551       // Receiver did not match any saved receiver and there is no empty row for it.
2552       // Increment total counter to indicate polymorphic case.
2553       __ ldr(tmp1, counter_addr);
2554       __ add(tmp1, tmp1, DataLayout::counter_increment);
2555       __ str(tmp1, counter_addr);
2556 
2557       __ bind(update_done);
2558     }
2559   } else {
2560     // Static call
2561     __ ldr(tmp1, counter_addr);
2562     __ add(tmp1, tmp1, DataLayout::counter_increment);
2563     __ str(tmp1, counter_addr);
2564   }
2565 }
2566 
2567 void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
2568   fatal("Type profiling not implemented on this platform");
2569 }
2570 
2571 void LIR_Assembler::emit_profile_inline_type(LIR_OpProfileInlineType* op) {
2572   Unimplemented();
2573 }
2574 
2575 void LIR_Assembler::emit_delay(LIR_OpDelay*) {
2576   Unimplemented();
2577 }
2578 
2579 
2580 void LIR_Assembler::monitor_address(int monitor_no, LIR_Opr dst) {
2581   Address mon_addr = frame_map()->address_for_monitor_lock(monitor_no);
2582   __ add_slow(dst->as_pointer_register(), mon_addr.base(), mon_addr.disp());
2583 }
2584 
2585 
2586 void LIR_Assembler::align_backward_branch_target() {
2587   // Some ARM processors do better with 8-byte branch target alignment
2588   __ align(8);
2589 }
2590 
2591 
2592 void LIR_Assembler::negate(LIR_Opr left, LIR_Opr dest, LIR_Opr tmp) {
2593   // tmp must be unused
2594   assert(tmp->is_illegal(), "wasting a register if tmp is allocated");
< prev index next >