76 static constexpr int long_cmove_cost() { return 1; }
77 #endif
78
79 #ifdef _LP64
80 // No CMOVF/CMOVD with SSE2
81 static int float_cmove_cost() { return ConditionalMoveLimit; }
82 #else
83 // No CMOVF/CMOVD with SSE/SSE2
84 static int float_cmove_cost() { return (UseSSE>=1) ? ConditionalMoveLimit : 0; }
85 #endif
86
87 static bool narrow_oop_use_complex_address() {
88 NOT_LP64(ShouldNotCallThis();)
89 assert(UseCompressedOops, "only for compressed oops code");
90 return (LogMinObjAlignmentInBytes <= 3);
91 }
92
93 static bool narrow_klass_use_complex_address() {
94 NOT_LP64(ShouldNotCallThis();)
95 assert(UseCompressedClassPointers, "only for compressed klass code");
96 return (LogKlassAlignmentInBytes <= 3);
97 }
98
99 // Prefer ConN+DecodeN over ConP.
100 static bool const_oop_prefer_decode() {
101 NOT_LP64(ShouldNotCallThis();)
102 // Prefer ConN+DecodeN over ConP.
103 return true;
104 }
105
106 // Prefer ConP over ConNKlass+DecodeNKlass.
107 static bool const_klass_prefer_decode() {
108 NOT_LP64(ShouldNotCallThis();)
109 return false;
110 }
111
112 // Is it better to copy float constants, or load them directly from memory?
113 // Intel can load a float constant from a direct address, requiring no
114 // extra registers. Most RISCs will have to materialize an address into a
115 // register first, so they would do better to copy the constant from stack.
116 static const bool rematerialize_float_constants = true;
|
76 static constexpr int long_cmove_cost() { return 1; }
77 #endif
78
79 #ifdef _LP64
80 // No CMOVF/CMOVD with SSE2
81 static int float_cmove_cost() { return ConditionalMoveLimit; }
82 #else
83 // No CMOVF/CMOVD with SSE/SSE2
84 static int float_cmove_cost() { return (UseSSE>=1) ? ConditionalMoveLimit : 0; }
85 #endif
86
87 static bool narrow_oop_use_complex_address() {
88 NOT_LP64(ShouldNotCallThis();)
89 assert(UseCompressedOops, "only for compressed oops code");
90 return (LogMinObjAlignmentInBytes <= 3);
91 }
92
93 static bool narrow_klass_use_complex_address() {
94 NOT_LP64(ShouldNotCallThis();)
95 assert(UseCompressedClassPointers, "only for compressed klass code");
96 return (CompressedKlassPointers::shift() <= 3);
97 }
98
99 // Prefer ConN+DecodeN over ConP.
100 static bool const_oop_prefer_decode() {
101 NOT_LP64(ShouldNotCallThis();)
102 // Prefer ConN+DecodeN over ConP.
103 return true;
104 }
105
106 // Prefer ConP over ConNKlass+DecodeNKlass.
107 static bool const_klass_prefer_decode() {
108 NOT_LP64(ShouldNotCallThis();)
109 return false;
110 }
111
112 // Is it better to copy float constants, or load them directly from memory?
113 // Intel can load a float constant from a direct address, requiring no
114 // extra registers. Most RISCs will have to materialize an address into a
115 // register first, so they would do better to copy the constant from stack.
116 static const bool rematerialize_float_constants = true;
|