summaryrefslogtreecommitdiffstats
path: root/arch/score/lib
diff options
context:
space:
mode:
Diffstat (limited to 'arch/score/lib')
-rw-r--r--arch/score/lib/Makefile8
-rw-r--r--arch/score/lib/ashldi3.c46
-rw-r--r--arch/score/lib/ashrdi3.c48
-rw-r--r--arch/score/lib/checksum.S255
-rw-r--r--arch/score/lib/checksum_copy.c53
-rw-r--r--arch/score/lib/cmpdi2.c44
-rw-r--r--arch/score/lib/libgcc.h37
-rw-r--r--arch/score/lib/lshrdi3.c47
-rw-r--r--arch/score/lib/string.S156
-rw-r--r--arch/score/lib/ucmpdi2.c38
10 files changed, 0 insertions, 732 deletions
diff --git a/arch/score/lib/Makefile b/arch/score/lib/Makefile
deleted file mode 100644
index 553e30e81faf..000000000000
--- a/arch/score/lib/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Makefile for SCORE-specific library files..
-#
-
-lib-y += string.o checksum.o checksum_copy.o
-
-# libgcc-style stuff needed in the kernel
-obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o
diff --git a/arch/score/lib/ashldi3.c b/arch/score/lib/ashldi3.c
deleted file mode 100644
index 15691a910431..000000000000
--- a/arch/score/lib/ashldi3.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * arch/score/lib/ashldi3.c
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <linux/module.h>
-#include "libgcc.h"
-
-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;
-}
-EXPORT_SYMBOL(__ashldi3);
diff --git a/arch/score/lib/ashrdi3.c b/arch/score/lib/ashrdi3.c
deleted file mode 100644
index d9814a5d8d30..000000000000
--- a/arch/score/lib/ashrdi3.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * arch/score/lib/ashrdi3.c
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <linux/module.h>
-#include "libgcc.h"
-
-long long __ashrdi3(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.high = 1..1 or 0..0 */
- w.s.high =
- uu.s.high >> 31;
- w.s.low = uu.s.high >> -bm;
- } else {
- const unsigned int carries = (unsigned int) uu.s.high << bm;
-
- w.s.high = uu.s.high >> b;
- w.s.low = ((unsigned int) uu.s.low >> b) | carries;
- }
-
- return w.ll;
-}
-EXPORT_SYMBOL(__ashrdi3);
diff --git a/arch/score/lib/checksum.S b/arch/score/lib/checksum.S
deleted file mode 100644
index 1141f2b4a501..000000000000
--- a/arch/score/lib/checksum.S
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * arch/score/lib/csum_partial.S
- *
- * Score Processor version.
- *
- * Copyright (C) 2009 Sunplus Core Technology Co., Ltd.
- * Lennox Wu <lennox.wu@sunplusct.com>
- * Chen Liqin <liqin.chen@sunplusct.com>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include <linux/linkage.h>
-
-#define ADDC(sum,reg) \
- add sum, sum, reg; \
- cmp.c reg, sum; \
- bleu 9f; \
- addi sum, 0x1; \
-9:
-
-#define CSUM_BIGCHUNK(src, offset, sum) \
- lw r8, [src, offset + 0x00]; \
- lw r9, [src, offset + 0x04]; \
- lw r10, [src, offset + 0x08]; \
- lw r11, [src, offset + 0x0c]; \
- ADDC(sum, r8); \
- ADDC(sum, r9); \
- ADDC(sum, r10); \
- ADDC(sum, r11); \
- lw r8, [src, offset + 0x10]; \
- lw r9, [src, offset + 0x14]; \
- lw r10, [src, offset + 0x18]; \
- lw r11, [src, offset + 0x1c]; \
- ADDC(sum, r8); \
- ADDC(sum, r9); \
- ADDC(sum, r10); \
- ADDC(sum, r11); \
-
-#define src r4
-#define dest r5
-#define sum r27
-
- .text
-/* unknown src alignment and < 8 bytes to go */
-small_csumcpy:
- mv r5, r10
- ldi r9, 0x0
- cmpi.c r25, 0x1
- beq pass_small_set_t7 /*already set, jump to pass_small_set_t7*/
- andri.c r25,r4 , 0x1 /*Is src 2 bytes aligned?*/
-
-pass_small_set_t7:
- beq aligned
- cmpi.c r5, 0x0
- beq fold
- lbu r9, [src]
- slli r9,r9, 0x8 /*Little endian*/
- ADDC(sum, r9)
- addi src, 0x1
- subi.c r5, 0x1
-
- /*len still a full word */
-aligned:
- andri.c r8, r5, 0x4 /*Len >= 4?*/
- beq len_less_4bytes
-
- /* Still a full word (4byte) to go,and the src is word aligned.*/
- andri.c r8, src, 0x3 /*src is 4bytes aligned, so use LW!!*/
- beq four_byte_aligned
- lhu r9, [src]
- addi src, 2
- ADDC(sum, r9)
- lhu r9, [src]
- addi src, 2
- ADDC(sum, r9)
- b len_less_4bytes
-
-four_byte_aligned: /* Len >=4 and four byte aligned */
- lw r9, [src]
- addi src, 4
- ADDC(sum, r9)
-
-len_less_4bytes: /* 2 byte aligned aligned and length<4B */
- andri.c r8, r5, 0x2
- beq len_less_2bytes
- lhu r9, [src]
- addi src, 0x2 /* src+=2 */
- ADDC(sum, r9)
-
-len_less_2bytes: /* len = 1 */
- andri.c r8, r5, 0x1
- beq fold /* less than 2 and not equal 1--> len=0 -> fold */
- lbu r9, [src]
-
-fold_ADDC:
- ADDC(sum, r9)
-fold:
- /* fold checksum */
- slli r26, sum, 16
- add sum, sum, r26
- cmp.c r26, sum
- srli sum, sum, 16
- bleu 1f /* if r26<=sum */
- addi sum, 0x1 /* r26>sum */
-1:
- /* odd buffer alignment? r25 was set in csum_partial */
- cmpi.c r25, 0x0
- beq 1f
- slli r26, sum, 8
- srli sum, sum, 8
- or sum, sum, r26
- andi sum, 0xffff
-1:
- .set optimize
- /* Add the passed partial csum. */
- ADDC(sum, r6)
- mv r4, sum
- br r3
- .set volatile
-
- .align 5
-ENTRY(csum_partial)
- ldi sum, 0
- ldi r25, 0
- mv r10, r5
- cmpi.c r5, 0x8
- blt small_csumcpy /* < 8(signed) bytes to copy */
- cmpi.c r5, 0x0
- beq out
- andri.c r25, src, 0x1 /* odd buffer? */
-
- beq word_align
-hword_align: /* 1 byte */
- lbu r8, [src]
- subi r5, 0x1
- slli r8, r8, 8
- ADDC(sum, r8)
- addi src, 0x1
-
-word_align: /* 2 bytes */
- andri.c r8, src, 0x2 /* 4bytes(dword)_aligned? */
- beq dword_align /* not, maybe dword_align */
- lhu r8, [src]
- subi r5, 0x2
- ADDC(sum, r8)
- addi src, 0x2
-
-dword_align: /* 4bytes */
- mv r26, r5 /* maybe useless when len >=56 */
- ldi r8, 56
- cmp.c r8, r5
- bgtu do_end_words /* if a1(len)<t0(56) ,unsigned */
- andri.c r26, src, 0x4
- beq qword_align
- lw r8, [src]
- subi r5, 0x4
- ADDC(sum, r8)
- addi src, 0x4
-
-qword_align: /* 8 bytes */
- andri.c r26, src, 0x8
- beq oword_align
- lw r8, [src, 0x0]
- lw r9, [src, 0x4]
- subi r5, 0x8 /* len-=0x8 */
- ADDC(sum, r8)
- ADDC(sum, r9)
- addi src, 0x8
-
-oword_align: /* 16bytes */
- andri.c r26, src, 0x10
- beq begin_movement
- lw r10, [src, 0x08]
- lw r11, [src, 0x0c]
- lw r8, [src, 0x00]
- lw r9, [src, 0x04]
- ADDC(sum, r10)
- ADDC(sum, r11)
- ADDC(sum, r8)
- ADDC(sum, r9)
- subi r5, 0x10
- addi src, 0x10
-
-begin_movement:
- srli.c r26, r5, 0x7 /* len>=128? */
- beq 1f /* len<128 */
-
-/* r26 is the result that computed in oword_align */
-move_128bytes:
- CSUM_BIGCHUNK(src, 0x00, sum)
- CSUM_BIGCHUNK(src, 0x20, sum)
- CSUM_BIGCHUNK(src, 0x40, sum)
- CSUM_BIGCHUNK(src, 0x60, sum)
- subi.c r26, 0x01 /* r26 equals len/128 */
- addi src, 0x80
- bne move_128bytes
-
-1: /* len<128,we process 64byte here */
- andri.c r10, r5, 0x40
- beq 1f
-
-move_64bytes:
- CSUM_BIGCHUNK(src, 0x00, sum)
- CSUM_BIGCHUNK(src, 0x20, sum)
- addi src, 0x40
-
-1: /* len<64 */
- andri r26, r5, 0x1c /* 0x1c=28 */
- andri.c r10, r5, 0x20
- beq do_end_words /* decided by andri */
-
-move_32bytes:
- CSUM_BIGCHUNK(src, 0x00, sum)
- andri r26, r5, 0x1c
- addri src, src, 0x20
-
-do_end_words: /* len<32 */
- /* r26 was set already in dword_align */
- cmpi.c r26, 0x0
- beq maybe_end_cruft /* len<28 or len<56 */
- srli r26, r26, 0x2
-
-end_words:
- lw r8, [src]
- subi.c r26, 0x1 /* unit is 4 byte */
- ADDC(sum, r8)
- addi src, 0x4
- cmpi.c r26, 0x0
- bne end_words /* r26!=0 */
-
-maybe_end_cruft: /* len<4 */
- andri r10, r5, 0x3
-
-small_memcpy:
- mv r5, r10
- j small_csumcpy
-
-out:
- mv r4, sum
- br r3
-
-END(csum_partial)
diff --git a/arch/score/lib/checksum_copy.c b/arch/score/lib/checksum_copy.c
deleted file mode 100644
index 39b99ef61804..000000000000
--- a/arch/score/lib/checksum_copy.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * arch/score/lib/csum_partial_copy.c
- *
- * Score Processor version.
- *
- * Copyright (C) 2009 Sunplus Core Technology Co., Ltd.
- * Lennox Wu <lennox.wu@sunplusct.com>
- * Chen Liqin <liqin.chen@sunplusct.com>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <net/checksum.h>
-
-#include <linux/uaccess.h>
-
-unsigned int csum_partial_copy(const char *src, char *dst,
- int len, unsigned int sum)
-{
- sum = csum_partial(src, len, sum);
- memcpy(dst, src, len);
-
- return sum;
-}
-
-unsigned int csum_partial_copy_from_user(const char *src, char *dst,
- int len, unsigned int sum,
- int *err_ptr)
-{
- int missing;
-
- missing = copy_from_user(dst, src, len);
- if (missing) {
- memset(dst + len - missing, 0, missing);
- *err_ptr = -EFAULT;
- }
-
- return csum_partial(dst, len, sum);
-}
-EXPORT_SYMBOL(csum_partial_copy_from_user);
diff --git a/arch/score/lib/cmpdi2.c b/arch/score/lib/cmpdi2.c
deleted file mode 100644
index 1ed5290c66ed..000000000000
--- a/arch/score/lib/cmpdi2.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * arch/score/lib/cmpdi2.c
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <linux/module.h>
-#include "libgcc.h"
-
-word_type __cmpdi2(long long a, long long b)
-{
- const DWunion au = {
- .ll = a
- };
- const DWunion bu = {
- .ll = b
- };
-
- if (au.s.high < bu.s.high)
- return 0;
- else if (au.s.high > bu.s.high)
- return 2;
-
- if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
- return 0;
- else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
- return 2;
-
- return 1;
-}
-EXPORT_SYMBOL(__cmpdi2);
diff --git a/arch/score/lib/libgcc.h b/arch/score/lib/libgcc.h
deleted file mode 100644
index 0f12543d9f31..000000000000
--- a/arch/score/lib/libgcc.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * arch/score/lib/libgcc.h
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#ifndef __ASM_LIBGCC_H
-#define __ASM_LIBGCC_H
-
-#include <asm/byteorder.h>
-
-typedef int word_type __attribute__((mode(__word__)));
-
-struct DWstruct {
- int low, high;
-};
-
-typedef union {
- struct DWstruct s;
- long long ll;
-} DWunion;
-
-#endif /* __ASM_LIBGCC_H */
diff --git a/arch/score/lib/lshrdi3.c b/arch/score/lib/lshrdi3.c
deleted file mode 100644
index ce21175fd791..000000000000
--- a/arch/score/lib/lshrdi3.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * arch/score/lib/lshrdi3.c
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include <linux/module.h>
-#include "libgcc.h"
-
-long long __lshrdi3(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.high = 0;
- w.s.low = (unsigned int) uu.s.high >> -bm;
- } else {
- const unsigned int carries = (unsigned int) uu.s.high << bm;
-
- w.s.high = (unsigned int) uu.s.high >> b;
- w.s.low = ((unsigned int) uu.s.low >> b) | carries;
- }
-
- return w.ll;
-}
-EXPORT_SYMBOL(__lshrdi3);
diff --git a/arch/score/lib/string.S b/arch/score/lib/string.S
deleted file mode 100644
index e0c0318c9010..000000000000
--- a/arch/score/lib/string.S
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * arch/score/lib/string.S
- *
- * Score Processor version.
- *
- * Copyright (C) 2009 Sunplus Core Technology Co., Ltd.
- * Chen Liqin <liqin.chen@sunplusct.com>
- * Lennox Wu <lennox.wu@sunplusct.com>
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <linux/linkage.h>
-#include <asm-generic/errno.h>
-
- .text
- .align 2
-ENTRY(__strncpy_from_user)
- cmpi.c r6, 0
- mv r9, r6
- ble .L2
-0: lbu r7, [r5]
- ldi r8, 0
-1: sb r7, [r4]
-2: lb r6, [r5]
- cmp.c r6, r8
- beq .L2
-
-.L5:
- addi r8, 1
- cmp.c r8, r9
- beq .L7
-3: lbu r6, [r5, 1]+
-4: sb r6, [r4, 1]+
-5: lb r7, [r5]
- cmpi.c r7, 0
- bne .L5
-.L7:
- mv r4, r8
- br r3
-.L2:
- ldi r8, 0
- mv r4, r8
- br r3
- .section .fixup, "ax"
-99:
- ldi r4, -EFAULT
- br r3
- .previous
- .section __ex_table, "a"
- .align 2
- .word 0b ,99b
- .word 1b ,99b
- .word 2b ,99b
- .word 3b ,99b
- .word 4b ,99b
- .word 5b ,99b
- .previous
-
- .align 2
-ENTRY(__strnlen_user)
- cmpi.c r5, 0
- ble .L11
-0: lb r6, [r4]
- ldi r7, 0
- cmp.c r6, r7
- beq .L11
-.L15:
- addi r7, 1
- cmp.c r7, r5
- beq .L23
-1: lb r6, [r4,1]+
- cmpi.c r6, 0
- bne .L15
-.L23:
- addri r4, r7, 1
- br r3
-
-.L11:
- ldi r4, 1
- br r3
- .section .fixup, "ax"
-99:
- ldi r4, 0
- br r3
-
- .section __ex_table,"a"
- .align 2
- .word 0b, 99b
- .word 1b, 99b
- .previous
-
- .align 2
-ENTRY(__copy_tofrom_user)
- cmpi.c r6, 0
- mv r10,r6
- beq .L32
- ldi r9, 0
-.L34:
- add r6, r5, r9
-0: lbu r8, [r6]
- add r7, r4, r9
-1: sb r8, [r7]
- addi r9, 1
- cmp.c r9, r10
- bne .L34
-.L32:
- ldi r4, 0
- br r3
- .section .fixup, "ax"
-99:
- sub r4, r10, r9
- br r3
- .previous
- .section __ex_table, "a"
- .align 2
- .word 0b, 99b
- .word 1b, 99b
- .previous
-
- .align 2
-ENTRY(__clear_user)
- cmpi.c r5, 0
- beq .L38
- ldi r6, 0
- mv r7, r6
-.L40:
- addi r6, 1
-0: sb r7, [r4]+, 1
- cmp.c r6, r5
- bne .L40
-.L38:
- ldi r4, 0
- br r3
-
- .section .fixup, "ax"
-99:
- br r3
- .previous
- .section __ex_table, "a"
- .align 2
- .word 0b, 99b
- .previous
diff --git a/arch/score/lib/ucmpdi2.c b/arch/score/lib/ucmpdi2.c
deleted file mode 100644
index b15241e0b079..000000000000
--- a/arch/score/lib/ucmpdi2.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * arch/score/lib/ucmpdi2.c
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.
- *
- * 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.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see the file COPYING, or write
- * to the Free Software Foundation, Inc.,
- * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <linux/module.h>
-#include "libgcc.h"
-
-word_type __ucmpdi2(unsigned long long a, unsigned long long b)
-{
- const DWunion au = {.ll = a};
- const DWunion bu = {.ll = b};
-
- if ((unsigned int) au.s.high < (unsigned int) bu.s.high)
- return 0;
- else if ((unsigned int) au.s.high > (unsigned int) bu.s.high)
- return 2;
- if ((unsigned int) au.s.low < (unsigned int) bu.s.low)
- return 0;
- else if ((unsigned int) au.s.low > (unsigned int) bu.s.low)
- return 2;
- return 1;
-}
-EXPORT_SYMBOL(__ucmpdi2);
OpenPOWER on IntegriCloud