diff options
author | Björn Gustavsson <[email protected]> | 2010-04-19 07:29:54 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-04-19 07:39:38 +0200 |
commit | e965d90b5fe84fcb519ab8a8d41f7c0acb4c4c68 (patch) | |
tree | dcc9df7e56536d8f2b5ede7c77a56b8c2e696e12 /lib/hipe/x86/hipe_x86_encode.erl | |
parent | f39289291f9fcbb7b813584edb7d465e480be212 (diff) | |
download | otp-e965d90b5fe84fcb519ab8a8d41f7c0acb4c4c68.tar.gz otp-e965d90b5fe84fcb519ab8a8d41f7c0acb4c4c68.tar.bz2 otp-e965d90b5fe84fcb519ab8a8d41f7c0acb4c4c68.zip |
beam_type: Improve coalescing of fmove/2 and move/2 instructions
The following instruction sequence:
fmove {fr,Fr} {x,TempXreg}
move {x,TempXreg} {y,Dest}
is rewritten to:
fmove {fr,Fr} {y,Dest}
(Provided that {x,TempXreg} is killed by the instructions following
the sequence.)
Generalize the optimization to also handle:
fmove {fr,Fr} {x,TempXreg}
move {x,TempXreg} {_,Dest}
That is, the destination register can be either an X or Y register.
Diffstat (limited to 'lib/hipe/x86/hipe_x86_encode.erl')
0 files changed, 0 insertions, 0 deletions