[llvm] r194522 - [mips] Fix a bug in function CC_MipsO32_FP64. The second double precision

Akira Hatanaka ahatanaka at mips.com
Tue Nov 12 14:16:19 PST 2013


Author: ahatanak
Date: Tue Nov 12 16:16:18 2013
New Revision: 194522

URL: http://llvm.org/viewvc/llvm-project?rev=194522&view=rev
Log:
[mips] Fix a bug in function CC_MipsO32_FP64. The second double precision
argument was not being passed in $f14.
 

Modified:
    llvm/trunk/lib/Target/Mips/MipsISelLowering.cpp
    llvm/trunk/test/CodeGen/Mips/o32_cc.ll

Modified: llvm/trunk/lib/Target/Mips/MipsISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsISelLowering.cpp?rev=194522&r1=194521&r2=194522&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Mips/MipsISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/Mips/MipsISelLowering.cpp Tue Nov 12 16:16:18 2013
@@ -2208,7 +2208,7 @@ static bool CC_MipsO32_FP32(unsigned Val
 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);
 }

Modified: llvm/trunk/test/CodeGen/Mips/o32_cc.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/o32_cc.ll?rev=194522&r1=194521&r2=194522&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Mips/o32_cc.ll (original)
+++ llvm/trunk/test/CodeGen/Mips/o32_cc.ll Tue Nov 12 16:16:18 2013
@@ -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





More information about the llvm-commits mailing list