<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinycc/libtcc1.c, 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/libtcc1.c?h=main</id>
<link rel='self' href='https://git.datenwolf.net/tinycc/atom/libtcc1.c?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>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>Use int*2 instead of long*2 to hold double value.</title>
<updated>2008-12-02T01:26:07Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2008-11-30T17:10:06Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=ce8d71edbc34d326748ee6f532b80a6574191c3c'/>
<id>urn:sha1:ce8d71edbc34d326748ee6f532b80a6574191c3c</id>
<content type='text'>
I believe sizeof(double) is sizeof(int)*2 in most environments. On the other hand, sizeof(long) is equal to sizeof(double) in x86-64.
</content>
</entry>
<entry>
<title>Runtime lib functions</title>
<updated>2008-09-12T20:22:36Z</updated>
<author>
<name>Daniel Glöckner</name>
<email>daniel-gl@gmx.net</email>
</author>
<published>2008-09-05T19:07:46Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=12265da6cd24bd48ce6e40b60fac1dc62eeee156'/>
<id>urn:sha1:12265da6cd24bd48ce6e40b60fac1dc62eeee156</id>
<content type='text'>
Yesterday I felt the urge to change a few things in TinyCC.
This is the first and biggest change of all of them.

- use __aeabi_*divmod functions in ARM EABI to make binaries depend
  solely on standardized library functions

- refactor ARM floating point &lt;-&gt; integer conversion a bit

- rename long long-&gt;float and shift library functions to correspond to
  the names used by GCC

- compile more tokens conditionally to reduce the size of TinyCC

The intention is primarily to allow users of the ARM target to use
libgcc (which is usually available as a shared library) instead of
libtcc1 (which can't be compiled for ARM due to lack of an inline
assembler).

Changing the EABI target to use the divmod functions in theory allows
to use it without libtcc1 on any (not necessarily GCC based) ARM EABI
system.

  Daniel
</content>
</entry>
<entry>
<title>Get rid of one warning</title>
<updated>2008-03-08T19:57:26Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2008-03-08T19:57:26Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=c6537d11cbda6e23041c9bbb3ab17b722c08dd1d'/>
<id>urn:sha1:c6537d11cbda6e23041c9bbb3ab17b722c08dd1d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Import some changesets from Rob Landley's fork (part 1)</title>
<updated>2007-11-14T17:34:30Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2007-11-14T17:34:30Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=54bf8c05566a34f4d578ed6d33d6262dc924a703'/>
<id>urn:sha1:54bf8c05566a34f4d578ed6d33d6262dc924a703</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added 32 bit shift support</title>
<updated>2003-05-24T14:03:15Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2003-05-24T14:03:15Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=813acdc691f5bc2361042f6f2c16e1f273651b5f'/>
<id>urn:sha1:813acdc691f5bc2361042f6f2c16e1f273651b5f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>comment fixes (Peter Lund)</title>
<updated>2003-04-13T14:35:27Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2003-04-13T14:35:27Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=d6819c2c36a72f0145c39d6ac3ae3c25fcb222a5'/>
<id>urn:sha1:d6819c2c36a72f0145c39d6ac3ae3c25fcb222a5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added FPU control word</title>
<updated>2002-07-24T22:13:23Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2002-07-24T22:13:23Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=20f40851457d5440e0c784cf65aefa54aa1421ce'/>
<id>urn:sha1:20f40851457d5440e0c784cf65aefa54aa1421ce</id>
<content type='text'>
</content>
</entry>
<entry>
<title>added runtime library - fixed more relocations</title>
<updated>2002-07-22T23:37:39Z</updated>
<author>
<name>bellard</name>
<email>bellard</email>
</author>
<published>2002-07-22T23:37:39Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=6cdecbe4e622194c5ba311d0e944a1b33a0e18a3'/>
<id>urn:sha1:6cdecbe4e622194c5ba311d0e944a1b33a0e18a3</id>
<content type='text'>
</content>
</entry>
</feed>
