changeset 777:961e249eb2aa

Include x86-32 fiber fixes in tango patch again.
author Christian Kamm <kamm incasoftware de>
date Sat, 22 Nov 2008 13:41:36 +0100
parents 6aa2b350c8cc
children 4adf0f742896
files runtime/ldc.diff
diffstat 1 files changed, 67 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/ldc.diff	Thu Nov 20 17:20:00 2008 +0100
+++ b/runtime/ldc.diff	Sat Nov 22 13:41:36 2008 +0100
@@ -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: 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 @@
 +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 @@
      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 @@
                  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 @@
          {
              // 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 @@
  static this()
  {
      static if( is( typeof( GetSystemInfo ) ) )
-@@ -2522,7 +2574,7 @@
+@@ -2522,7 +2586,7 @@
      }
  }
  
@@ -187,7 +206,30 @@
  ////////////////////////////////////////////////////////////////////////////////
  // 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 @@
              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 @@
          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 @@
      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 @@
              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 @@
                  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/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/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/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/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/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/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 @@
  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/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 @@
      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 @@
  {