diff options
author | Akira Hatanaka <ahatanaka@mips.com> | 2013-05-16 19:48:37 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@mips.com> | 2013-05-16 19:48:37 +0000 |
commit | 39d40f7baf48e10010f421f8eda791c18090a3d8 (patch) | |
tree | f4201d4bc242e16ffb037ed5e8b132b791391aba /llvm/lib/CodeGen/MachineModuleInfo.cpp | |
parent | 81250934d7d318ccf8e61dd4f592ad6b20b4a8a5 (diff) | |
download | llvm-39d40f7baf48e10010f421f8eda791c18090a3d8.zip llvm-39d40f7baf48e10010f421f8eda791c18090a3d8.tar.gz llvm-39d40f7baf48e10010f421f8eda791c18090a3d8.tar.bz2 |
[mips] Fix instruction selection pattern for sint_to_fp node to avoid emitting an
invalid instruction sequence.
Rather than emitting an int-to-FP move instruction and an int-to-FP conversion
instruction during instruction selection, we emit a pseudo instruction which gets
expanded post-RA. Without this change, register allocation can possibly insert a
floating point register move instruction between the two instructions, which is not
valid according to the ISA manual.
mtc1 $f4, $4 # int-to-fp move instruction.
mov.s $f2, $f4 # move contents of $f4 to $f2.
cvt.s.w $f0, $f2 # int-to-fp conversion.
llvm-svn: 182042
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfo.cpp')
0 files changed, 0 insertions, 0 deletions