< prev index next >

src/cpu/ppc/vm/ppc.ad

Print this page




2120   b = Assembler::is_simm((offset<0 ? offset-safety_zone : offset+safety_zone),
2121                          29 - 16 + 1 + 2);
2122   return b;
2123 }
2124 
2125 const bool Matcher::isSimpleConstant64(jlong value) {
2126   // Probably always true, even if a temp register is required.
2127   return true;
2128 }
2129 /* TODO: PPC port
2130 // Make a new machine dependent decode node (with its operands).
2131 MachTypeNode *Matcher::make_decode_node() {
2132   assert(Universe::narrow_oop_base() == NULL && Universe::narrow_oop_shift() == 0,
2133          "This method is only implemented for unscaled cOops mode so far");
2134   MachTypeNode *decode = new decodeN_unscaledNode();
2135   decode->set_opnd_array(0, new iRegPdstOper());
2136   decode->set_opnd_array(1, new iRegNsrcOper());
2137   return decode;
2138 }
2139 */
2140 // Threshold size for cleararray.
2141 const int Matcher::init_array_short_size = 8 * BytesPerLong;
2142 
2143 // false => size gets scaled to BytesPerLong, ok.
2144 const bool Matcher::init_array_count_is_in_bytes = false;
2145 
2146 // Use conditional move (CMOVL) on Power7.
2147 const int Matcher::long_cmove_cost() { return 0; } // this only makes long cmoves more expensive than int cmoves
2148 
2149 // Suppress CMOVF. Conditional move available (sort of) on PPC64 only from P7 onwards. Not exploited yet.
2150 // fsel doesn't accept a condition register as input, so this would be slightly different.
2151 const int Matcher::float_cmove_cost() { return ConditionalMoveLimit; }
2152 
2153 // Power6 requires postalloc expand (see block.cpp for description of postalloc expand).
2154 const bool Matcher::require_postalloc_expand = true;
2155 
2156 // Should the Matcher clone shifts on addressing modes, expecting them to
2157 // be subsumed into complex addressing expressions or compute them into
2158 // registers? True for Intel but false for most RISCs.
2159 const bool Matcher::clone_shift_expressions = false;
2160 
2161 // Do we need to mask the count passed to shift instructions or does




2120   b = Assembler::is_simm((offset<0 ? offset-safety_zone : offset+safety_zone),
2121                          29 - 16 + 1 + 2);
2122   return b;
2123 }
2124 
2125 const bool Matcher::isSimpleConstant64(jlong value) {
2126   // Probably always true, even if a temp register is required.
2127   return true;
2128 }
2129 /* TODO: PPC port
2130 // Make a new machine dependent decode node (with its operands).
2131 MachTypeNode *Matcher::make_decode_node() {
2132   assert(Universe::narrow_oop_base() == NULL && Universe::narrow_oop_shift() == 0,
2133          "This method is only implemented for unscaled cOops mode so far");
2134   MachTypeNode *decode = new decodeN_unscaledNode();
2135   decode->set_opnd_array(0, new iRegPdstOper());
2136   decode->set_opnd_array(1, new iRegNsrcOper());
2137   return decode;
2138 }
2139 */


2140 
2141 // false => size gets scaled to BytesPerLong, ok.
2142 const bool Matcher::init_array_count_is_in_bytes = false;
2143 
2144 // Use conditional move (CMOVL) on Power7.
2145 const int Matcher::long_cmove_cost() { return 0; } // this only makes long cmoves more expensive than int cmoves
2146 
2147 // Suppress CMOVF. Conditional move available (sort of) on PPC64 only from P7 onwards. Not exploited yet.
2148 // fsel doesn't accept a condition register as input, so this would be slightly different.
2149 const int Matcher::float_cmove_cost() { return ConditionalMoveLimit; }
2150 
2151 // Power6 requires postalloc expand (see block.cpp for description of postalloc expand).
2152 const bool Matcher::require_postalloc_expand = true;
2153 
2154 // Should the Matcher clone shifts on addressing modes, expecting them to
2155 // be subsumed into complex addressing expressions or compute them into
2156 // registers? True for Intel but false for most RISCs.
2157 const bool Matcher::clone_shift_expressions = false;
2158 
2159 // Do we need to mask the count passed to shift instructions or does


< prev index next >