diff options
author | Sverker Eriksson <[email protected]> | 2016-09-02 14:43:52 +0200 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2016-09-02 14:43:52 +0200 |
commit | 87643cf92c061d7518299fdebb326e315c32e528 (patch) | |
tree | a9b78c9d64c049bf9c9b6396d3d105639d082c34 /lib/hipe/sparc | |
parent | 0e7c0d4eb8dd8f6f9a9ee377fa886edbae0b1627 (diff) | |
parent | 076098cebd1885ec5a56575d910322a6f1de67ff (diff) | |
download | otp-87643cf92c061d7518299fdebb326e315c32e528.tar.gz otp-87643cf92c061d7518299fdebb326e315c32e528.tar.bz2 otp-87643cf92c061d7518299fdebb326e315c32e528.zip |
Merge branch 'maint'
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. |