diff options
author | Sverker Eriksson <[email protected]> | 2016-09-02 14:42:43 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-09-02 14:42:43 +0200 |
commit | 076098cebd1885ec5a56575d910322a6f1de67ff (patch) | |
tree | e296d32a5288db98cccd7f131e75fce9fae99f89 /lib/hipe/sparc | |
parent | 82e5d81d57676a9e039d93544583895e92840beb (diff) | |
parent | 015380363c9b17bb88784302a0b672ff758f5569 (diff) | |
download | otp-076098cebd1885ec5a56575d910322a6f1de67ff.tar.gz otp-076098cebd1885ec5a56575d910322a6f1de67ff.tar.bz2 otp-076098cebd1885ec5a56575d910322a6f1de67ff.zip |
Merge branch 'sverker/hipe-sparc-19/PR-1148/OTP-13861' into maint
* sverker/hipe-sparc-19/PR-1148:
Eliminate catch-all clause from two functions
Increase the time limit used by the test suite
Diffstat (limited to 'lib/hipe/sparc')
-rw-r--r-- | lib/hipe/sparc/hipe_rtl_to_sparc.erl | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/lib/hipe/sparc/hipe_rtl_to_sparc.erl b/lib/hipe/sparc/hipe_rtl_to_sparc.erl index eef5ba8d96..f9c043eafe 100644 --- a/lib/hipe/sparc/hipe_rtl_to_sparc.erl +++ b/lib/hipe/sparc/hipe_rtl_to_sparc.erl @@ -750,13 +750,25 @@ xaluop_commutes(XAluOp) -> xaluop_is_shift(XAluOp) -> case XAluOp of + 'add' -> false; + 'addcc' -> false; + 'and' -> false; + 'andcc' -> false; + 'cmpcc' -> false; + 'ldsb' -> false; + 'ldub' -> false; + 'lduw' -> false; + 'or' -> false; 'sll' -> true; - 'srl' -> true; + %% 'sllx' -> true; + 'smul' -> false; 'sra' -> true; - 'sllx' -> true; - 'srlx' -> true; - 'srax' -> true; - _ -> false + %% 'srax' -> true; + 'srl' -> true; + %% 'srlx' -> true; + 'sub' -> false; + 'subcc' -> false; + 'xor' -> false end. %%% Convert an extended SPARC AluOp back to a plain AluOp. @@ -764,9 +776,23 @@ xaluop_is_shift(XAluOp) -> xaluop_normalise(XAluOp) -> case XAluOp of - 'cmp' -> 'sub'; + 'add' -> 'add'; + 'addcc' -> 'addcc'; + 'and' -> 'and'; + 'andcc' -> 'andcc'; + %% 'cmp' -> 'sub'; 'cmpcc' -> 'subcc'; - _ -> XAluOp + 'ldsb' -> 'ldsb'; + 'ldub' -> 'ldub'; + 'lduw' -> 'lduw'; + 'or' -> 'or'; + 'sll' -> 'sll'; + 'smul' -> 'smul'; + 'sra' -> 'sra'; + 'srl' -> 'srl'; + 'sub' -> 'sub'; + 'subcc' -> 'subcc'; + 'xor' -> 'xor' end. %%% Convert an RTL condition code. |