Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/interp_masm_sparc.cpp @ 14704:b51e29501f30
Merged with jdk9/dev/hotspot changeset 9486a41de3b7
author | twisti |
---|---|
date | Tue, 18 Mar 2014 20:19:10 -0700 |
parents | d8041d695d19 d3f14809b051 |
children | 92aa6797d639 |
comparison
equal
deleted
inserted
replaced
14647:8f483e200405 | 14704:b51e29501f30 |
---|---|
2545 | 2545 |
2546 | 2546 |
2547 void InterpreterMacroAssembler::verify_FPU(int stack_depth, TosState state) { | 2547 void InterpreterMacroAssembler::verify_FPU(int stack_depth, TosState state) { |
2548 if (state == ftos || state == dtos) MacroAssembler::verify_FPU(stack_depth); | 2548 if (state == ftos || state == dtos) MacroAssembler::verify_FPU(stack_depth); |
2549 } | 2549 } |
2550 | |
2551 | |
2552 // Jump if ((*counter_addr += increment) & mask) satisfies the condition. | |
2553 void InterpreterMacroAssembler::increment_mask_and_jump(Address counter_addr, | |
2554 int increment, int mask, | |
2555 Register scratch1, Register scratch2, | |
2556 Condition cond, Label *where) { | |
2557 ld(counter_addr, scratch1); | |
2558 add(scratch1, increment, scratch1); | |
2559 if (is_simm13(mask)) { | |
2560 andcc(scratch1, mask, G0); | |
2561 } else { | |
2562 set(mask, scratch2); | |
2563 andcc(scratch1, scratch2, G0); | |
2564 } | |
2565 br(cond, false, Assembler::pn, *where); | |
2566 delayed()->st(scratch1, counter_addr); | |
2567 } | |
2550 #endif /* CC_INTERP */ | 2568 #endif /* CC_INTERP */ |
2551 | 2569 |
2552 // Inline assembly for: | 2570 // Inline assembly for: |
2553 // | 2571 // |
2554 // if (thread is in interp_only_mode) { | 2572 // if (thread is in interp_only_mode) { |
2694 } else { | 2712 } else { |
2695 pop(state); | 2713 pop(state); |
2696 } | 2714 } |
2697 #endif // CC_INTERP | 2715 #endif // CC_INTERP |
2698 } | 2716 } |
2699 | |
2700 // Jump if ((*counter_addr += increment) & mask) satisfies the condition. | |
2701 void InterpreterMacroAssembler::increment_mask_and_jump(Address counter_addr, | |
2702 int increment, int mask, | |
2703 Register scratch1, Register scratch2, | |
2704 Condition cond, Label *where) { | |
2705 ld(counter_addr, scratch1); | |
2706 add(scratch1, increment, scratch1); | |
2707 if (is_simm13(mask)) { | |
2708 andcc(scratch1, mask, G0); | |
2709 } else { | |
2710 set(mask, scratch2); | |
2711 andcc(scratch1, scratch2, G0); | |
2712 } | |
2713 br(cond, false, Assembler::pn, *where); | |
2714 delayed()->st(scratch1, counter_addr); | |
2715 } |