< prev index next >

src/hotspot/cpu/arm/c1_LIRAssembler_arm.cpp

Print this page

2542       // Receiver did not match any saved receiver and there is no empty row for it.
2543       // Increment total counter to indicate polymorphic case.
2544       __ ldr(tmp1, counter_addr);
2545       __ add(tmp1, tmp1, DataLayout::counter_increment);
2546       __ str(tmp1, counter_addr);
2547 
2548       __ bind(update_done);
2549     }
2550   } else {
2551     // Static call
2552     __ ldr(tmp1, counter_addr);
2553     __ add(tmp1, tmp1, DataLayout::counter_increment);
2554     __ str(tmp1, counter_addr);
2555   }
2556 }
2557 
2558 void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
2559   fatal("Type profiling not implemented on this platform");
2560 }
2561 




2562 void LIR_Assembler::monitor_address(int monitor_no, LIR_Opr dst) {
2563   Address mon_addr = frame_map()->address_for_monitor_lock(monitor_no);
2564   __ add_slow(dst->as_pointer_register(), mon_addr.base(), mon_addr.disp());
2565 }
2566 
2567 
2568 void LIR_Assembler::align_backward_branch_target() {
2569   // Some ARM processors do better with 8-byte branch target alignment
2570   __ align(8);
2571 }
2572 
2573 
2574 void LIR_Assembler::negate(LIR_Opr left, LIR_Opr dest, LIR_Opr tmp) {
2575   // tmp must be unused
2576   assert(tmp->is_illegal(), "wasting a register if tmp is allocated");
2577 
2578   if (left->is_single_cpu()) {
2579     assert (dest->type() == T_INT, "unexpected result type");
2580     assert (left->type() == T_INT, "unexpected left type");
2581     __ neg_32(dest->as_register(), left->as_register());

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