diff options
author | Björn-Egil Dahlberg <[email protected]> | 2015-12-02 13:17:28 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2015-12-07 16:27:52 +0100 |
commit | c97f3332aeddf039ee2207196229b9ff07047c72 (patch) | |
tree | c41468e4ee7b98a1abd1c1bc92460f14affb62cc /erts/emulator/beam/ops.tab | |
parent | f67a7375e19734c3f7d6947b0dcf608d0fe1c8fa (diff) | |
download | otp-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.tab | 3 |
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 |