< prev index next >

src/cpu/ppc/vm/ppc.ad

Print this page
rev 7364 : 8080190: PPC64: Fix wrong rotate instructions in the .ad file
Reviewed-by: kvn


2247 // false => size gets scaled to BytesPerLong, ok.
2248 const bool Matcher::init_array_count_is_in_bytes = false;
2249 
2250 // Use conditional move (CMOVL) on Power7.
2251 const int Matcher::long_cmove_cost() { return 0; } // this only makes long cmoves more expensive than int cmoves
2252 
2253 // Suppress CMOVF. Conditional move available (sort of) on PPC64 only from P7 onwards. Not exploited yet.
2254 // fsel doesn't accept a condition register as input, so this would be slightly different.
2255 const int Matcher::float_cmove_cost() { return ConditionalMoveLimit; }
2256 
2257 // Power6 requires postalloc expand (see block.cpp for description of postalloc expand).
2258 const bool Matcher::require_postalloc_expand = true;
2259 
2260 // Should the Matcher clone shifts on addressing modes, expecting them to
2261 // be subsumed into complex addressing expressions or compute them into
2262 // registers? True for Intel but false for most RISCs.
2263 const bool Matcher::clone_shift_expressions = false;
2264 
2265 // Do we need to mask the count passed to shift instructions or does
2266 // the cpu only look at the lower 5/6 bits anyway?
2267 // Off, as masks are generated in expand rules where required.
2268 // Constant shift counts are handled in Ideal phase.
2269 const bool Matcher::need_masked_shift_count = false;
2270 
2271 // This affects two different things:
2272 //  - how Decode nodes are matched
2273 //  - how ImplicitNullCheck opportunities are recognized
2274 // If true, the matcher will try to remove all Decodes and match them
2275 // (as operands) into nodes. NullChecks are not prepared to deal with
2276 // Decodes by final_graph_reshaping().
2277 // If false, final_graph_reshaping() forces the decode behind the Cmp
2278 // for a NullCheck. The matcher matches the Decode node into a register.
2279 // Implicit_null_check optimization moves the Decode along with the
2280 // memory operation back up before the NullCheck.
2281 bool Matcher::narrow_oop_use_complex_address() {
2282   // TODO: PPC port if (MatchDecodeNodes) return true;
2283   return false;
2284 }
2285 
2286 bool Matcher::narrow_klass_use_complex_address() {
2287   NOT_LP64(ShouldNotCallThis());
2288   assert(UseCompressedClassPointers, "only for compressed klass code");
2289   // TODO: PPC port if (MatchDecodeNodes) return true;




2247 // false => size gets scaled to BytesPerLong, ok.
2248 const bool Matcher::init_array_count_is_in_bytes = false;
2249 
2250 // Use conditional move (CMOVL) on Power7.
2251 const int Matcher::long_cmove_cost() { return 0; } // this only makes long cmoves more expensive than int cmoves
2252 
2253 // Suppress CMOVF. Conditional move available (sort of) on PPC64 only from P7 onwards. Not exploited yet.
2254 // fsel doesn't accept a condition register as input, so this would be slightly different.
2255 const int Matcher::float_cmove_cost() { return ConditionalMoveLimit; }
2256 
2257 // Power6 requires postalloc expand (see block.cpp for description of postalloc expand).
2258 const bool Matcher::require_postalloc_expand = true;
2259 
2260 // Should the Matcher clone shifts on addressing modes, expecting them to
2261 // be subsumed into complex addressing expressions or compute them into
2262 // registers? True for Intel but false for most RISCs.
2263 const bool Matcher::clone_shift_expressions = false;
2264 
2265 // Do we need to mask the count passed to shift instructions or does
2266 // the cpu only look at the lower 5/6 bits anyway?
2267 // PowerPC requires masked shift counts.
2268 const bool Matcher::need_masked_shift_count = true;

2269 
2270 // This affects two different things:
2271 //  - how Decode nodes are matched
2272 //  - how ImplicitNullCheck opportunities are recognized
2273 // If true, the matcher will try to remove all Decodes and match them
2274 // (as operands) into nodes. NullChecks are not prepared to deal with
2275 // Decodes by final_graph_reshaping().
2276 // If false, final_graph_reshaping() forces the decode behind the Cmp
2277 // for a NullCheck. The matcher matches the Decode node into a register.
2278 // Implicit_null_check optimization moves the Decode along with the
2279 // memory operation back up before the NullCheck.
2280 bool Matcher::narrow_oop_use_complex_address() {
2281   // TODO: PPC port if (MatchDecodeNodes) return true;
2282   return false;
2283 }
2284 
2285 bool Matcher::narrow_klass_use_complex_address() {
2286   NOT_LP64(ShouldNotCallThis());
2287   assert(UseCompressedClassPointers, "only for compressed klass code");
2288   // TODO: PPC port if (MatchDecodeNodes) return true;


< prev index next >