Mercurial > hg > graal-jvmci-8
comparison src/cpu/sparc/vm/sparc.ad @ 2080:c04052fd6ae1
7006505: Use kstat info to identify SPARC processor
Summary: read Solaris kstat data to get more precise CPU information
Reviewed-by: iveresov, never, twisti, dholmes
author | kvn |
---|---|
date | Thu, 16 Dec 2010 14:15:12 -0800 |
parents | 7737fa7ec2b5 |
children | c17b998c5926 |
comparison
equal
deleted
inserted
replaced
2079:cccd1b172b85 | 2080:c04052fd6ae1 |
---|---|
3554 %} | 3554 %} |
3555 | 3555 |
3556 #ifdef _LP64 | 3556 #ifdef _LP64 |
3557 // Pointer Immediate: 64-bit | 3557 // Pointer Immediate: 64-bit |
3558 operand immP_set() %{ | 3558 operand immP_set() %{ |
3559 predicate(!VM_Version::is_niagara1_plus()); | 3559 predicate(!VM_Version::is_niagara_plus()); |
3560 match(ConP); | 3560 match(ConP); |
3561 | 3561 |
3562 op_cost(5); | 3562 op_cost(5); |
3563 // formats are generated automatically for constants and base registers | 3563 // formats are generated automatically for constants and base registers |
3564 format %{ %} | 3564 format %{ %} |
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); |