diff options
author | Duncan Sands <baldrick@free.fr> | 2008-07-10 15:35:05 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2008-07-10 15:35:05 +0000 |
commit | 05de150b9ca151d912e57656b61bbecc11a595db (patch) | |
tree | 7af9693511fe3b278f6b59126a18719791ec7461 /lib/CodeGen/SelectionDAG/TargetLowering.cpp | |
parent | d27dafec5358dbe5bdc764060a156c8b535d07db (diff) | |
download | external_llvm-05de150b9ca151d912e57656b61bbecc11a595db.zip external_llvm-05de150b9ca151d912e57656b61bbecc11a595db.tar.gz external_llvm-05de150b9ca151d912e57656b61bbecc11a595db.tar.bz2 |
Add support for 128 bit multiplicative operations.
Lack of these caused a bootstrap failure with Fortran
on x86-64 with LegalizeTypes turned on. While there,
be nice to 16 bit machines and support expansion of
i32 too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53408 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/TargetLowering.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/TargetLowering.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 18e1c87..ee720121 100644 --- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -37,14 +37,19 @@ static void InitLibcallNames(const char **Names) { Names[RTLIB::SRA_I64] = "__ashrdi3"; Names[RTLIB::MUL_I32] = "__mulsi3"; Names[RTLIB::MUL_I64] = "__muldi3"; + Names[RTLIB::MUL_I128] = "__multi3"; Names[RTLIB::SDIV_I32] = "__divsi3"; Names[RTLIB::SDIV_I64] = "__divdi3"; + Names[RTLIB::SDIV_I128] = "__divti3"; Names[RTLIB::UDIV_I32] = "__udivsi3"; Names[RTLIB::UDIV_I64] = "__udivdi3"; + Names[RTLIB::UDIV_I128] = "__udivti3"; Names[RTLIB::SREM_I32] = "__modsi3"; Names[RTLIB::SREM_I64] = "__moddi3"; + Names[RTLIB::SREM_I128] = "__modti3"; Names[RTLIB::UREM_I32] = "__umodsi3"; Names[RTLIB::UREM_I64] = "__umoddi3"; + Names[RTLIB::UREM_I128] = "__umodti3"; Names[RTLIB::NEG_I32] = "__negsi2"; Names[RTLIB::NEG_I64] = "__negdi2"; Names[RTLIB::ADD_F32] = "__addsf3"; |