diff options
author | Björn-Egil Dahlberg <egil@erlang.org> | 2015-04-23 19:06:03 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <egil@erlang.org> | 2015-04-24 10:06:17 +0200 |
commit | 699ad918545ac7e716b77ea05a6a943434616020 (patch) | |
tree | bbde991f143318be7a3ab4c98b72b0c479d37342 /erts/emulator/beam/ops.tab | |
parent | 38384c6c5f66cf52d24ae6f48cc71bbe52611aa9 (diff) | |
download | otp-699ad918545ac7e716b77ea05a6a943434616020.tar.gz otp-699ad918545ac7e716b77ea05a6a943434616020.tar.bz2 otp-699ad918545ac7e716b77ea05a6a943434616020.zip |
erts: Specialize band instruction for common case
* i_band specialization on x registers and constants
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r-- | erts/emulator/beam/ops.tab | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 3f7e69e07e..3436b664d9 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -1663,6 +1663,7 @@ gc_bif2 Fail I u$bif:erlang:rem/2 S1 S2 Dst=d => i_fetch S1 S2 | i_rem Fail I Ds gc_bif2 Fail I u$bif:erlang:bsl/2 S1 S2 Dst=d => i_fetch S1 S2 | i_bsl Fail I Dst gc_bif2 Fail I u$bif:erlang:bsr/2 S1 S2 Dst=d => i_fetch S1 S2 | i_bsr Fail I Dst +gc_bif2 Fail I u$bif:erlang:band/2 S1=x S2=c Dst=d => i_band Fail I S1 S2 Dst gc_bif2 Fail I u$bif:erlang:band/2 S1 S2 Dst=d => i_fetch S1 S2 | i_band Fail I Dst gc_bif2 Fail I u$bif:erlang:bor/2 S1 S2 Dst=d => i_fetch S1 S2 | i_bor Fail I Dst gc_bif2 Fail I u$bif:erlang:bxor/2 S1 S2 Dst=d => i_fetch S1 S2 | i_bxor Fail I Dst @@ -1686,6 +1687,7 @@ i_rem j I d i_bsl j I d i_bsr j I d +i_band j I x c d i_band j I d i_bor j I d i_bxor j I d |