aboutsummaryrefslogtreecommitdiff
path: root/win32/include
Commit message (Collapse)AuthorAgeFilesLines
* win: libm: add implementation for round/fmin/fmax and variantsAvi Halachmi (:avih)2015-11-071-0/+113
| | | | | | | | | | | | | | | | | | | | round and fmin/fmax are relatively commonly used functions but were not implemented anywhere in the tcc Windows distribution package. Newer mingw(64) math.h stil doesn't include these implementations. Add C implementations for these functions and place it as inline functions at win32/include/tcc/tcc_libm.h - which is already included from math.h . The code is mostly taken from musl-libc rs-1.0 (MIT) [*], musl-libc: http://git.musl-libc.org/cgit/musl/tree/src/math?h=rs-1.0 license: http://git.musl-libc.org/cgit/musl/tree/COPYRIGHT?h=rs-1.0 Potential enhancements: - Check how many useful libm implementations are still missing and consider adding them (some of them already work via the MS runtime). - Consider putting libm implementations in an actual libm.a file, or add a dummy one such that build processes which try to link with libm will not fail.
* win: math.h: fix fpclassify/signbit/etc - use C instead of broken asmAvi Halachmi (:avih)2015-11-072-22/+97
| | | | | | | | | | | | | | | | The asm code cannot currently be used with tcc since tcc doesn't support 't' constraint. Use inline C implementation instead, place it win32/include/tcc/tcc_libm.h, and include it from win32/include/math.h. Since fpclassify now works, it also fixes few other macros which depend on it. Implicitly fixed: isfinite, isinf, isnan, isnormal. The implementations were taken from musl-libc rs-1.0 (MIT license). musl-libc: http://git.musl-libc.org/cgit/musl/tree/src/math?h=rs-1.0 license: http://git.musl-libc.org/cgit/musl/tree/COPYRIGHT?h=rs-1.0
* win: math.h: isnan: use macro, similar to others (still broken)Avi Halachmi (:avih)2015-11-071-32/+1
| | | | | | It was broken due to tcc not able to compile asm with 't' constraint, and it's still broken because fpclassify on which it now depends has the same issue. Next commit will fix this.
* Revert "win32/include/math.h: remoing a "t" modifier usage"Avi Halachmi (:avih)2015-11-071-31/+10
| | | | | | This reverts commit 45bc50596874ec7cb26aac3dca3339ba25086436. The new asm code did not work as expected. Coordinated with seiko.
* win32/include/math.h: remoing a "t" modifier usageseyko2015-11-051-10/+31
| | | | | replaced by loading a float argument from memory and using the "m" modifier
* win32: UUID typedef addedseyko2015-09-251-0/+5
|
* win32/include/winapi changes from https://github.com/run4flat/tinycc.gitseyko2015-05-1419-34/+2895
| | | | | | | | just for testing. Is it needed? I'm not a MSYS citizen. run4flat is a tcc fork by David Mertens that knows how to work with multiple symbol tables. Excelent work. A good descriptions of the tcc internals inside a code comments.
* win32/include/winsock2.h (look previous commit)seyko2015-03-031-0/+1290
|
* add declaration of the "double trunc (double _x)" and winsock2.hseyko2015-03-031-0/+21
| | | | This allow to build a windows version of the nimrod compiler.
* A lrint functions in win32/include/math.h are rewrittem because tcc can't ↵seyko2015-03-031-15/+30
| | | | handle "t" constraint
* win32/include/process.h: update prototypes to match mingw.minux2014-04-121-12/+12
| | | | | This eliminates an argument type mismatch warning during tcc self-compilation on windows.
* Fix "Add support for struct > 4B returned via registers"grischka2013-12-161-0/+2
| | | | | | | | | | | - avoid assumption "ret_align == register_size" which is false for non-arm targets - rename symbol "sret" to more descriptive "ret_nregs" This fixes commit dcec8673f21da86ae3dcf1ca3e9498127715b795 Also: - remove multiple definitions in win32/include/math.h
* i386-gen: preserve fp control word in gen_cvt_ftoigrischka2013-08-281-6/+6
| | | | | | | | | | | | | | | | | | | | | | | - Use runtime function for conversion - Also initialize fp with tcc -run on windows This fixes a bug where double x = 1.0; double y = 1.0000000000000001; double z = x < y ? 0 : sqrt (x*x - y*y); caused a bad sqrt because rounding precision for the x < y comparison was different to the one used within the sqrt function. This also fixes a bug where printf("%d, %d", (int)pow(10, 2), (int)pow(10, 2)); would print 100, 99 Unrelated: win32: document relative include & lib lookup win32: normalize_slashes: do not mirror silly gcc behavior This reverts part of commit 8a81f9e1036637e21a47e14fb56bf64133546890 winapi: add missing WINAPI decl. for some functions
* add version number to manpageUrs Janssen2013-02-178-18/+18
| | | | | | | avoid c++/c99 style comments in preprocessor directives avoid leadings whitespaces in preprocessor directives mention implemented variable length arrays in documentation fixed ambiguous option in texi2html call (Austin English)
* tcc -vv/--print-search-dirs: print more infogrischka2013-02-101-1/+2
| | | | | | | | | | | | | | tests/Makefile: - print-search-dirs when 'hello' fails - split off hello-run win32/include/_mingw.h: - fix for compatibility with mingw headers (While our headers in win32 are from mingw-64 and don't have the problem) tiny_libmaker: - don't use "dangerous" mktemp
* win32: _mingw.h: do not undef NULLgrischka2013-01-241-1/+0
| | | | | | | | | Not wise if stddef.h was already included. This is related to commit 3aa26a794e24a298493a2bc9d70fbd9aebf6437a Instead hack stddef.h to have identical definition and thus avoid the issue mentionned there.
* Revert mistake in "win32: malloc.h: fix win32 ... _STATIC_ASSERT"grischka2013-01-142-69/+0
| | | | | | | from commit fc574f14984d11f1ead50560d1bdc5ae0eaf6d8d. The files from include are copied to win32/include with make install or build-tcc.bat.
* win32: malloc.h: fix win32 tcc-tcc complication by correcting ↵Roy2012-12-313-1/+70
| | | | | | _STATIC_ASSERT, ideas from mingw-w64 changeset 4293 stdarg.h, stddef.h: _mingw.h needs them
* win32/include: enable _timezone etc variables.grischka2011-07-113-15/+13
| | | | | | | | | which live in msvcrt.dll and need __declspec(import) which works by now. Also: - _mingw.h: conditionally define WIN32_LEAN_AND_MEAN - malloc.h: don't undef alloca
* win32: register SEH in startup code (i386 only)grischka2010-10-191-0/+2
| | | | Needed to handle signal() etc. with msvcrt
* win32: sys/timeb.h use _ftime instead of _ftime32grischka2010-04-121-1/+2
|
* win32: adjust for mingw32 winapi packagesgrischka2010-01-261-0/+11
| | | | | | Note: the files in tcc/win32/include/winapi are now from the mingw-w64 project, however with this fix using mingw32 winapi should still work.
* win64: defined size_t and ptrdiff_t to unsigned long longgrischka2010-01-141-18/+17
|
* win32: cleanup includegrischka2010-01-148-485/+57
|
* win32: add size_t to _mingw.hgrischka2009-12-201-0/+9
|
* win64: add tiny unwind data for setjmp/longjmpgrischka2009-12-201-1/+1
| | | | | | | | | This enables native unwind semantics with longjmp on win64 by putting an entry into the .pdata section for each compiled fuction. Also, the function now use a fixed stack and store arguments into X(%rsp) rather than using push.
* win64: adjust for two args with setjmp(buf,ctx)grischka2009-12-191-0/+2
|
* win32: remove #define alloca from mingw headersgrischka2009-12-011-1/+1
|
* win64: use new headers from mingwgrischka2009-07-1887-16959/+31145
|
* win32: guard va_list typedefgrischka2009-06-171-0/+3
|
* drop alloca #definegrischka2009-05-161-4/+1
| | | | | | | (Because GNU's alloca.h unconditionally #undef's alloca) Also, remove gcc specific sections in headers. and instead change tests such that gcc does not use them.
* Checkin tiny_libmaker (ar replacement) by Timovj Lahdegrischka2008-03-081-10/+10
|
* Import more changesets from Rob Landley's fork (part 2)grischka2007-11-213-3/+11
|
* added DECLARE_STDCALL_P (grischka)bellard2005-04-171-51/+52
|
* dos2unixbellard2005-04-1758-20345/+20345
|
* win32 mergebellard2005-04-1463-0/+20453