<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinycc/stdarg.h, branch main</title>
<subtitle>Tiny C Compiler by Fabrice Bellard Git mirror of the final release by Bellard, discarding all changes after. The repository at https://repo.or.cz/tinycc.git has become untrustworthy. Also the tcc sources have become tainted with AI slop.</subtitle>
<id>https://git.datenwolf.net/tinycc/atom/stdarg.h?h=main</id>
<link rel='self' href='https://git.datenwolf.net/tinycc/atom/stdarg.h?h=main'/>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/'/>
<updated>2009-04-18T13:08:03Z</updated>
<entry>
<title>new subdirs: include, lib, tests</title>
<updated>2009-04-18T13:08:03Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2009-04-18T12:28:45Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=ea5e81bd6a3376232bf4747b2fa2e0a91c19b337'/>
<id>urn:sha1:ea5e81bd6a3376232bf4747b2fa2e0a91c19b337</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove multiple definition error caused by combination of x86-64 and va_list.</title>
<updated>2009-04-18T13:07:09Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-03-31T18:45:18Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=ebb874e2164308b1b9a53a2b1f6d1b9f65894059'/>
<id>urn:sha1:ebb874e2164308b1b9a53a2b1f6d1b9f65894059</id>
<content type='text'>
We need malloc and free to implement va_start and va_end.
Since malloc and free may be replaced by #define, we add __builtin_malloc and __builtin_free.
</content>
</entry>
<entry>
<title>Add support of x86-64.</title>
<updated>2008-12-02T01:30:47Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2008-12-01T18:19:25Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=0a9873aa22731077fad295a4aad2fc1f390c8ac7'/>
<id>urn:sha1:0a9873aa22731077fad295a4aad2fc1f390c8ac7</id>
<content type='text'>
Most change was done in #ifdef TCC_TARGET_X86_64. So, nothing should be broken by this change.

Summary of current status of x86-64 support:

- produces x86-64 object files and executables.
- the x86-64 code generator is based on x86's.
-- for long long integers, we use 64bit registers instead of tcc's generic implementation.
-- for float or double, we use SSE. SSE registers are not utilized well (we only use xmm0 and xmm1).
-- for long double, we use x87 FPU.
- passes make test.
- passes ./libtcc_test.
- can compile tcc.c. The compiled tcc can compile tcc.c, too. (there should be some bugs since the binary size of tcc2 and tcc3 is differ where tcc tcc.c -o tcc2 and tcc2 tcc.c -o tcc3)
- can compile links browser. It seems working.
- not tested well. I tested this work only on my linux box with few programs.
- calling convention of long-double-integer or struct is not exactly the same as GCC's x86-64 ABI.
- implementation of tcc -run is naive (tcc -run tcctest.c works, but tcc -run tcc.c doesn't work). Relocating 64bit addresses seems to be not as simple as 32bit environments.
- shared object support isn't unimplemented
- no bounds checker support
- some builtin functions such as __divdi3 aren't supported
</content>
</entry>
<entry>
<title>added va_copy()</title>
<updated>2006-10-28T19:45:50Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2006-10-28T19:45:50Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=84f4e9963569f930feaa536d03f98c448cb1d75c'/>
<id>urn:sha1:84f4e9963569f930feaa536d03f98c448cb1d75c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>glibc compat fix</title>
<updated>2003-01-06T20:22:23Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2003-01-06T20:22:23Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=50f0ae610feddcf73439c3a600ffdcd946813662'/>
<id>urn:sha1:50f0ae610feddcf73439c3a600ffdcd946813662</id>
<content type='text'>
</content>
</entry>
<entry>
<title>double fix</title>
<updated>2002-08-31T12:43:53Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2002-08-31T12:43:53Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=5c81896e06ae72da7a976c2ebf808fffb01bd430'/>
<id>urn:sha1:5c81896e06ae72da7a976c2ebf808fffb01bd430</id>
<content type='text'>
</content>
</entry>
<entry>
<title>update</title>
<updated>2001-11-11T18:01:29Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2001-11-11T18:01:29Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=eb0e3e70dcb42dd60122158e1b9dbdcd0fac3a3e'/>
<id>urn:sha1:eb0e3e70dcb42dd60122158e1b9dbdcd0fac3a3e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added std libs</title>
<updated>2001-11-11T02:54:21Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2001-11-11T02:54:21Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=b536ac306846dcb1639bb15bda1131063103458c'/>
<id>urn:sha1:b536ac306846dcb1639bb15bda1131063103458c</id>
<content type='text'>
</content>
</entry>
</feed>
