mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-16 21:03:14 +01:00
Include x86-32 fiber fixes in tango patch again.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
Index: object.di
|
||||
===================================================================
|
||||
--- object.di (revision 4097)
|
||||
--- object.di (revision 4110)
|
||||
+++ object.di (working copy)
|
||||
@@ -150,6 +150,9 @@
|
||||
void function() dtor;
|
||||
@@ -14,7 +14,7 @@ Index: object.di
|
||||
|
||||
Index: lib/unittest.sh
|
||||
===================================================================
|
||||
--- lib/unittest.sh (revision 4097)
|
||||
--- lib/unittest.sh (revision 4110)
|
||||
+++ lib/unittest.sh (working copy)
|
||||
@@ -18,8 +18,9 @@
|
||||
--help: This message
|
||||
@@ -71,7 +71,7 @@ Index: lib/unittest.sh
|
||||
+fi
|
||||
Index: lib/common/tango/core/BitManip.d
|
||||
===================================================================
|
||||
--- lib/common/tango/core/BitManip.d (revision 4097)
|
||||
--- lib/common/tango/core/BitManip.d (revision 4110)
|
||||
+++ lib/common/tango/core/BitManip.d (working copy)
|
||||
@@ -171,6 +171,10 @@
|
||||
*/
|
||||
@@ -86,7 +86,7 @@ Index: lib/common/tango/core/BitManip.d
|
||||
public import std.intrinsic;
|
||||
Index: lib/common/tango/core/Thread.d
|
||||
===================================================================
|
||||
--- lib/common/tango/core/Thread.d (revision 4097)
|
||||
--- lib/common/tango/core/Thread.d (revision 4110)
|
||||
+++ lib/common/tango/core/Thread.d (working copy)
|
||||
@@ -273,8 +273,50 @@
|
||||
}
|
||||
@@ -154,7 +154,26 @@ Index: lib/common/tango/core/Thread.d
|
||||
asm
|
||||
{
|
||||
popad;
|
||||
@@ -2357,6 +2403,10 @@
|
||||
@@ -2347,6 +2393,18 @@
|
||||
version( Posix )
|
||||
version = AsmPPC_Posix;
|
||||
}
|
||||
+ version( LLVM_InlineAsm_X86 )
|
||||
+ {
|
||||
+ version( Win32 )
|
||||
+ version = LLVM_AsmX86_Win32;
|
||||
+ else version( Posix )
|
||||
+ version = LLVM_AsmX86_Posix;
|
||||
+ }
|
||||
+ else version( LLVM_InlineAsm_X86_64 )
|
||||
+ {
|
||||
+ version( Posix )
|
||||
+ version = LLVM_AsmX86_64_Posix;
|
||||
+ }
|
||||
|
||||
version( Posix )
|
||||
{
|
||||
@@ -2357,6 +2415,10 @@
|
||||
version( AsmX86_Win32 ) {} else
|
||||
version( AsmX86_Posix ) {} else
|
||||
version( AsmPPC_Posix ) {} else
|
||||
@@ -165,7 +184,7 @@ Index: lib/common/tango/core/Thread.d
|
||||
{
|
||||
// NOTE: The ucontext implementation requires architecture specific
|
||||
// data definitions to operate so testing for it must be done
|
||||
@@ -2367,9 +2417,11 @@
|
||||
@@ -2367,9 +2429,11 @@
|
||||
import tango.stdc.posix.ucontext;
|
||||
}
|
||||
}
|
||||
@@ -178,7 +197,7 @@ Index: lib/common/tango/core/Thread.d
|
||||
static this()
|
||||
{
|
||||
static if( is( typeof( GetSystemInfo ) ) )
|
||||
@@ -2522,7 +2574,7 @@
|
||||
@@ -2522,7 +2586,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +206,30 @@ Index: lib/common/tango/core/Thread.d
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Fiber
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -3204,6 +3256,28 @@
|
||||
@@ -3177,6 +3241,22 @@
|
||||
push( 0x00000000 ); // ESI
|
||||
push( 0x00000000 ); // EDI
|
||||
}
|
||||
+ else version( LLVM_AsmX86_Posix )
|
||||
+ {
|
||||
+ push( cast(size_t) &fiber_entryPoint ); // EIP
|
||||
+ push( 0x00000000 ); // newp
|
||||
+ push( 0x00000000 ); // oldp
|
||||
+ push( 0x00000000 ); // EBP
|
||||
+ push( 0x00000000 ); // EBX
|
||||
+ push( 0x00000000 ); // ESI
|
||||
+ push( 0x00000000 ); // EDI
|
||||
+ }
|
||||
+//TODO: Implement x86-64 fibers
|
||||
+/+
|
||||
+ else version( LLVM_AsmX86_Posix )
|
||||
+ {
|
||||
+ }
|
||||
++/
|
||||
else version( AsmPPC_Posix )
|
||||
{
|
||||
version( StackGrowsDown )
|
||||
@@ -3204,6 +3284,28 @@
|
||||
|
||||
assert( cast(uint) pstack & 0x0f == 0 );
|
||||
}
|
||||
@@ -218,7 +260,7 @@ Index: lib/common/tango/core/Thread.d
|
||||
getcontext( &m_utxt );
|
||||
Index: lib/gc/basic/gcx.d
|
||||
===================================================================
|
||||
--- lib/gc/basic/gcx.d (revision 4097)
|
||||
--- lib/gc/basic/gcx.d (revision 4110)
|
||||
+++ lib/gc/basic/gcx.d (working copy)
|
||||
@@ -65,6 +65,13 @@
|
||||
}
|
||||
@@ -311,7 +353,7 @@ Index: lib/gc/basic/gcx.d
|
||||
asm
|
||||
Index: lib/gc/basic/gcbits.d
|
||||
===================================================================
|
||||
--- lib/gc/basic/gcbits.d (revision 4097)
|
||||
--- lib/gc/basic/gcbits.d (revision 4110)
|
||||
+++ lib/gc/basic/gcbits.d (working copy)
|
||||
@@ -39,6 +39,10 @@
|
||||
{
|
||||
@@ -326,7 +368,7 @@ Index: lib/gc/basic/gcbits.d
|
||||
version = Asm86;
|
||||
Index: lib/build-tango.sh
|
||||
===================================================================
|
||||
--- lib/build-tango.sh (revision 4097)
|
||||
--- lib/build-tango.sh (revision 4110)
|
||||
+++ lib/build-tango.sh (working copy)
|
||||
@@ -23,7 +23,7 @@
|
||||
--debug: Will enable debug info
|
||||
@@ -358,7 +400,7 @@ Index: lib/build-tango.sh
|
||||
build powerpc-apple-darwin8-gdmd libgtango.a.ppc libgphobos.a.ppc
|
||||
Index: tango/text/convert/Layout.d
|
||||
===================================================================
|
||||
--- tango/text/convert/Layout.d (revision 4097)
|
||||
--- tango/text/convert/Layout.d (revision 4110)
|
||||
+++ tango/text/convert/Layout.d (working copy)
|
||||
@@ -47,6 +47,12 @@
|
||||
alias void* Arg;
|
||||
@@ -384,7 +426,7 @@ Index: tango/text/convert/Layout.d
|
||||
return parse (formatStr, arguments, arglist, sink);
|
||||
Index: tango/net/cluster/CacheInvalidator.d
|
||||
===================================================================
|
||||
--- tango/net/cluster/CacheInvalidator.d (revision 4097)
|
||||
--- tango/net/cluster/CacheInvalidator.d (revision 4110)
|
||||
+++ tango/net/cluster/CacheInvalidator.d (working copy)
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
@@ -397,7 +439,7 @@ Index: tango/net/cluster/CacheInvalidator.d
|
||||
|
||||
Index: tango/core/Vararg.d
|
||||
===================================================================
|
||||
--- tango/core/Vararg.d (revision 4097)
|
||||
--- tango/core/Vararg.d (revision 4110)
|
||||
+++ tango/core/Vararg.d (working copy)
|
||||
@@ -15,6 +15,10 @@
|
||||
{
|
||||
@@ -412,7 +454,7 @@ Index: tango/core/Vararg.d
|
||||
/**
|
||||
Index: tango/core/sync/Semaphore.d
|
||||
===================================================================
|
||||
--- tango/core/sync/Semaphore.d (revision 4097)
|
||||
--- tango/core/sync/Semaphore.d (revision 4110)
|
||||
+++ tango/core/sync/Semaphore.d (working copy)
|
||||
@@ -376,7 +376,8 @@
|
||||
{
|
||||
@@ -448,7 +490,7 @@ Index: tango/core/sync/Semaphore.d
|
||||
}
|
||||
Index: tango/core/sync/Condition.d
|
||||
===================================================================
|
||||
--- tango/core/sync/Condition.d (revision 4097)
|
||||
--- tango/core/sync/Condition.d (revision 4110)
|
||||
+++ tango/core/sync/Condition.d (working copy)
|
||||
@@ -553,8 +553,11 @@
|
||||
|
||||
@@ -464,7 +506,7 @@ Index: tango/core/sync/Condition.d
|
||||
}
|
||||
Index: tango/core/Atomic.d
|
||||
===================================================================
|
||||
--- tango/core/Atomic.d (revision 4097)
|
||||
--- tango/core/Atomic.d (revision 4110)
|
||||
+++ tango/core/Atomic.d (working copy)
|
||||
@@ -270,6 +270,167 @@
|
||||
|
||||
@@ -648,11 +690,11 @@ Index: tango/core/Atomic.d
|
||||
{
|
||||
Index: tango/math/IEEE.d
|
||||
===================================================================
|
||||
--- tango/math/IEEE.d (revision 4097)
|
||||
--- tango/math/IEEE.d (revision 4110)
|
||||
+++ tango/math/IEEE.d (working copy)
|
||||
@@ -1543,7 +1543,12 @@
|
||||
else return 0;
|
||||
}
|
||||
@@ -1554,7 +1554,12 @@
|
||||
return (bitsdiff == 0 && !((pa[F.EXPPOS_SHORT] ^ pb[F.EXPPOS_SHORT])& F.EXPMASK)) ? 1 : 0;
|
||||
}
|
||||
} else {
|
||||
- assert(0, "Unsupported");
|
||||
+ static if (is(X==real)){
|
||||
@@ -666,7 +708,7 @@ Index: tango/math/IEEE.d
|
||||
|
||||
Index: tango/math/Math.d
|
||||
===================================================================
|
||||
--- tango/math/Math.d (revision 4097)
|
||||
--- tango/math/Math.d (revision 4110)
|
||||
+++ tango/math/Math.d (working copy)
|
||||
@@ -76,6 +76,14 @@
|
||||
version = DigitalMars_D_InlineAsm_X86;
|
||||
@@ -815,7 +857,7 @@ Index: tango/math/Math.d
|
||||
debug(UnitTest) {
|
||||
Index: tango/stdc/posix/sys/types.d
|
||||
===================================================================
|
||||
--- tango/stdc/posix/sys/types.d (revision 4097)
|
||||
--- tango/stdc/posix/sys/types.d (revision 4110)
|
||||
+++ tango/stdc/posix/sys/types.d (working copy)
|
||||
@@ -422,7 +422,11 @@
|
||||
}
|
||||
@@ -832,7 +874,7 @@ Index: tango/stdc/posix/sys/types.d
|
||||
{
|
||||
Index: tango/stdc/stdlib.d
|
||||
===================================================================
|
||||
--- tango/stdc/stdlib.d (revision 4097)
|
||||
--- tango/stdc/stdlib.d (revision 4110)
|
||||
+++ tango/stdc/stdlib.d (working copy)
|
||||
@@ -94,6 +94,11 @@
|
||||
{
|
||||
@@ -848,7 +890,7 @@ Index: tango/stdc/stdlib.d
|
||||
private import gcc.builtins;
|
||||
Index: tango/stdc/stdarg.d
|
||||
===================================================================
|
||||
--- tango/stdc/stdarg.d (revision 4097)
|
||||
--- tango/stdc/stdarg.d (revision 4110)
|
||||
+++ tango/stdc/stdarg.d (working copy)
|
||||
@@ -13,6 +13,10 @@
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user