aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-10-04 13:22:41 +0200
committerBjörn Gustavsson <[email protected]>2017-10-05 11:43:44 +0200
commit6c8c122c487f1a1417dd2a674c4da7e6dd52739c (patch)
treee303e2ea9a6f7f32d50dd533630354cad5ffb2de /erts/emulator/beam/ops.tab
parent4ab349bd590403edb42bb8972f881b5921bf257f (diff)
downloadotp-6c8c122c487f1a1417dd2a674c4da7e6dd52739c.tar.gz
otp-6c8c122c487f1a1417dd2a674c4da7e6dd52739c.tar.bz2
otp-6c8c122c487f1a1417dd2a674c4da7e6dd52739c.zip
ops.tab: Slightly optimize badmatch on a Y register
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab3
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index 75ff40606b..b7ef1f0599 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1139,6 +1139,9 @@ bs_test_unit8 f x
# An y register operand for bs_context_to_binary is rare,
# but can happen because of inlining.
+bs_context_to_binary Y=y | line L | badmatch Y => \
+ move Y x | bs_context_to_binary x | line L | badmatch x
+
bs_context_to_binary Y=y => move Y x | bs_context_to_binary x
bs_context_to_binary x