Fix a problem with dual mips16/mips32 mode. When the underlying processor
authorReed Kotler <rkotler@mips.com>
Fri, 30 Aug 2013 19:40:56 +0000 (19:40 +0000)
committerReed Kotler <rkotler@mips.com>
Fri, 30 Aug 2013 19:40:56 +0000 (19:40 +0000)
commitc673f9c6fecb0f828845ada7ea5458f66f896283
treec01992b0db5afefcd839eec44580f99e8406a9a2
parent846b31d74aa673a178f57f9d47f366d8ddb756d3
Fix a problem with dual mips16/mips32 mode. When the underlying processor
has hard float, when you compile the mips32 code you have to make sure
that it knows to compile any mips32 routines as hard float. I need to clean
up the way mips16 hard float is specified but I need to first think through
all the details. Mips16 always has a form of soft float, the difference being
whether the underlying hardware has floating point. So it's not really
necessary to pass the -soft-float to llvm since soft-float is always true
for mips16 by virtue of the fact that it will not register floating point
registers. By using this fact, I can simplify the way this is all handled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189690 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/Mips16HardFloat.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsSEISelLowering.cpp
lib/Target/Mips/MipsSubtarget.cpp
lib/Target/Mips/MipsSubtarget.h
test/CodeGen/Mips/nomips16.ll [new file with mode: 0644]