diff options
author | Björn-Egil Dahlberg <[email protected]> | 2014-02-24 14:28:22 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2014-02-24 14:28:22 +0100 |
commit | 4acee7b02b53d785c444e886c39ed82ab76b52fe (patch) | |
tree | 2d5110c59ad0022d43f97e76681b13e5dec58ea7 /erts/emulator | |
parent | ce614726e9fb19b462ed41a2f020b68ef98cd532 (diff) | |
parent | 771fa6d1f96684b61ed5f6033db51f5b0a55ec19 (diff) | |
download | otp-4acee7b02b53d785c444e886c39ed82ab76b52fe.tar.gz otp-4acee7b02b53d785c444e886c39ed82ab76b52fe.tar.bz2 otp-4acee7b02b53d785c444e886c39ed82ab76b52fe.zip |
Merge branch 'egil/maps/fix-cerl-inlining'
* egil/maps/fix-cerl-inlining:
compiler: Update map_SUITE to handle inlining
erts: Maps src instructions can't be literals
compiler: Fix map inlining
compiler: Add variable coverage of map in cerl
Diffstat (limited to 'erts/emulator')
-rw-r--r-- | erts/emulator/beam/ops.tab | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 8406f5344a..73630fda8e 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -1470,11 +1470,15 @@ apply_last I P # put_map_assoc F n Dst Live Size Rest=* => new_map F Dst Live Size Rest -put_map_exact F n Dst Live Size Rest=* => new_map F Dst Live Size Rest -put_map_assoc F Src Dst Live Size Rest=* => \ +put_map_assoc F Src=s Dst Live Size Rest=* => \ update_map_assoc F Src Dst Live Size Rest -put_map_exact F Src Dst Live Size Rest=* => \ +put_map_assoc F Src Dst Live Size Rest=* => \ + move Src x | update_map_assoc F x Dst Live Size Rest +put_map_exact F n Dst Live Size Rest=* => new_map F Dst Live Size Rest +put_map_exact F Src=s Dst Live Size Rest=* => \ update_map_exact F Src Dst Live Size Rest +put_map_exact F Src Dst Live Size Rest=* => \ + move Src x | update_map_exact F x Dst Live Size Rest new_map j d I I update_map_assoc j s d I I |