Commit Graph

261 Commits

Author SHA1 Message Date
Shinichiro Hamaji
8ea8305199 x86-64: Add alloca. 2009-06-09 03:23:08 +09:00
grischka
110a4edc15 drop alloca #define
(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.
2009-05-16 22:30:13 +02:00
grischka
68310299b6 ulibc: #define TCC_UCLIBC and load elf_interp 2009-05-16 22:29:40 +02:00
grischka
5c6509578e make tcc from tcc.c and libtcc from libtcc.c 2009-05-05 20:41:17 +02:00
grischka
a93bcdffae new files: tcc.h libtcc.c tccpp.c tccgen.c 2009-05-05 20:17:11 +02:00
grischka
15626621fb cleanup makefiles 2009-04-19 21:24:32 +02:00
grischka
5829791ffa fix makefiles etc for subdirs 2009-04-18 15:08:03 +02:00
grischka
e8a52a8249 win32: readme.txt->tcc-win32.txt, update tcc-doc 2009-04-18 15:08:03 +02:00
grischka
d165e87340 libtcc: new api tcc_set_lib_path 2009-04-18 15:08:03 +02:00
Shinichiro Hamaji
742cf05875 x86-64: Define make variable TARGET so that test2 and test3 use correct flag. 2009-04-18 15:08:02 +02:00
Shinichiro Hamaji
7db1e69df2 Suppress noisy pointer signed-ness warnings on x86-64. 2009-04-18 15:07:09 +02:00
Shinichiro Hamaji
0a9873aa22 Add support of x86-64.
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
2008-12-02 02:30:47 +01:00
Daniel Glöckner
15e0dc08a6 Allow to use libgcc instead of libtcc1
This patch adds a switch --with-libgcc to configure.
When passed it prevents libtcc1.a from being built and links to
/lib/libgcc_s.so.1 instead of PREFIX/lib/tcc/libtcc1.a.

It will work on ARM when using libgcc from GCC >= 4.2.0.
Prior versions don't have the __floatun[sd]i[sdx]f functions.

It won't work on i386 because of two missing symbols emitted when
floats are cast to integers, but users can provide those symbols
(global short constants) in their code if needed.

  Daniel
2008-09-12 22:22:58 +02:00
Daniel Glöckner
e8039673ad ARM related Makefile changes
- Builds all four possible ARM targets when cross compiling

- Adds some auto detection to select the target for native ARM builds

The auto detection will select EABI if it finds /lib/ld-linux.so.3.
It will select VFP floating point support when /proc/cpuinfo lists
a VFP or iWMMXt coprocessor. Intel Wireless MMX does not imply VFP,
but it conflicts with FPA, so VFP is the only choice (apart from
yet unsupported soft-float).

  Daniel
2008-09-12 22:22:57 +02:00
Adam Sampson
8f7e3f325d Patch for DESTDIR installation (Adam Sampson) 2008-09-12 02:36:26 +02:00
grischka
f22e961f80 update manual, changelog 2008-03-31 19:50:58 +00:00
grischka
2eaa1104f7 Checkin tiny_libmaker (ar replacement) by Timovj Lahde 2008-03-08 19:55:47 +00:00
grischka
265dddbecf Udated and cleaned up TODO. 2008-01-16 22:33:56 +00:00
grischka
6c96c41ee4 Import changesets (part 4) 428,457,460,467: defines for openbsd etc. 2007-12-16 18:24:44 +00:00
grischka
f466577673 Disable singnedness warnings with newer gcc. 2007-12-13 19:17:45 +00:00
grischka
f99d3de221 Import 409,410: ARM EABI by Daniel Glckner 2007-12-04 20:38:09 +00:00
grischka
d778bde7f9 Import more changesets from Rob Landley's fork (part 2) 2007-11-21 17:16:31 +00:00
bellard
d13aa5426a typos 2006-10-28 19:50:24 +00:00
bellard
c42532c37d use CFLAGS from configure 2005-09-03 18:34:22 +00:00
bellard
c262e9ea04 win32 fix 2005-06-17 22:03:50 +00:00
bellard
c897c52088 cannot change dir layout yet 2005-04-15 00:23:00 +00:00
bellard
ce93d5440f update 2005-04-15 00:11:02 +00:00
bellard
7baf968102 build of cross compilers is optional - win32 merge 2005-04-14 23:52:04 +00:00
bellard
2c538d7a2b initial PE format support 2005-04-10 21:46:58 +00:00
bellard
27feb1adac gcc 3.4 fix 2004-11-07 18:08:15 +00:00
bellard
13affef3f1 win32 configure 2004-10-07 21:11:43 +00:00
bellard
ec7d36326d C67 COFF executable format support (TK) 2004-10-05 22:33:55 +00:00
bellard
6e5b1cc43a ARM fixes (Daniel Glockner) 2004-10-04 22:19:21 +00:00
bellard
79c72b2419 initial TMS320C67xx support (TK) 2004-10-04 21:57:35 +00:00
bellard
8da2d689df install fix 2004-10-02 13:46:33 +00:00
bellard
370f5e571c added missing texi2pod.pl 2003-05-24 18:31:27 +00:00
bellard
fe3b68b087 libtcc1 is now a library so that it is linked in only on demand 2003-05-24 15:45:33 +00:00
bellard
f0d5a74bcd automatic man page generation from tcc-doc.texi 2003-05-18 18:11:06 +00:00
bellard
6104629dc2 added -run option 2003-04-13 21:55:08 +00:00
bellard
cb96022ab7 added configure - gcc 3.x support 2003-04-13 19:48:19 +00:00
bellard
75e743d23e update 2003-01-06 20:19:20 +00:00
bellard
dc685c6b7d update 2002-12-08 14:34:02 +00:00
bellard
122198a8c2 update 2002-11-24 15:58:28 +00:00
bellard
6cd2d5d2c8 update 2002-11-03 00:44:38 +00:00
bellard
d8ef07df04 added tcc_relocate() and tcc_get_symbol() 2002-09-08 22:46:32 +00:00
bellard
10f5d44f43 update 2002-09-08 22:13:54 +00:00
bellard
bc427f5bec update 2002-08-31 12:44:16 +00:00
bellard
2eddd13c10 tccelf.c 2002-08-18 14:31:04 +00:00
bellard
840d197e87 update 2002-07-24 22:13:02 +00:00
bellard
1e14c90c7a added libtcc 2002-05-13 22:58:22 +00:00
bellard
7feafd2bba version 2002-03-17 11:41:46 +00:00
bellard
6933ac641f update 2002-03-03 22:44:31 +00:00
bellard
77db7175ca added il target 2002-02-10 16:15:22 +00:00
bellard
dbb999f8bd version change and window fixes 2002-01-26 18:06:03 +00:00
bellard
2bd31e4ea6 added bound test 2002-01-05 19:57:08 +00:00
bellard
b0b2d5d2e9 update 2001-12-17 21:57:01 +00:00
bellard
a88b855866 update 2001-12-02 21:44:40 +00:00
bellard
34a14a08a3 update 2001-11-18 16:33:35 +00:00
bellard
eb0e3e70dc update 2001-11-11 18:01:29 +00:00
bellard
927c4afc0c update for name change 2001-10-28 15:20:24 +00:00
bellard
27f6e16bae Initial revision 2001-10-27 23:48:39 +00:00