3566 %} |
3566 %} |
3567 |
3567 |
3568 // Pointer Immediate: 64-bit |
3568 // Pointer Immediate: 64-bit |
3569 // From Niagara2 processors on a load should be better than materializing. |
3569 // From Niagara2 processors on a load should be better than materializing. |
3570 operand immP_load() %{ |
3570 operand immP_load() %{ |
3571 predicate(VM_Version::is_niagara1_plus() && (n->bottom_type()->isa_oop_ptr() || (MacroAssembler::insts_for_set(n->get_ptr()) > 3))); |
3571 predicate(VM_Version::is_niagara_plus() && (n->bottom_type()->isa_oop_ptr() || (MacroAssembler::insts_for_set(n->get_ptr()) > 3))); |
3572 match(ConP); |
3572 match(ConP); |
3573 |
3573 |
3574 op_cost(5); |
3574 op_cost(5); |
3575 // formats are generated automatically for constants and base registers |
3575 // formats are generated automatically for constants and base registers |
3576 format %{ %} |
3576 format %{ %} |
3577 interface(CONST_INTER); |
3577 interface(CONST_INTER); |
3578 %} |
3578 %} |
3579 |
3579 |
3580 // Pointer Immediate: 64-bit |
3580 // Pointer Immediate: 64-bit |
3581 operand immP_no_oop_cheap() %{ |
3581 operand immP_no_oop_cheap() %{ |
3582 predicate(VM_Version::is_niagara1_plus() && !n->bottom_type()->isa_oop_ptr() && (MacroAssembler::insts_for_set(n->get_ptr()) <= 3)); |
3582 predicate(VM_Version::is_niagara_plus() && !n->bottom_type()->isa_oop_ptr() && (MacroAssembler::insts_for_set(n->get_ptr()) <= 3)); |
3583 match(ConP); |
3583 match(ConP); |
3584 |
3584 |
3585 op_cost(5); |
3585 op_cost(5); |
3586 // formats are generated automatically for constants and base registers |
3586 // formats are generated automatically for constants and base registers |
3587 format %{ %} |
3587 format %{ %} |
3684 interface(CONST_INTER); |
3684 interface(CONST_INTER); |
3685 %} |
3685 %} |
3686 |
3686 |
3687 // Long Immediate: cheap (materialize in <= 3 instructions) |
3687 // Long Immediate: cheap (materialize in <= 3 instructions) |
3688 operand immL_cheap() %{ |
3688 operand immL_cheap() %{ |
3689 predicate(!VM_Version::is_niagara1_plus() || MacroAssembler::insts_for_set64(n->get_long()) <= 3); |
3689 predicate(!VM_Version::is_niagara_plus() || MacroAssembler::insts_for_set64(n->get_long()) <= 3); |
3690 match(ConL); |
3690 match(ConL); |
3691 op_cost(0); |
3691 op_cost(0); |
3692 |
3692 |
3693 format %{ %} |
3693 format %{ %} |
3694 interface(CONST_INTER); |
3694 interface(CONST_INTER); |
3695 %} |
3695 %} |
3696 |
3696 |
3697 // Long Immediate: expensive (materialize in > 3 instructions) |
3697 // Long Immediate: expensive (materialize in > 3 instructions) |
3698 operand immL_expensive() %{ |
3698 operand immL_expensive() %{ |
3699 predicate(VM_Version::is_niagara1_plus() && MacroAssembler::insts_for_set64(n->get_long()) > 3); |
3699 predicate(VM_Version::is_niagara_plus() && MacroAssembler::insts_for_set64(n->get_long()) > 3); |
3700 match(ConL); |
3700 match(ConL); |
3701 op_cost(0); |
3701 op_cost(0); |
3702 |
3702 |
3703 format %{ %} |
3703 format %{ %} |
3704 interface(CONST_INTER); |
3704 interface(CONST_INTER); |