diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2010-12-10 06:07:06 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2011-01-17 15:23:46 +0100 |
commit | 40dd4f87b3567d087bbcb071404b871af3601241 (patch) | |
tree | a813491a355d02b98540035fc611ad4272fbce4b /erts/emulator/beam/erl_arith.c | |
parent | 74d7bd100b742a803c8de82c9c997308cf871038 (diff) | |
download | otp-40dd4f87b3567d087bbcb071404b871af3601241.tar.gz otp-40dd4f87b3567d087bbcb071404b871af3601241.tar.bz2 otp-40dd4f87b3567d087bbcb071404b871af3601241.zip |
Optimize and clean-up the exact equality/non-equality instructions
The is_eq_exact/3 and is_ne_exact/3 instructions are commonly used
with one immediate or literal operand.
Introduce three new specialized instructions:
i_is_eq_exact_literal/3
i_is_ne_exact_immed/3
i_is_ne_exact_literal/3
The i_is_ne_exact_literal/3 instruction is not very frequently
used, but its existence is justified because we removed in a
a previous commit the special instruction for matching bignums
and we now use i_is_ne_exact_literal/3 instead.
For consistency, rename the existing is_eq_immed/3 instruction to
is_eq_exact_immed/3.
While at it, remove the optimization of an is_eq/3 instruction
with an immediate operand because that optimization is already
done by the compiler.
Diffstat (limited to 'erts/emulator/beam/erl_arith.c')
0 files changed, 0 insertions, 0 deletions