[mips] Fix a bug in function CC_MipsO32_FP64. The second double precision
authorAkira Hatanaka <ahatanaka@mips.com>
Tue, 12 Nov 2013 22:16:18 +0000 (22:16 +0000)
committerAkira Hatanaka <ahatanaka@mips.com>
Tue, 12 Nov 2013 22:16:18 +0000 (22:16 +0000)
argument was not being passed in $f14.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194522 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/MipsISelLowering.cpp
test/CodeGen/Mips/o32_cc.ll

index edba8747e97dbfe1ac79d4e2040fab0920a45b5a..1e8250c847fec8f6215bae704313f617813e8656 100644 (file)
@@ -2208,7 +2208,7 @@ static bool CC_MipsO32_FP32(unsigned ValNo, MVT ValVT,
 static bool CC_MipsO32_FP64(unsigned ValNo, MVT ValVT,
                             MVT LocVT, CCValAssign::LocInfo LocInfo,
                             ISD::ArgFlagsTy ArgFlags, CCState &State) {
-  static const uint16_t F64Regs[] = { Mips::D12_64, Mips::D12_64 };
+  static const uint16_t F64Regs[] = { Mips::D12_64, Mips::D14_64 };
 
   return CC_MipsO32(ValNo, ValVT, LocVT, LocInfo, ArgFlags, State, F64Regs);
 }
index e28ba6e09d05b065a6ff691f876705f704cdc4d4..08e5aab4f7ac4bb21c313c27449ce6931bbd17a6 100644 (file)
@@ -4,9 +4,9 @@
 ; RUN: llc -march=mipsel -mattr=+fp64 < %s | FileCheck -check-prefix=FP64EL %s
 
 ; $f12, $f14
-; FP32EL-LABEL: testlowercall0:
-; FP32EL-DAG: ldc1 $f12, %lo
-; FP32EL-DAG: ldc1 $f14, %lo
+; CHECK-LABEL: testlowercall0:
+; CHECK-DAG: ldc1 $f12, %lo
+; CHECK-DAG: ldc1 $f14, %lo
 define void @testlowercall0() nounwind {
 entry:
   tail call void @f0(double 5.000000e+00, double 6.000000e+00) nounwind
@@ -28,9 +28,9 @@ entry:
 declare void @f1(float, float)
 
 ; $f12, $f14
-; FP32EL-LABEL: testlowercall2:
-; FP32EL-DAG: lwc1 $f12, %lo
-; FP32EL-DAG: ldc1 $f14, %lo
+; CHECK-LABEL: testlowercall2:
+; CHECK-DAG: lwc1 $f12, %lo
+; CHECK-DAG: ldc1 $f14, %lo
 define void @testlowercall2() nounwind {
 entry:
   tail call void @f2(float 8.000000e+00, double 6.000000e+00) nounwind