2091 |
2091 |
2092 // always do stub if no type information is available. it's ok if |
2092 // always do stub if no type information is available. it's ok if |
2093 // the known type isn't loaded since the code sanity checks |
2093 // the known type isn't loaded since the code sanity checks |
2094 // in debug mode and the type isn't required when we know the exact type |
2094 // in debug mode and the type isn't required when we know the exact type |
2095 // also check that the type is an array type. |
2095 // also check that the type is an array type. |
2096 if (op->expected_type() == NULL) { |
2096 // We also, for now, always call the stub if the barrier set requires a |
|
2097 // write_ref_pre barrier (which the stub does, but none of the optimized |
|
2098 // cases currently does). |
|
2099 if (op->expected_type() == NULL || |
|
2100 Universe::heap()->barrier_set()->has_write_ref_pre_barrier()) { |
2097 __ mov(src, O0); |
2101 __ mov(src, O0); |
2098 __ mov(src_pos, O1); |
2102 __ mov(src_pos, O1); |
2099 __ mov(dst, O2); |
2103 __ mov(dst, O2); |
2100 __ mov(dst_pos, O3); |
2104 __ mov(dst_pos, O3); |
2101 __ mov(length, O4); |
2105 __ mov(length, O4); |