aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_emu.c
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2015-12-02 13:17:28 +0100
committerBjörn-Egil Dahlberg <[email protected]>2015-12-07 16:27:52 +0100
commitc97f3332aeddf039ee2207196229b9ff07047c72 (patch)
treec41468e4ee7b98a1abd1c1bc92460f14affb62cc /erts/emulator/beam/beam_emu.c
parentf67a7375e19734c3f7d6947b0dcf608d0fe1c8fa (diff)
downloadotp-c97f3332aeddf039ee2207196229b9ff07047c72.tar.gz
otp-c97f3332aeddf039ee2207196229b9ff07047c72.tar.bz2
otp-c97f3332aeddf039ee2207196229b9ff07047c72.zip
erts: Add i_get_hash instruction
Calculate hashvalue in load-time for constant process dictionary gets.
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r--erts/emulator/beam/beam_emu.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 38def5d89f..d39cd9d8ea 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -3735,6 +3735,16 @@ do { \
StoreBifResult(1, result);
}
+ OpCase(i_get_hash_cId):
+ {
+ Eterm arg;
+ Eterm result;
+
+ GetArg1(0, arg);
+ result = erts_pd_hash_get_with_hx(c_p, Arg(1), arg);
+ StoreBifResult(2, result);
+ }
+
{
Eterm case_end_val;