diff options
author | Björn Gustavsson <[email protected]> | 2013-12-18 10:08:37 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2013-12-18 10:08:37 +0100 |
commit | 39de9391f76ed8f3503869684726d18d0fe723c3 (patch) | |
tree | 3475105fc750a023be6a879070ed13705c98bd40 /lib/compiler/src/beam_utils.erl | |
parent | 165846b143c8275350972caaf4c1013cfe5db043 (diff) | |
parent | 20c38f0156b711032274cdea5a5049fc7ce8e81f (diff) | |
download | otp-39de9391f76ed8f3503869684726d18d0fe723c3.tar.gz otp-39de9391f76ed8f3503869684726d18d0fe723c3.tar.bz2 otp-39de9391f76ed8f3503869684726d18d0fe723c3.zip |
Merge branch 'nox/asm-reentrant/OTP-11544'
* nox/asm-reentrant/OTP-11544:
Test compilation of BEAM assembly with optimisations on
Keep exit blocks in order when moving them in beam_jump
Add missing recv_set, recv_mark and '%' to BEAM live annotation
Collect all optimised allocate instructions in beam_block
Properly collect allocate_zero instructions in beam_block
Properly let floating-point instructions through in the BEAM compiler
Diffstat (limited to 'lib/compiler/src/beam_utils.erl')
-rw-r--r-- | lib/compiler/src/beam_utils.erl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_utils.erl b/lib/compiler/src/beam_utils.erl index e9911fefd9..36f3200d11 100644 --- a/lib/compiler/src/beam_utils.erl +++ b/lib/compiler/src/beam_utils.erl @@ -759,6 +759,12 @@ live_opt([{allocate,_,Live}=I|Is], _, D, Acc) -> live_opt(Is, live_call(Live), D, [I|Acc]); live_opt([{allocate_heap,_,_,Live}=I|Is], _, D, Acc) -> live_opt(Is, live_call(Live), D, [I|Acc]); +live_opt([{'%',_}=I|Is], Regs, D, Acc) -> + live_opt(Is, Regs, D, [I|Acc]); +live_opt([{recv_set,_}=I|Is], Regs, D, Acc) -> + live_opt(Is, Regs, D, [I|Acc]); +live_opt([{recv_mark,_}=I|Is], Regs, D, Acc) -> + live_opt(Is, Regs, D, [I|Acc]); live_opt([], _, _, Acc) -> Acc. |