1.1 --- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Mar 30 18:55:04 2011 -0700 1.2 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Thu Mar 31 00:27:08 2011 -0700 1.3 @@ -23,6 +23,7 @@ 1.4 */ 1.5 1.6 #include "precompiled.hpp" 1.7 +#include "asm/assembler.hpp" 1.8 #include "c1/c1_Compilation.hpp" 1.9 #include "c1/c1_LIRAssembler.hpp" 1.10 #include "c1/c1_MacroAssembler.hpp" 1.11 @@ -569,24 +570,13 @@ 1.12 __ lea (rdi, Address(rdi, rcx, Address::times_2, arrayOopDesc::base_offset_in_bytes(T_CHAR))); 1.13 1.14 // compute minimum length (in rax) and difference of lengths (on top of stack) 1.15 - if (VM_Version::supports_cmov()) { 1.16 - __ movl (rbx, Address(rbx, java_lang_String::count_offset_in_bytes())); 1.17 - __ movl (rax, Address(rax, java_lang_String::count_offset_in_bytes())); 1.18 - __ mov (rcx, rbx); 1.19 - __ subptr (rbx, rax); // subtract lengths 1.20 - __ push (rbx); // result 1.21 - __ cmov (Assembler::lessEqual, rax, rcx); 1.22 - } else { 1.23 - Label L; 1.24 - __ movl (rbx, Address(rbx, java_lang_String::count_offset_in_bytes())); 1.25 - __ movl (rcx, Address(rax, java_lang_String::count_offset_in_bytes())); 1.26 - __ mov (rax, rbx); 1.27 - __ subptr (rbx, rcx); 1.28 - __ push (rbx); 1.29 - __ jcc (Assembler::lessEqual, L); 1.30 - __ mov (rax, rcx); 1.31 - __ bind (L); 1.32 - } 1.33 + __ movl (rbx, Address(rbx, java_lang_String::count_offset_in_bytes())); 1.34 + __ movl (rax, Address(rax, java_lang_String::count_offset_in_bytes())); 1.35 + __ mov (rcx, rbx); 1.36 + __ subptr(rbx, rax); // subtract lengths 1.37 + __ push (rbx); // result 1.38 + __ cmov (Assembler::lessEqual, rax, rcx); 1.39 + 1.40 // is minimum length 0? 1.41 Label noLoop, haveResult; 1.42 __ testptr (rax, rax);