Fix fp_constant_op failure.
authorDale Johannesen <dalej@apple.com>
Tue, 10 Jul 2007 21:53:30 +0000 (21:53 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 10 Jul 2007 21:53:30 +0000 (21:53 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38514 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86FloatingPoint.cpp
lib/Target/X86/X86InstrFPStack.td

index fdd8781d849c2fd2b7a21e7e9c9d6cfc8a2a5050..c293a32d010e951144308018879b25f4e2c75875 100644 (file)
@@ -326,8 +326,9 @@ static int Lookup(const TableEntry *Table, unsigned N, unsigned Opcode) {
 static const TableEntry OpcodeTable[] = {
   { X86::ABS_Fp32     , X86::ABS_F     },
   { X86::ABS_Fp64     , X86::ABS_F     },
-  { X86::ADD_Fp32m   , X86::ADD_F32m  },
-  { X86::ADD_Fp64m   , X86::ADD_F64m  },
+  { X86::ADD_Fp32m    , X86::ADD_F32m  },
+  { X86::ADD_Fp64m    , X86::ADD_F64m  },
+  { X86::ADD_Fp64m32  , X86::ADD_F32m  },
   { X86::ADD_FpI16m32 , X86::ADD_FI16m },
   { X86::ADD_FpI16m64 , X86::ADD_FI16m },
   { X86::ADD_FpI32m32 , X86::ADD_FI32m },
@@ -354,12 +355,14 @@ static const TableEntry OpcodeTable[] = {
   { X86::COS_Fp64     , X86::COS_F     },
   { X86::DIVR_Fp32m   , X86::DIVR_F32m },
   { X86::DIVR_Fp64m   , X86::DIVR_F64m },
+  { X86::DIVR_Fp64m32 , X86::DIVR_F32m },
   { X86::DIVR_FpI16m32, X86::DIVR_FI16m},
   { X86::DIVR_FpI16m64, X86::DIVR_FI16m},
   { X86::DIVR_FpI32m32, X86::DIVR_FI32m},
   { X86::DIVR_FpI32m64, X86::DIVR_FI32m},
   { X86::DIV_Fp32m    , X86::DIV_F32m  },
   { X86::DIV_Fp64m    , X86::DIV_F64m  },
+  { X86::DIV_Fp64m32  , X86::DIV_F32m  },
   { X86::DIV_FpI16m32 , X86::DIV_FI16m },
   { X86::DIV_FpI16m64 , X86::DIV_FI16m },
   { X86::DIV_FpI32m32 , X86::DIV_FI32m },
@@ -390,6 +393,7 @@ static const TableEntry OpcodeTable[] = {
   { X86::LD_Fp64m     , X86::LD_F64m   },
   { X86::MUL_Fp32m    , X86::MUL_F32m  },
   { X86::MUL_Fp64m    , X86::MUL_F64m  },
+  { X86::MUL_Fp64m32  , X86::MUL_F32m  },
   { X86::MUL_FpI16m32 , X86::MUL_FI16m },
   { X86::MUL_FpI16m64 , X86::MUL_FI16m },
   { X86::MUL_FpI32m32 , X86::MUL_FI32m },
@@ -403,12 +407,14 @@ static const TableEntry OpcodeTable[] = {
   { X86::ST_Fp64m32   , X86::ST_F32m   },
   { X86::SUBR_Fp32m   , X86::SUBR_F32m },
   { X86::SUBR_Fp64m   , X86::SUBR_F64m },
+  { X86::SUBR_Fp64m32 , X86::SUBR_F32m },
   { X86::SUBR_FpI16m32, X86::SUBR_FI16m},
   { X86::SUBR_FpI16m64, X86::SUBR_FI16m},
   { X86::SUBR_FpI32m32, X86::SUBR_FI32m},
   { X86::SUBR_FpI32m64, X86::SUBR_FI32m},
   { X86::SUB_Fp32m    , X86::SUB_F32m  },
   { X86::SUB_Fp64m    , X86::SUB_F64m  },
+  { X86::SUB_Fp64m32  , X86::SUB_F32m  },
   { X86::SUB_FpI16m32 , X86::SUB_FI16m },
   { X86::SUB_FpI16m64 , X86::SUB_FI16m },
   { X86::SUB_FpI32m32 , X86::SUB_FI32m },
index 7bd790ca6aac69654eef204c997d955836c9eb3d..11aeb072c775895d26df00a988cfcb20fd008803 100644 (file)
@@ -172,6 +172,9 @@ def _Fp32m  : FpI<(ops RFP32:$dst, RFP32:$src1, f32mem:$src2), OneArgFPRW,
 def _Fp64m  : FpI<(ops RFP64:$dst, RFP64:$src1, f64mem:$src2), OneArgFPRW,
                   [(set RFP64:$dst, 
                     (OpNode RFP64:$src1, (loadf64 addr:$src2)))]>;
+def _Fp64m32: FpI<(ops RFP64:$dst, RFP64:$src1, f32mem:$src2), OneArgFPRW,
+                  [(set RFP64:$dst, 
+                    (OpNode RFP64:$src1, (extloadf32 addr:$src2)))]>;
 def _F32m  : FPI<0xD8, fp, (ops f32mem:$src), 
                  !strconcat("f", !strconcat(asmstring, "{s} $src"))>;
 def _F64m  : FPI<0xDC, fp, (ops f64mem:$src),