aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-08-31 12:29:25 +0200
committerBjörn Gustavsson <[email protected]>2017-08-31 15:45:31 +0200
commit3280aa8f8398b2b6a1bb78aedc27fc7e73653288 (patch)
treef7f79bf010b789c336d080cd8732d821612098a2 /erts/emulator
parent1b8cbb336698ab0a1992a35e2c08e2d25c6a66d5 (diff)
downloadotp-3280aa8f8398b2b6a1bb78aedc27fc7e73653288.tar.gz
otp-3280aa8f8398b2b6a1bb78aedc27fc7e73653288.tar.bz2
otp-3280aa8f8398b2b6a1bb78aedc27fc7e73653288.zip
ops.tab: Mark infrequently used instructions as %cold
Instructions that used to be implemented in beam_emu.c were not marked as cold as it would make no difference.
Diffstat (limited to 'erts/emulator')
-rw-r--r--erts/emulator/beam/ops.tab19
-rw-r--r--erts/emulator/hipe/hipe_ops.tab3
2 files changed, 22 insertions, 0 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index d199c9e9f2..d848c1cceb 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -59,6 +59,7 @@ put_tuple u==0 d => too_old_compiler
# All the other instructions.
#
+%cold
label L
i_func_info I a a I
int_code_end
@@ -68,6 +69,7 @@ i_debug_breakpoint
i_return_time_trace
i_return_to_trace
i_yield
+%hot
return
@@ -217,6 +219,11 @@ is_number Fail Literal=q => move Literal x | is_number Fail x
jump f
+#
+# Expection rasing instructions. Infrequently executed.
+#
+
+%cold
case_end NotInX=cy => move NotInX x | case_end x
badmatch NotInX=cy => move NotInX x | badmatch x
@@ -238,6 +245,12 @@ i_raise
badarg j
system_limit j
+%hot
+
+#
+# Move instructions.
+#
+
move C=cxy x==0 | jump Lbl => move_jump Lbl C
move_jump f ncxy
@@ -404,8 +417,10 @@ wait_timeout_unlocked s f
wait_timeout_locked_int I f
wait_timeout_locked s f
+%cold
i_wait_error
i_wait_error_locked
+%hot
send
@@ -515,6 +530,7 @@ put_list s s d
# Some more only used by the emulator
#
+%cold
normal_exit
continue_exit
apply_bif
@@ -522,6 +538,7 @@ call_nif
call_error_handler
error_action_code
return_trace
+%hot
#
# Instruction transformations & folded instructions.
@@ -939,9 +956,11 @@ i_apply_fun
i_apply_fun_last P
i_apply_fun_only
+%cold
i_hibernate
i_perf_counter
+%hot
call_bif e
diff --git a/erts/emulator/hipe/hipe_ops.tab b/erts/emulator/hipe/hipe_ops.tab
index 96e4c0da91..19a3820a6a 100644
--- a/erts/emulator/hipe/hipe_ops.tab
+++ b/erts/emulator/hipe/hipe_ops.tab
@@ -23,4 +23,7 @@ hipe_trap_call_closure
hipe_trap_return
hipe_trap_throw
hipe_trap_resume
+
+%cold
hipe_call_count
+%hot