diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-28 18:32:28 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-06-28 18:32:28 +0000 |
commit | 7297e7e223b931e351d6f4e551504f94ff141102 (patch) | |
tree | 003656d98f406c65b3484a2885d7d470c07d0088 /llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp | |
parent | 772a91f8e436229361458420a43dff3847d3bb9f (diff) | |
download | bcm5719-llvm-7297e7e223b931e351d6f4e551504f94ff141102.tar.gz bcm5719-llvm-7297e7e223b931e351d6f4e551504f94ff141102.zip |
Clean up the handling of the x87 fp stack to make it more robust.
Drop the FpMov instructions, use plain COPY instead.
Drop the FpSET/GET instruction for accessing fixed stack positions.
Instead use normal COPY to/from ST registers around inline assembly, and
provide a single new FpPOP_RETVAL instruction that can access the return
value(s) from a call. This is still necessary since you cannot tell from
the CALL instruction alone if it returns anything on the FP stack. Teach
fast isel to use this.
This provides a much more robust way of handling fixed stack registers -
we can tolerate arbitrary FP stack instructions inserted around calls
and inline assembly. Live range splitting could sometimes break x87 code
by inserting spill code in unfortunate places.
As a bonus we handle floating point inline assembly correctly now.
llvm-svn: 134018
Diffstat (limited to 'llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp')
0 files changed, 0 insertions, 0 deletions