src/cpu/x86/vm/x86_32.ad

changeset 3841
ccaa67adfe5b
parent 3787
6759698e3140
child 3846
8b0a4867acf0
     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 %{

mercurial