aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2004-11-20 00:10:20 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2004-11-20 00:10:20 +0000
commit1dc555c0d3a4abc2d0b6fe15ba2070b3ac884143 (patch)
treed4ca2fb47dee8a2058efefede90e5fb06c3981e6 /lib
parentdef5745314661804d98e8c4682c53a73e0817174 (diff)
Revert the patch that adds Function* for each 64-bit libc div/mul/rem that we
want to do; instead, we can use MachineInstr::addExternalSymbol(char*, bool) and thus we don't have to modify the Module as we are code generating for it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18025 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/Sparc/SparcV8ISelSimple.cpp23
-rw-r--r--lib/Target/SparcV8/SparcV8ISelSimple.cpp23
2 files changed, 0 insertions, 46 deletions
diff --git a/lib/Target/Sparc/SparcV8ISelSimple.cpp b/lib/Target/Sparc/SparcV8ISelSimple.cpp
index 2786c13f67..8c448fcad3 100644
--- a/lib/Target/Sparc/SparcV8ISelSimple.cpp
+++ b/lib/Target/Sparc/SparcV8ISelSimple.cpp
@@ -36,10 +36,6 @@ namespace {
MachineBasicBlock *BB; // The current MBB we are compiling
int VarArgsOffset; // Offset from fp for start of varargs area
- // External functions we may use in compiling the Module
- Function *__div64Fn, *__mul64Fn, *__rem64Fn,
- *__udiv64Fn, *__umul64Fn, *__urem64Fn;
-
std::map<Value*, unsigned> RegMap; // Mapping between Val's and SSA Regs
// MBBMap - Mapping between LLVM BB -> Machine BB
@@ -47,25 +43,6 @@ namespace {
V8ISel(TargetMachine &tm) : TM(tm), F(0), BB(0) {}
- bool doInitialization(Module &M) {
- // Add external functions that we may call
- Type *l = Type::LongTy;
- Type *ul = Type::ULongTy;
- // long __div64(long, long);
- __div64Fn = M.getOrInsertFunction("__div64", l, l, l, 0);
- // long __div64(long, long);
- __mul64Fn = M.getOrInsertFunction("__mul64", l, l, l, 0);
- // long __div64(long, long);
- __rem64Fn = M.getOrInsertFunction("__rem64", l, l, l, 0);
- // unsigned long __udiv64(unsigned long, unsigned long);
- __udiv64Fn = M.getOrInsertFunction("__udiv64", ul, ul, ul, 0);
- // unsigned long __umul64(unsigned long, unsigned long);
- __umul64Fn = M.getOrInsertFunction("__umul64", ul, ul, ul, 0);
- // unsigned long __urem64(unsigned long, unsigned long);
- __urem64Fn = M.getOrInsertFunction("__urem64", ul, ul, ul, 0);
- return true;
- }
-
/// runOnFunction - Top level implementation of instruction selection for
/// the entire function.
///
diff --git a/lib/Target/SparcV8/SparcV8ISelSimple.cpp b/lib/Target/SparcV8/SparcV8ISelSimple.cpp
index 2786c13f67..8c448fcad3 100644
--- a/lib/Target/SparcV8/SparcV8ISelSimple.cpp
+++ b/lib/Target/SparcV8/SparcV8ISelSimple.cpp
@@ -36,10 +36,6 @@ namespace {
MachineBasicBlock *BB; // The current MBB we are compiling
int VarArgsOffset; // Offset from fp for start of varargs area
- // External functions we may use in compiling the Module
- Function *__div64Fn, *__mul64Fn, *__rem64Fn,
- *__udiv64Fn, *__umul64Fn, *__urem64Fn;
-
std::map<Value*, unsigned> RegMap; // Mapping between Val's and SSA Regs
// MBBMap - Mapping between LLVM BB -> Machine BB
@@ -47,25 +43,6 @@ namespace {
V8ISel(TargetMachine &tm) : TM(tm), F(0), BB(0) {}
- bool doInitialization(Module &M) {
- // Add external functions that we may call
- Type *l = Type::LongTy;
- Type *ul = Type::ULongTy;
- // long __div64(long, long);
- __div64Fn = M.getOrInsertFunction("__div64", l, l, l, 0);
- // long __div64(long, long);
- __mul64Fn = M.getOrInsertFunction("__mul64", l, l, l, 0);
- // long __div64(long, long);
- __rem64Fn = M.getOrInsertFunction("__rem64", l, l, l, 0);
- // unsigned long __udiv64(unsigned long, unsigned long);
- __udiv64Fn = M.getOrInsertFunction("__udiv64", ul, ul, ul, 0);
- // unsigned long __umul64(unsigned long, unsigned long);
- __umul64Fn = M.getOrInsertFunction("__umul64", ul, ul, ul, 0);
- // unsigned long __urem64(unsigned long, unsigned long);
- __urem64Fn = M.getOrInsertFunction("__urem64", ul, ul, ul, 0);
- return true;
- }
-
/// runOnFunction - Top level implementation of instruction selection for
/// the entire function.
///