aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_a.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2012-09-04 14:27:31 +0200
committerBjörn Gustavsson <[email protected]>2012-10-10 15:37:12 +0200
commit531aa719de264c81876da2db1ca9882f8f5db663 (patch)
tree4a88ea169f09aeaae36fbc12d9dbae151d277339 /lib/compiler/src/beam_a.erl
parent0772d1063c3e03cfb575fb5e948c120cfee14605 (diff)
downloadotp-531aa719de264c81876da2db1ca9882f8f5db663.tar.gz
otp-531aa719de264c81876da2db1ca9882f8f5db663.tar.bz2
otp-531aa719de264c81876da2db1ca9882f8f5db663.zip
Rewrite select_val and select_tuple_arity to a select instruction
Eliminate some code bloat.
Diffstat (limited to 'lib/compiler/src/beam_a.erl')
-rw-r--r--lib/compiler/src/beam_a.erl4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_a.erl b/lib/compiler/src/beam_a.erl
index fd76154b78..b7ed78c977 100644
--- a/lib/compiler/src/beam_a.erl
+++ b/lib/compiler/src/beam_a.erl
@@ -74,4 +74,8 @@ rename_instr({bs_private_append=I,F,Sz,U,Src,Flags,Dst}) ->
{bs_init,F,{I,U,Flags},none,[Sz,Src],Dst};
rename_instr(bs_init_writable=I) ->
{bs_init,{f,0},I,1,[{x,0}],{x,0}};
+rename_instr({select_val=I,Reg,Fail,{list,List}}) ->
+ {select,I,Reg,Fail,List};
+rename_instr({select_tuple_arity=I,Reg,Fail,{list,List}}) ->
+ {select,I,Reg,Fail,List};
rename_instr(I) -> I.