aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
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/ops.tab
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/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index 1d32e72247..86ae189c27 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1118,7 +1118,7 @@ call_bif e
bif0 u$bif:erlang:self/0 Dst=d => self Dst
bif0 u$bif:erlang:node/0 Dst=d => node Dst
-bif1 Fail Bif=u$bif:erlang:get/1 Src=s Dst=d => i_get Src Dst
+bif1 Fail Bif=u$bif:erlang:get/1 Src=s Dst=d => gen_get(Src, Dst)
bif2 Jump=j u$bif:erlang:element/2 S1=s S2=rxy Dst=d => gen_element(Jump, S1, S2, Dst)
@@ -1130,6 +1130,7 @@ bif1_body Bif Literal=q Dst => move Literal x | bif1_body Bif x Dst
bif2 p Bif S1 S2 Dst => i_fetch S1 S2 | i_bif2_body Bif Dst
bif2 Fail Bif S1 S2 Dst => i_fetch S1 S2 | i_bif2 Fail Bif Dst
+i_get_hash c I d
i_get s d
%macro: self Self