[svn r260] Changed some of the LLVMDC specific code in the Tango core and did some minor cleanups.

This commit is contained in:
Tomas Lindquist Olsen
2008-06-09 03:02:14 +02:00
parent 951657ccdc
commit e23169d5d8
4 changed files with 46 additions and 159 deletions

View File

@@ -244,7 +244,30 @@ else version( Posix )
}
body
{
version( D_InlineAsm_X86 )
version( LLVMDC )
{
// put registers on the stack
version(D_InlineAsm_X86)
{
uint _eax, _ecx, _edx, _ebx, _esp, _ebp, _esi, _edi;
asm
{
mov _eax, EAX;
mov _ecx, ECX;
mov _edx, EDX;
mov _ebx, EBX;
mov _esp, ESP;
mov _ebp, EBP;
mov _esi, ESI;
mov _edi, EDI;
}
}
else
{
// FIXME
}
}
else version( D_InlineAsm_X86 )
{
asm
{
@@ -255,10 +278,6 @@ else version( Posix )
{
__builtin_unwind_init();
}
else version( LLVMDC )
{
// TODO below as well
}
else
{
static assert( false, "Architecture not supported." );
@@ -301,7 +320,11 @@ else version( Posix )
}
}
version( D_InlineAsm_X86 )
version( LLVMDC )
{
// nothing to do
}
else version( D_InlineAsm_X86 )
{
asm
{
@@ -312,10 +335,6 @@ else version( Posix )
{
// registers will be popped automatically
}
else version( LLVMDC )
{
// TODO
}
else
{
static assert( false, "Architecture not supported." );

View File

@@ -69,15 +69,8 @@ extern (C) void gc_term()
//
// NOTE: Due to popular demand, this has been re-enabled. It still has
// the problems mentioned above though, so I guess we'll see.
version(LLVMDC)
{
// currently crashes a lot
}
else
{
_gc.fullCollectNoStack(); // not really a 'collect all' -- still scans
// static data area, roots, and ranges.
}
_gc.Dtor();
}