*** beam_bsm.erl@@/OTP_R12B Mon Nov 26 20:01:52 2007 --- beam_bsm.erl Tue Jan 15 16:10:17 2008 *************** *** 269,282 **** btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); btb_reaches_match_2([{bs_init_bits,{f,0},_,_,_,_,Dst}|Is], Regs, D) -> btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); ! btb_reaches_match_2([{bs_append,{f,0},_,_,_,_,_,_,Dst}|Is], Regs, D) -> btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); ! btb_reaches_match_2([{bs_private_append,{f,0},_,_,_,_,Dst}|Is], Regs, D) -> btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); ! btb_reaches_match_2([{bs_put_integer,{f,0},_,_,_,_}|Is], Regs, D) -> btb_reaches_match_1(Is, Regs, D); ! btb_reaches_match_2([{bs_put_binary,{f,0},_,_,_,_}|Is], Regs, D) -> btb_reaches_match_1(Is, Regs, D); btb_reaches_match_2([{bs_put_string,_,_}|Is], Regs, D) -> btb_reaches_match_1(Is, Regs, D); btb_reaches_match_2([{bs_restore2,Src,_}=I|Is], Regs0, D) -> --- 269,289 ---- btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); btb_reaches_match_2([{bs_init_bits,{f,0},_,_,_,_,Dst}|Is], Regs, D) -> btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); ! btb_reaches_match_2([{bs_append,{f,0},_,_,_,_,Src,_,Dst}=I|Is], Regs, D) -> ! btb_ensure_not_used([Src], I, Regs), btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); ! btb_reaches_match_2([{bs_private_append,{f,0},_,_,Src,_,Dst}=I|Is], Regs, D) -> ! btb_ensure_not_used([Src], I, Regs), btb_reaches_match_1(Is, btb_kill([Dst], Regs), D); ! btb_reaches_match_2([{bs_put_integer,{f,0},_,_,_,Src}=I|Is], Regs, D) -> ! btb_ensure_not_used([Src], I, Regs), btb_reaches_match_1(Is, Regs, D); ! btb_reaches_match_2([{bs_put_float,{f,0},_,_,_,Src}=I|Is], Regs, D) -> ! btb_ensure_not_used([Src], I, Regs), btb_reaches_match_1(Is, Regs, D); + btb_reaches_match_2([{bs_put_binary,{f,0},_,_,_,Src}=I|Is], Regs, D) -> + btb_ensure_not_used([Src], I, Regs), + btb_reaches_match_1(Is, Regs, D); btb_reaches_match_2([{bs_put_string,_,_}|Is], Regs, D) -> btb_reaches_match_1(Is, Regs, D); btb_reaches_match_2([{bs_restore2,Src,_}=I|Is], Regs0, D) ->