summaryrefslogtreecommitdiff
path: root/src/arch/mips/ashldi3.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/mips/ashldi3.c')
-rw-r--r--src/arch/mips/ashldi3.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/arch/mips/ashldi3.c b/src/arch/mips/ashldi3.c
deleted file mode 100644
index e3282f55ea..0000000000
--- a/src/arch/mips/ashldi3.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * Based on linux arch/mips/lib/ashldi3.c
- */
-
-#ifndef __ORDER_LITTLE_ENDIAN__
-#errror "What endian are you!?"
-#endif
-
-typedef unsigned int word_type;
-long long __ashldi3(long long u, word_type b);
-
-struct DWstruct {
- int low, high;
-};
-typedef union {
- struct DWstruct s;
- long long ll;
-} DWunion;
-
-long long __ashldi3(long long u, word_type b)
-{
- DWunion uu, w;
- word_type bm;
-
- if (b == 0)
- return u;
-
- uu.ll = u;
- bm = 32 - b;
-
- if (bm <= 0) {
- w.s.low = 0;
- w.s.high = (unsigned int) uu.s.low << -bm;
- } else {
- const unsigned int carries = (unsigned int) uu.s.low >> bm;
-
- w.s.low = (unsigned int) uu.s.low << b;
- w.s.high = ((unsigned int) uu.s.high << b) | carries;
- }
-
- return w.ll;
-}