Mercurial > projects > ldc
view druntime/src/compiler/ldc/tls.S @ 1463:a5526b7a5ae6
D2:
Applied function type from D1 frontend that got removed in D2, it's critical for member function type to be correct.
Fixed a bunch of type discrepancies in druntime object.di vs. genobj.d .
Disabled (#if 0) some potentally very large type dumps for -vv .
Updated classinfo and typeinfo generation for D2, almost complete now.
Added finer grained checks for vtbl type mismatching, aids debugging.
author | Tomas Lindquist Olsen <tomas.l.olsen gmail com> |
---|---|
date | Wed, 03 Jun 2009 02:28:48 +0200 |
parents | e0b2d67cfe7c |
children |
line wrap: on
line source
/** * Contains support code for thread-local storage. * * Copyright: Copyright Digital Mars 2008 - 2009. * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>. * Authors: Walter Bright * * Copyright Digital Mars 2008 - 2009. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #if linux /* The memory between the addresses of _tlsstart and _tlsend is the storage for * thread-local data in D 2.0. Both of these rely on the default linker script * of: * .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } * .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } * to group the sections in that order. * * Sadly, this does not work because ld orders .tdata after .tdata.*, despite * what the linker script says. */ .file "tls.S" .globl _tlsstart .section .tdata,"awT",@progbits .align 4 .type _tlsstart, @object .size _tlsstart, 4 _tlsstart: .long 3 .globl _tlsend .section .tcommon,"awT",@nobits .align 4 .type _tlsend, @object .size _tlsend, 4 _tlsend: .zero 4 #endif