comparison src/share/vm/opto/gcm.cpp @ 681:fbde8ec322d0

6761600: Use sse 4.2 in intrinsics Summary: Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals. Reviewed-by: kvn, never, jrose
author cfang
date Tue, 31 Mar 2009 14:07:08 -0700
parents fbc12e71c476
children 1851e1fb420e
comparison
equal deleted inserted replaced
676:d3676b4cb78c 681:fbde8ec322d0
436 if (VerifyAliases) assert(load_alias_idx != Compile::AliasIdxBot, ""); 436 if (VerifyAliases) assert(load_alias_idx != Compile::AliasIdxBot, "");
437 } 437 }
438 #endif 438 #endif
439 assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrComp), 439 assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrComp),
440 "String compare is only known 'load' that does not conflict with any stores"); 440 "String compare is only known 'load' that does not conflict with any stores");
441 assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrEquals),
442 "String equals is a 'load' that does not conflict with any stores");
443 assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_StrIndexOf),
444 "String indexOf is a 'load' that does not conflict with any stores");
445 assert(load_alias_idx || (load->is_Mach() && load->as_Mach()->ideal_Opcode() == Op_AryEq),
446 "Arrays equals is a 'load' that do not conflict with any stores");
441 447
442 if (!C->alias_type(load_alias_idx)->is_rewritable()) { 448 if (!C->alias_type(load_alias_idx)->is_rewritable()) {
443 // It is impossible to spoil this load by putting stores before it, 449 // It is impossible to spoil this load by putting stores before it,
444 // because we know that the stores will never update the value 450 // because we know that the stores will never update the value
445 // which 'load' must witness. 451 // which 'load' must witness.