On 29 September 2013 17:28, Jacob Carlborg <d...@me.com> wrote: > On 2013-09-29 12:25, Iain Buclaw wrote: > >> - Though I can't be sure because I don't know what it is actually doing >> other than creating some custom bracketed segment (Really??? Is this >> truly necessary? That's about as useful as having a separate calling >> convention just for one language. Oh wait!!!) However, see point one >> on why there is uncertainty surrounding this. > > > How is exception handling tables, module infos, GC range and TLS data > handled now in GDC? >
1. GDC uses libunwind for EH. 2. ModuleInfos are put into a linked list - this is for all platforms (which differs from dmd's runtime at last check). There's a .ctor function emitted into the module which attaches itself to _Dmodule_ref. 3. I assume when you say GC range, you mean __data_start / _end? 4. TLS data depends on the platform. Linux has a .tdata and .tbss section that is not bracketed for example... Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';