[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] Largish mob update from me

From: Michael Matz
Subject: [Tinycc-devel] Largish mob update from me
Date: Thu, 15 Dec 2016 18:17:32 +0100 (CET)
User-agent: Alpine 2.20 (LSU 67 2015-01-07)


with the holiday season coming up I probably am going to have some time 
for cleaning up after me if necessary, so I've pushed my current stable 
(in my mind) stuff to mob.  It's 110 changes on these topics:

* x86-asm improvements: new instructions, some SSE2 support, some internal 
  reordering, support x86-64 high registers (also in inline asm)
* asm and inline asm: above plus more compatibility with GNU as
* struct layout: support specifying packed after the struct decl,
  fixing bit-field layout to be GCC and MS compatible (I know there was 
  recently an update for this, but it didn't get some corner cases 
* struct initialization: rewrite.  It now supports initialization via 
  compound literals and fixes many corner cases that were handled 
  incorrect before
* simple dead code optimization: in code like 
    if (1) ...
    else {stuff};
  don't emit anything for the else branch code (unless there's a different 
  way to enter this code, e.g. via a label).
* various assorted fixes/improvenents: long long switch values, 64bit 
  addends for symbols (on LP64 platforms), supporting large alignments,
  some fixes in the pre-processor and more stuff.

I've worked on this on and off since May (huh), and my immediate goal was 
to be able to compile a current linux kernel with as few changes as 
possible; I can do that now (and the kernel works :)); I'll probably push 
these kernel sources to github on the weekend.

I've tested that TCC on x86-64, arm64 and i386.  I've not tested it on arm 
(lacking a ready-to-use sandbox right now).

Some recent change between bf692af3 (from 2016-11-12) and fe6453f8 (from 
2016-12-10) broke gawk (on x86-64), and that fail still exists with my 
changes on the top; I haven't investigated that yet, but it's mostly 
changes for separating out relocation processing (hello Thomas :) ).

I haven't changed any APIs, so users of libtcc shouldn't have problems; 
but internally there's some shuffling, so possibly this broke other 
peoples private patches, I hope it's reasonably easy to rebase.

I'm obviously interested if I've broken stuff.  For instance I haven't 
ever built this for windows, so testing there would be appreciated.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]