aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_arith.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2010-12-10 06:07:06 +0100
committerBjörn Gustavsson <bjorn@erlang.org>2011-01-17 15:23:46 +0100
commit40dd4f87b3567d087bbcb071404b871af3601241 (patch)
treea813491a355d02b98540035fc611ad4272fbce4b /erts/emulator/beam/erl_arith.c
parent74d7bd100b742a803c8de82c9c997308cf871038 (diff)
downloadotp-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