diff options
author | Magnus Lång <[email protected]> | 2016-11-09 18:49:06 +0100 |
---|---|---|
committer | Magnus Lång <[email protected]> | 2016-11-15 14:58:59 +0100 |
commit | 3579a706ea0c0081d7dd01291990cd8d3669f195 (patch) | |
tree | ea2df890f7b1a63331cce06a6f8350af4a608526 /lib/hipe/x86/hipe_x86_frame.erl | |
parent | cc45e36d1fb0b288ca534fa72fde772b62225e93 (diff) | |
download | otp-3579a706ea0c0081d7dd01291990cd8d3669f195.tar.gz otp-3579a706ea0c0081d7dd01291990cd8d3669f195.tar.bz2 otp-3579a706ea0c0081d7dd01291990cd8d3669f195.zip |
hipe_{x86,amd64}: Finish test instr implementation
Diffstat (limited to 'lib/hipe/x86/hipe_x86_frame.erl')
-rw-r--r-- | lib/hipe/x86/hipe_x86_frame.erl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/hipe/x86/hipe_x86_frame.erl b/lib/hipe/x86/hipe_x86_frame.erl index fc782571bf..17253ad46f 100644 --- a/lib/hipe/x86/hipe_x86_frame.erl +++ b/lib/hipe/x86/hipe_x86_frame.erl @@ -116,6 +116,8 @@ do_insn(I, LiveOut, Context, FPoff) -> {do_ret(I, Context, FPoff), context_framesize(Context)}; #shift{} -> {[do_shift(I, Context, FPoff)], FPoff}; + #test{} -> + {[do_test(I, Context, FPoff)], FPoff}; _ -> % comment, jmp, label, pseudo_jcc, pseudo_tailcall_prepare {[I], FPoff} end. @@ -188,6 +190,12 @@ do_shift(I, Context, FPoff) -> Dst = conv_opnd(Dst0, FPoff, Context), I#shift{src=Src,dst=Dst}. +do_test(I, Context, FPoff) -> + #test{src=Src0,dst=Dst0} = I, + Src = conv_opnd(Src0, FPoff, Context), + Dst = conv_opnd(Dst0, FPoff, Context), + I#test{src=Src,dst=Dst}. + conv_opnd(Opnd, FPoff, Context) -> case opnd_is_pseudo(Opnd) of false -> |