Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

microblaze: Add __ucmpdi2() helper function

Add missing __ucmpdi2 helper function.

Error log:
kernel/built-in.o: In function `print_graph_duration':
: undefined reference to `__ucmpdi2'
kernel/built-in.o: In function `print_graph_duration':
: undefined reference to `__ucmpdi2'

Based on MIPS code.

Signed-off-by: Michal Simek <monstr@monstr.eu>

+21
+1
arch/microblaze/lib/Makefile
··· 25 25 lib-y += modsi3.o 26 26 lib-y += muldi3.o 27 27 lib-y += mulsi3.o 28 + lib-y += ucmpdi2.o 28 29 lib-y += udivsi3.o 29 30 lib-y += umodsi3.o
+20
arch/microblaze/lib/ucmpdi2.c
··· 1 + #include <linux/module.h> 2 + 3 + #include "libgcc.h" 4 + 5 + word_type __ucmpdi2(unsigned long long a, unsigned long long b) 6 + { 7 + const DWunion au = {.ll = a}; 8 + const DWunion bu = {.ll = b}; 9 + 10 + if ((unsigned int) au.s.high < (unsigned int) bu.s.high) 11 + return 0; 12 + else if ((unsigned int) au.s.high > (unsigned int) bu.s.high) 13 + return 2; 14 + if ((unsigned int) au.s.low < (unsigned int) bu.s.low) 15 + return 0; 16 + else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) 17 + return 2; 18 + return 1; 19 + } 20 + EXPORT_SYMBOL(__ucmpdi2);