<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinycc/tcctest.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/tcctest.c?h=main</id>
<link rel='self' href='https://git.datenwolf.net/tinycc/atom/tcctest.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>mute strange difference in tcctest</title>
<updated>2009-04-18T13:08:03Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2009-04-18T11:30:12Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=eca1fbaf92f63abc43cbda87c0c512a54da8aaf2'/>
<id>urn:sha1:eca1fbaf92f63abc43cbda87c0c512a54da8aaf2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>x86-64: Fix cast from integers to pointers.</title>
<updated>2009-04-18T13:08:02Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-04-16T16:01:23Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=39a4b859d4d4f76d2616b2c6e6a697dc261daa1a'/>
<id>urn:sha1:39a4b859d4d4f76d2616b2c6e6a697dc261daa1a</id>
<content type='text'>
Now,

./tcc -run -DTCC_TARGET_X86_64 tcc.c -run tcctest.c

works!
</content>
</entry>
<entry>
<title>Fixes for issues I've just found/introduced to x86 TCC.</title>
<updated>2009-04-18T13:08:01Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-04-15T17:34:59Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=83fd36333a691050663a15c07b385bdf554bf01d'/>
<id>urn:sha1:83fd36333a691050663a15c07b385bdf554bf01d</id>
<content type='text'>
- Cast from pointer to long long makes TCC output an error. Use cast to int before we apply shift operation for a pointer value.
- Removed test cases for casts from pointer to char/short because they produce warning.
</content>
</entry>
<entry>
<title>x86-64: Cast from 64bit pointer to long long must not generate movslq.</title>
<updated>2009-04-18T13:08:01Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-04-15T16:32:16Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=be43c8e0ed22faa6c89c6e551f2a07512673d60d'/>
<id>urn:sha1:be43c8e0ed22faa6c89c6e551f2a07512673d60d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>x86-64: Make ABI for long double compatible with GCC.</title>
<updated>2009-04-18T13:08:01Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-04-13T16:12:29Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=9fe28b610ebe6f60a0840c3b6620a3418d703830'/>
<id>urn:sha1:9fe28b610ebe6f60a0840c3b6620a3418d703830</id>
<content type='text'>
- Now we use x87's stack top the long double return values.
- Add rc_fret and reg_fret, wrapper functions for RC_FRET and REG_FRET.
- Add a test case to check if strto* works OK.
</content>
</entry>
<entry>
<title>Improve the test coverage: !val for float/double/long long f.</title>
<updated>2009-04-18T13:08:01Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-04-12T19:02:52Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=0e239e2ba5b38f99fd0b849f03fc82db7c2d56b7'/>
<id>urn:sha1:0e239e2ba5b38f99fd0b849f03fc82db7c2d56b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support long long bitfields for all architectures.</title>
<updated>2009-04-18T13:07:09Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-03-15T17:24:45Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=4f056031f4951dac5d6100dad7f5a1f023dcd273'/>
<id>urn:sha1:4f056031f4951dac5d6100dad7f5a1f023dcd273</id>
<content type='text'>
- Modified gv() and vstore(), added vpushll().
- Added a test case for long long bitfields.
- Tested on x86 and x86-64.
</content>
</entry>
<entry>
<title>A uint64 bug fix on x86-64</title>
<updated>2009-04-18T13:07:08Z</updated>
<author>
<name>Shinichiro Hamaji</name>
<email>shinichiro.hamaji _at_ gmail.com</email>
</author>
<published>2009-03-15T05:50:38Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=62e73da6124758c2e8c2a75defac2da092a93941'/>
<id>urn:sha1:62e73da6124758c2e8c2a75defac2da092a93941</id>
<content type='text'>
64bit unsigned literal was handled as 32bit integer.
Added a unittest to catch this.
</content>
</entry>
<entry>
<title>string_test: we should always use 'unsigned int' for b</title>
<updated>2009-04-18T13:07:08Z</updated>
<author>
<name>Kirill Smelkov</name>
<email>kirr@landau.phys.spbu.ru</email>
</author>
<published>2009-01-18T11:22:19Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=6213d4b4b65f14c608686a4745797f534ba5c54d'/>
<id>urn:sha1:6213d4b4b65f14c608686a4745797f534ba5c54d</id>
<content type='text'>
As recently shown in fb0ac2 (s/int/unsigned/ since GCC 4.3.2 produces
code which doesn't stop)

comparing (signed) int variable to 0x80000000 is not idea for x86_64.

This is not a good idea for x86_32 either, because GCC 4.3.2 (the one in
Debian Lenny) rightly assumes that a signed int could be never
0x80000000, and thus removes the check from

    while (b != 0x80000000) {
        ...

completely.

If we want this check, we need b to be always 'unsigned'

Signed-off-by: Kirill Smelkov &lt;kirr@landau.phys.spbu.ru&gt;
</content>
</entry>
</feed>
