summaryrefslogtreecommitdiff
path: root/libm/ldouble_wrappers.c
AgeCommit message (Collapse)Author
2010-11-02ldouble_wrappers: remove i386-specific optimizationDenys Vlasenko
It is deemed too unsafe. Quoting Timo: If I'm building with "-fPIC -pg" it instruments all C functions with profiler stuff which is called via PLT and causes EBX reloads --> crash -fno-omit-frame-pointer is sometimes useful for profiling too --> crash Also the upcoming -fsplit-stack will be broken by this too (that might need additional uclibc support though). And I'm pretty sure there's also other similar compiler features. There's no predefined #defines in gcc for any of these. What I'm trying to say that there are *numerous* situations when the compiler can create stack frame for you without you ever knowing it. And if you want to do a tail jump, you really should be doing it from .S file where you control fully the prologue/epilogue code. (GCC naked attribute does not seem to work on x86.) Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-31libm: disable tail jump trick if __SSP_ALL__ (was using wrong conditional)Denys Vlasenko
Thanks, Timo! Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-31libm: remove int_WRAPPER_C99 macro, add test which checks that I did not ↵Denys Vlasenko
break it Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-31libm: revert wrong ldouble wrapper hack "fix"Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-10-22libm/x86: use call instead of jump for wrappersTimo Teräs
GCC can emit prologue/epilogue code for the functions in various different cases: - frame pointers - PIC build (to load ebx for indirect calls/jumps) - forced stack smashing protection If we used jump in such cases, we'd corrupt the call stack and crash. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-06-24use uniform form of C99 keywordsBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2010-01-21rename exp(onent) to exBernhard Reutner-Fischer
to avoid shadow warnings Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> (cherry picked from commit f331f6d2eff5fb623bcc42213ccec12c7dbf95fd) Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2009-11-15libm: use int_WRAPPER_C99 macroBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-11-14Revert "libm: fix C99_MATH on __NO_LONG_DOUBLE_MATH hosts"Bernhard Reutner-Fischer
This reverts commit 73d6e5c41b61633e22ea74e3aa2df721512dca57. barking up the wrong tree Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-11-14libm: fix C99_MATH on __NO_LONG_DOUBLE_MATH hostsBernhard Reutner-Fischer
alias l to their normal double counterparts. Works around problems with libgcc blindly calling __finitel on e.g. ppc32 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-08-30honour NO_LONG_DOUBLE_MATHBernhard Reutner-Fischer
This fixes compilation errors on hosts that turn off long double support for C99 like powerpc32. Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-02-17libm/Makefile.in: reformat the list of wrappersDenis Vlasenko
so that it is easier to modify, sort, etc; use __ in filenames of wrappers which wrap __functions (it may be useful to have function and file names ALWAYS match); remove names of not implemented wrappers (it was generating useless empty .o files). libm/ldouble_wrappers.c: comment out the wrapper which is not compiled anyway test/math/compile_test.c: improve this test, it was optimizing out some calls, and we don't want that. No actual code changes.
2009-02-17test/math/compile_test.c: "are long double functions even compile/link?" testDenis Vlasenko
*: fix everything which prevents above from building
2009-02-13- use existing __stringify macroBernhard Reutner-Fischer
2009-02-09ldouble_wrappers.c: add long and long long optimized wrappersDenis Vlasenko
float_wrappers.c: add xxxWRAPPER1(func) macros. no code changes, but makes this file much shorter. text data bss dec hex filename - 42504 188 4 42696 a6c8 lib/libm-0.9.30-svn.so + 42488 188 4 42680 a6b8 lib/libm-0.9.30-svn.so
2009-02-09Hand-optimize wrappers on i386:Denis Vlasenko
-83 ec 10 sub $0x10,%esp -db 6c 24 14 fldt 0x14(%esp) -dd 5c 24 08 fstpl 0x8(%esp) -dd 44 24 08 fldl 0x8(%esp) -dd 1c 24 fstpl (%esp) -e8 fc ff ff ff call __GI_trunc -83 c4 10 add $0x10,%esp +db 6c 24 04 fldt 0x4(%esp) +dd 5c 24 04 fstpl 0x4(%esp) +e9 fc ff ff ff jmp __GI_trunc c3 ret text data bss dec hex filename - 42749 176 4 42929 a7b1 lib/libm-0.9.30-svn.so + 42085 176 4 42265 a519 lib/libm-0.9.30-svn.so
2009-02-09ldouble_wrappers.c: fix __signbitl, it was calling itself by mistake.Denis Vlasenko
remove wrong casts to long double of long return values. remove lots of empty lines.
2009-02-02libm/ldouble_wrappers.c: add libm_hidden_def's to fix testsuite buildDenis Vlasenko
test/Rules.mak: don't pass target options to host build test/math/basic-test.c: fix test build error patching file test/unistd/errno.c: fix test build warning
2009-01-20ldouble_wrappers.c: remove erroneous libm_hidden_def'sDenis Vlasenko
2008-12-22- fix fpclassify, signbit, isfinite, isnan, isinf macros for long double ↵Bernhard Reutner-Fischer
math support - add rule to create preprocessor output for float- and long double math wrapper
2008-12-13*: document __USE_EXTERN_INLINES better;Denis Vlasenko
fix uclibc build if it is forcibly enabled
2008-10-03- add long double math wrappers (Ned Ludd)Bernhard Reutner-Fischer