aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineModuleInfo.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2013-05-16 19:48:37 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2013-05-16 19:48:37 +0000
commit39d40f7baf48e10010f421f8eda791c18090a3d8 (patch)
treef4201d4bc242e16ffb037ed5e8b132b791391aba /llvm/lib/CodeGen/MachineModuleInfo.cpp
parent81250934d7d318ccf8e61dd4f592ad6b20b4a8a5 (diff)
downloadllvm-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