aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-08-31 14:56:33 +0200
committerBjörn Gustavsson <[email protected]>2017-08-31 15:02:29 +0200
commit1b8cbb336698ab0a1992a35e2c08e2d25c6a66d5 (patch)
tree8a83353926bf97c647410b223d69e0de9d7d77ac /erts/emulator/beam
parentf0b2ac51019181cc765b55e95b2723f5ed03d3fa (diff)
downloadotp-1b8cbb336698ab0a1992a35e2c08e2d25c6a66d5.tar.gz
otp-1b8cbb336698ab0a1992a35e2c08e2d25c6a66d5.tar.bz2
otp-1b8cbb336698ab0a1992a35e2c08e2d25c6a66d5.zip
Introduce '%warm' and beam_warm.h
The bit syntax instructions are mixed among other instructions in beam_hot.h and beam_cold.h. Introduce a new hotness level called '%warm' with is associated file beam_warm.h. Mark all bit syntax instructions as '%warm'.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r--erts/emulator/beam/beam_emu.c2
-rw-r--r--erts/emulator/beam/ops.tab4
2 files changed, 4 insertions, 2 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 2c37dc42b3..48569a90a9 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -870,6 +870,8 @@ void process_main(Eterm * x_reg_array, FloatDef* f_reg_array)
goto do_schedule1;
}
+#include "beam_warm.h"
+
OpCase(normal_exit): {
SWAPOUT;
c_p->freason = EXC_NORMAL;
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index b6e995fdbe..d199c9e9f2 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1040,7 +1040,7 @@ func_info M F A => i_func_info u M F A
# New bit syntax matching (R11B).
# ================================================================
-%cold
+%warm
bs_start_match2 Fail=f ica X Y D => jump Fail
bs_start_match2 Fail Bin X Y D => i_bs_start_match2 Bin Fail X Y D
i_bs_start_match2 xy f I I x
@@ -1138,7 +1138,7 @@ i_bs_validate_unicode_retract j s s
#
# Constructing binaries
#
-%cold
+%warm
bs_init2 Fail Sz Words Regs Flags Dst | binary_too_big(Sz) => system_limit Fail