1.1 --- a/src/cpu/x86/vm/x86_32.ad Mon Jun 11 08:35:28 2012 -0700 1.2 +++ b/src/cpu/x86/vm/x86_32.ad Mon Jun 11 16:47:41 2012 -0700 1.3 @@ -5555,8 +5555,9 @@ 1.4 ins_pipe( ialu_reg_reg); 1.5 %} 1.6 1.7 -instruct bytes_reverse_unsigned_short(eRegI dst) %{ 1.8 +instruct bytes_reverse_unsigned_short(eRegI dst, eFlagsReg cr) %{ 1.9 match(Set dst (ReverseBytesUS dst)); 1.10 + effect(KILL cr); 1.11 1.12 format %{ "BSWAP $dst\n\t" 1.13 "SHR $dst,16\n\t" %} 1.14 @@ -5567,8 +5568,9 @@ 1.15 ins_pipe( ialu_reg ); 1.16 %} 1.17 1.18 -instruct bytes_reverse_short(eRegI dst) %{ 1.19 +instruct bytes_reverse_short(eRegI dst, eFlagsReg cr) %{ 1.20 match(Set dst (ReverseBytesS dst)); 1.21 + effect(KILL cr); 1.22 1.23 format %{ "BSWAP $dst\n\t" 1.24 "SAR $dst,16\n\t" %} 1.25 @@ -5729,9 +5731,10 @@ 1.26 1.27 //---------- Population Count Instructions ------------------------------------- 1.28 1.29 -instruct popCountI(eRegI dst, eRegI src) %{ 1.30 +instruct popCountI(eRegI dst, eRegI src, eFlagsReg cr) %{ 1.31 predicate(UsePopCountInstruction); 1.32 match(Set dst (PopCountI src)); 1.33 + effect(KILL cr); 1.34 1.35 format %{ "POPCNT $dst, $src" %} 1.36 ins_encode %{ 1.37 @@ -5740,9 +5743,10 @@ 1.38 ins_pipe(ialu_reg); 1.39 %} 1.40 1.41 -instruct popCountI_mem(eRegI dst, memory mem) %{ 1.42 +instruct popCountI_mem(eRegI dst, memory mem, eFlagsReg cr) %{ 1.43 predicate(UsePopCountInstruction); 1.44 match(Set dst (PopCountI (LoadI mem))); 1.45 + effect(KILL cr); 1.46 1.47 format %{ "POPCNT $dst, $mem" %} 1.48 ins_encode %{