Displaying 20 results from an estimated 55 matches for "__divdi3".
2008 Oct 31
3
[LLVMdev] Default implementations for __ashldi3, __ashrdi3, __divdi3, __udivdi3, etc?
Are there existing "generic" implementations for these functions under
the same license as LLVM? By generic I mean C or IR that doesn't use
any particular HW intrinsics.
I read up on divides in Knuth's Seminumerical book, but decided to use
base-2 long division on the first go-around for simplicity. I know
it's not very efficient and I'm looking for shortcuts to
2008 Oct 31
0
[LLVMdev] Default implementations for __ashldi3, __ashrdi3, __divdi3, __udivdi3, etc?
On Oct 31, 2008, at 10:13 AM, Daniel M Gessel wrote:
> Are there existing "generic" implementations for these functions under
> the same license as LLVM? By generic I mean C or IR that doesn't use
> any particular HW intrinsics.
Hi Daniel,
We're working on a complete ground-up implementation of the API vended
by libgcc, including these routines, under the LLVM
2018 Dec 03
3
The builtins library of compiler-rt is a performance HOG^WKILLER
...lls __udivsi3 (52 instructions)
__muldi3 (41 instructions) performs a "long" multiplication on
16-bit "digits"
JFTR: I haven't checked whether clang actually calls these
SUPERFLUOUS routines listed above.
IT BETTER SHOULD NOT, NEVER!
__divdi3 (37 instructions) calls __udivmoddi4 (254 instructions)
__moddi3 (51 instructions) calls __udivmoddi4 (254 instructions)
__divmoddi4 (36 instructions) calls __divdi3 (37 instructions) which
calls __udivmoddi4 (254 instructions)
__udivdi3 (8 instructions) calls __udivmo...
2018 Dec 03
3
The builtins library of compiler-rt is a performance HOG^WKILLER
...uot;JFTR:"
> We should be using the assembly versions of the "di" division routines on
> i386. Except when compiler-rt is built with MSVC because MSVC can't parse
> the at&t assembly syntax.
Again: my offer to provide these routines still stands!
I have OPTIMISED __divdi3, __moddi3, __udivdi3 and __umoddi3 in
Intel syntax, wrapped as inline files into an NMakefile, for use
with ML.EXE.
For the optimisations see the patch I sent last week.
Since Howard Hinnant is NO MORE with LLVM: who is the CURRENT
code owner and reviewer for the builtins library, especially for
x...
2018 Dec 01
2
Where's the optimiser gone? (part 5.b): missed tail calls, and more...
...ed code; on the right the expected,
properly optimised code:
div: # @div
push ebp |
mov ebp, esp |
push dword ptr [ebp + 20] |
push dword ptr [ebp + 16] |
push dword ptr [ebp + 12] |
push dword ptr [ebp + 8] |
call __divdi3 | jmp __divdi3
add esp, 16 |
pop ebp |
ret |
long long mod(long long foo, long long bar)
{
return foo % bar;
}
mod: # @mod
push ebp |
mov ebp, esp |...
2006 Jul 09
6
[PATCH/RFC] klibc/kbuild: use separate kbuild files for each klibc subdirectory
This fixes a long standing issue where it was not possible to
do "make usr/klibc/arch/x86_64/longjmp.o" in the kernel.
The principle is that all .o files to be part of klibc are listed
with klib-y. For each directory a klib.list file is made that specify
all .o file and the final AR then adds all .o files to create libc.a.
This patch introduce the infrastructure and converts x86_64 to
2014 Jun 09
3
How to use --once? Does it work?
> On 06/08/2014 02:58 PM, Ady wrote:
> >>
> >> To be clear, I am not saying there is no bug - there might be.
> >>
> >
> > I performed the following test with several versions of Syslinux:
> >
> > 1_ Execute:
> > 'extlinux --once=non_default_label --install /mnt/sda1' ;
> > 2_ In first reboot, the
2003 May 21
3
use of 'long' in vorbis structures
The codebase sets up ogg_int32_t, etc, but then uses long directly in several structures. Unfortunately for me longs are 64 bits on my platform, not 32, and I end up getting hammered by unnecessary software math routine calls.
Should I be able to just search/replace 'long' with 'ogg_int32_t' in the code or would that cause more problems than it fixes?
-Dave
--- >8 ----
List
2014 Jun 09
4
How to use --once? Does it work?
On 06/09/2014 02:58 PM, H. Peter Anvin wrote:
>
> Actually, it looks more like this might be the problem:
>
> Info: Symbol __muldi3 is defined more than once
> Info: Symbol __divdi3 is defined more than once
> Info: Symbol __udivmoddi4 is defined more than once
> Info: Symbol __ashrdi3 is defined more than once
> Info: Symbol dev_stdcon_w is defined more than once
> Info: Symbol __moddi3 is defined more than once
> Info: Symbol __syslinux_adv_ptr is defined more...
2004 Feb 22
3
ARM/Thumb updates and some other minor tweaks
...29.000000000 -0700
+++ klibc-0.114/klibc/arch/i386/libgcc/__muldi3.S 2004-02-22 04:39:00.000000000 -0800
@@ -1,7 +1,7 @@
/*
* arch/i386/libgcc/__muldi3.S
*
- * 64*64 = 64 bit unsigned multiplication
+ * 64*64 = 64 bit signed multiplication
*/
.text
diff -ruN klibc-0.114_orig/klibc/libgcc/__divdi3.c klibc-0.114/klibc/libgcc/__divdi3.c
--- klibc-0.114_orig/klibc/libgcc/__divdi3.c 2002-08-27 22:16:15.000000000 -0700
+++ klibc-0.114/klibc/libgcc/__divdi3.c 2004-02-22 04:39:00.000000000 -0800
@@ -1,5 +1,5 @@
/*
- * arch/i386/libgcc/__divdi3.c
+ * libgcc/__divdi3.c
*/
#include <stdint.h&...
2010 Feb 02
1
[LLVMdev] __fixunsdfdi and etc with Visual Studio JIT?
Hello!
We are running bitcode with JIT on visual studio project and we get
strange external function call problems (jit generates jump to
00000000 address as can be seen in debugger) for libgcc functions like
__fixunsdfdi, __divdi3 etc. Currently we have attached our own
implementations of these functions to overcome this problem. What
would be the correct way to do this on Visual Studio? Why does JIT
generate such function calls at all instead of native code that
executes needed operation?
Thank you,
Kristaps.
2008 Jun 05
1
[LLVMdev] lli/JIT missing libgcc symbols on Mingw32/x86
...System/Win32/DynamicLibrary.inc (working copy)
@@ -134,6 +134,21 @@
#if defined(__MINGW32__)
EXPLICIT_SYMBOL_DEF(_alloca);
EXPLICIT_SYMBOL_DEF(__main);
+ EXPLICIT_SYMBOL_DEF(__ashldi3);
+ EXPLICIT_SYMBOL_DEF(__ashrdi3);
+ EXPLICIT_SYMBOL_DEF(__cmpdi2);
+ EXPLICIT_SYMBOL_DEF(__divdi3);
+ EXPLICIT_SYMBOL_DEF(__eprintf);
+ EXPLICIT_SYMBOL_DEF(__fixdfdi);
+ EXPLICIT_SYMBOL_DEF(__fixsfdi);
+ EXPLICIT_SYMBOL_DEF(__fixunsdfdi);
+ EXPLICIT_SYMBOL_DEF(__fixunssfdi);
+ EXPLICIT_SYMBOL_DEF(__floatdidf);
+ EXPLICIT_SYMBOL_DEF(__floatdisf);
+ EXPLICIT_SYMBOL_DEF(__l...
2009 Aug 08
2
[LLVMdev] Initial cut at a instruction raising patch
...n logic
> to handle this.
Maybe I'm not being very clear. I want this replacement to be done at
the very last minute (before unreferenced functions are removed, of
course).
I only want to catch libgcc-ish functions.
For example on the x86 (32) a function containing prinf() only needs
__divdi3 and __moddi3.
I'd like the code generator to do its magic until there is no more magic
to do, and then replace any 64 bit divides with the function call, for
example.
Make sense?
-Rich
2017 Feb 14
2
Ensuring chain dependencies with expansion to libcalls
...h,glue = CopyFromReg t6:1, Register:i64 %reg3, t6:1
t46: ch,glue = callseq_start t0, TargetConstant:i32<0>
t47: ch,glue = CopyToReg t46, Register:i64 %reg0, t2
t48: ch,glue = CopyToReg t47, Register:i64 %reg1, t4, t47:1
t50: ch,glue = SHAVEISD::CALL t48, TargetExternalSymbol:i32'__divdi3',
Register:i64 %reg0, Register:i64 %reg1, RegisterMask:Untyped, t48:1
t51: ch,glue = callseq_end t50, TargetConstant:i32<0>,
TargetExternalSymbol:i32'__divdi3', t50:1
t52: i64,ch,glue = CopyFromReg t51, Register:i64 %reg0, t51:1
t11: ch = CopyToReg t0, Register:i64 %vr...
2019 Aug 14
3
trouble building dahdi on kernel 5.2.7
dahdi built fine on 5.1.20, but on 5.2.7:
.............
CC [M]
/home/asterisk/rpmbuild/BUILD/linux-dade6ac/drivers/dahdi/vpmadt032_loader/dahdi_vpmadt032_loader.o
SHIPPED
/home/asterisk/rpmbuild/BUILD/linux-dade6ac/drivers/dahdi/vpmadt032_loader/vpmadt032_x86_64.o
LD [M]
/home/asterisk/rpmbuild/BUILD/linux-dade6ac/drivers/dahdi/dahdi_vpmadt032_loader.o
Building modules, stage 2.
2009 Aug 08
2
[LLVMdev] Initial cut at a instruction raising patch
Chris Lattner wrote:
> On Aug 8, 2009, at 8:37 AM, Richard Pennington wrote:
>
>> Hi,
>>
>> This patch raises selected instructions to function calls. I've dome
>> some preliminary testing and I works:
>
> Out of curiosity, why do you want this?
>
I do bitcode linking of a whole program, including the soft-float and
other support routines that a
2009 Aug 08
0
[LLVMdev] Initial cut at a instruction raising patch
On Aug 8, 2009, at 11:48 AM, Richard Pennington wrote:
> Chris Lattner wrote:
>> On Aug 8, 2009, at 8:37 AM, Richard Pennington wrote:
>>
>>> Hi,
>>>
>>> This patch raises selected instructions to function calls. I've dome
>>> some preliminary testing and I works:
>>
>> Out of curiosity, why do you want this?
>>
>
> I
2009 Aug 08
0
[LLVMdev] Initial cut at a instruction raising patch
...before isel, still has arbitrary
precision integers. The right place to do something like this is in
the code generator, which is where it happens.
-Chris
>
> I only want to catch libgcc-ish functions.
>
> For example on the x86 (32) a function containing prinf() only needs
> __divdi3 and __moddi3.
>
> I'd like the code generator to do its magic until there is no more
> magic
> to do, and then replace any 64 bit divides with the function call, for
> example.
>
> Make sense?
>
> -Rich
>
> _______________________________________________
>...
2010 Feb 02
2
[LLVMdev] __fixunsdfdi and etc with Visual Studio JIT?
Hello
> The bitcode was generated by llvm-gcc v2.6 for Mingw32/x86, which is
> available for download at the llvm site.
> Please let me know, if i should tell more.
Well, the answer is pretty obvious then. These calls are not generated
by JIT. They are already in your bitcode - they are generated by
llvm-gcc. The purpose of these calls were alreade explained by Eli.
You should either
2003 Dec 08
0
[PATCH] Add some libgcc stuff to ia64's Makefile.inc
...1.6 03/12/08 10:27:49-05:00 mort@green.i.bork.org +9 -1
B hpa@zytor.com|ChangeSet|20020723064121|00000|f8a756c36aa22cad
C
c Add a bunch of libgcc objects.
K 41984
O -rw-rw-r--
P klibc/arch/ia64/Makefile.inc
------------------------------------------------
D13 1
I13 9
arch/$(ARCH)/pipe.o \
libgcc/__divdi3.o \
libgcc/__divsi3.o \
libgcc/__udivdi3.o \
libgcc/__udivsi3.o \
libgcc/__umodsi3.o \
libgcc/__umoddi3.o \
libgcc/__udivmodsi4.o \
libgcc/__udivmoddi4.o
# Patch checksum=c61569d9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: klibc-libgcc-fixes.diff
Typ...