Mercurial > projects > ldc
annotate runtime/ldc.diff @ 715:30b42a283c8e
Removed TypeOpaque from DMD.
Changed runtime functions taking opaque[] to void[].
Implemented proper type painting, to avoid "resizing" array casts in runtime calls that previously took opaque[].
Implemented dynamic arrays as first class types, this implements proper ABI for these types on x86.
Added dwarf region end after call to assert function, fixes some problems with llvm not allowing this to be missing.
Reverted change to WithStatement from rev [704] it breaks MiniD, mini/with2.d needs to be fixed some other way...
Fixed tango bug 1339 in runtime, problem with _adReverseChar on invalid UTF-8.
Disabled .bc generation in the compiler runtime part, genobj.d triggers some llvm bug when using debug info. the .o seems to work fine.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 22 Oct 2008 14:55:33 +0200 |
parents | f0ba5d37dd86 |
children | f34b552619fd |
rev | line source |
---|---|
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
1 Index: object.di |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
2 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
3 --- object.di (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
4 +++ object.di (working copy) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
5 @@ -150,6 +150,9 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
6 void function() dtor; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
7 void function() unitTest; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
8 |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
9 + void* xgetMembers; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
10 + void function() ictor; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
11 + |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
12 static int opApply( int delegate( inout ModuleInfo ) ); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
13 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
14 |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
15 Index: lib/common/tango/core/BitManip.d |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
16 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
17 --- lib/common/tango/core/BitManip.d (revision 4002) |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
18 +++ lib/common/tango/core/BitManip.d (working copy) |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
19 @@ -171,6 +171,10 @@ |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
20 */ |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
21 uint outpl( uint port_address, uint value ); |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
22 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
23 +else version( LDC ) |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
24 +{ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
25 + public import ldc.bitmanip; |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
26 +} |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
27 else |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
28 { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
29 public import std.intrinsic; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
30 Index: lib/common/tango/core/Thread.d |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
31 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
32 --- lib/common/tango/core/Thread.d (revision 4002) |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
33 +++ lib/common/tango/core/Thread.d (working copy) |
698
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
34 @@ -235,6 +235,7 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
35 // used to track the number of suspended threads |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
36 // |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
37 sem_t suspendCount; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
38 + sem_t* suspendCountPtr; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
39 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
40 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
41 extern (C) void thread_suspendHandler( int sig ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
42 @@ -244,8 +245,29 @@ |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
43 } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
44 body |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
45 { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
46 - version( D_InlineAsm_X86 ) |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
47 + version( LDC) |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
48 { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
49 + version(X86) |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
50 + { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
51 + uint eax,ecx,edx,ebx,ebp,esi,edi; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
52 + asm |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
53 + { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
54 + mov eax[EBP], EAX ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
55 + mov ecx[EBP], ECX ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
56 + mov edx[EBP], EDX ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
57 + mov ebx[EBP], EBX ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
58 + mov ebp[EBP], EBP ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
59 + mov esi[EBP], ESI ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
60 + mov edi[EBP], EDI ; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
61 + } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
62 + } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
63 + else |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
64 + { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
65 + static assert( false, "Architecture not supported." ); |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
66 + } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
67 + } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
68 + else version( D_InlineAsm_X86 ) |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
69 + { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
70 asm |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
71 { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
72 pushad; |
698
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
73 @@ -286,7 +308,7 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
74 status = sigdelset( &sigres, SIGUSR2 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
75 assert( status == 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
76 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
77 - status = sem_post( &suspendCount ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
78 + status = sem_post( suspendCountPtr ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
79 assert( status == 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
80 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
81 sigsuspend( &sigres ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
82 @@ -297,8 +319,12 @@ |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
83 } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
84 } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
85 |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
86 - version( D_InlineAsm_X86 ) |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
87 + version( LDC) |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
88 { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
89 + // nothing to pop |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
90 + } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
91 + else version( D_InlineAsm_X86 ) |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
92 + { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
93 asm |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
94 { |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
95 popad; |
698
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
96 @@ -1572,8 +1598,14 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
97 status = sigaction( SIGUSR2, &sigusr2, null ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
98 assert( status == 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
99 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
100 - status = sem_init( &suspendCount, 0, 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
101 - assert( status == 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
102 + version(darwin){ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
103 + suspendCountPtr = sem_open( "/thread_init/sem\0".ptr, 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
104 + assert( suspendCountPtr !is null ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
105 + }else { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
106 + status=sem_init(&suspendCount,0,0); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
107 + suspendCountPtr=&suspendCount; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
108 + assert(status==0); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
109 + } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
110 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
111 status = pthread_key_create( &Thread.sm_this, null ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
112 assert( status == 0 ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
113 @@ -1781,7 +1813,7 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
114 // to simply loop on sem_wait at the end, but I'm not |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
115 // convinced that this would be much faster than the |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
116 // current approach. |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
117 - sem_wait( &suspendCount ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
118 + sem_wait( suspendCountPtr ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
119 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
120 else if( !t.m_lock ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
121 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
122 @@ -2286,6 +2318,13 @@ |
640
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
123 version = AsmPPC_Posix; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
124 } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
125 |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
126 + version( LLVM_InlineAsm_X86 ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
127 + { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
128 + version( Win32 ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
129 + version = LLVM_AsmX86_Win32; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
130 + else version( Posix ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
131 + version = LLVM_AsmX86_Posix; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
132 + } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
133 |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
134 version( Posix ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
135 { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
136 @@ -2296,6 +2328,8 @@ |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
137 version( AsmX86_Win32 ) {} else |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
138 version( AsmX86_Posix ) {} else |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
139 version( AsmPPC_Posix ) {} else |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
140 + version( LLVM_AsmX86_Win32 ) {} else |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
141 + version( LLVM_AsmX86_Posix ) {} else |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
142 { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
143 // NOTE: The ucontext implementation requires architecture specific |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
144 // data definitions to operate so testing for it must be done |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
145 @@ -2306,10 +2340,10 @@ |
636
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
146 import tango.stdc.posix.ucontext; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
147 } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
148 } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
149 - |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
150 - const size_t PAGESIZE; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
151 } |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
152 |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
153 +// this can't be private since it's used as default argument to a public function |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
154 +const size_t PAGESIZE; |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
155 |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
156 static this() |
9fb1f559d9e9
updated tango patch so it compiles again with the latests check for using privates as default args for public functions.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
627
diff
changeset
|
157 { |
640
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
158 @@ -2336,7 +2370,7 @@ |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
159 } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
160 } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
161 |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
162 - |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
163 +extern(C) int printf(char*, ...); |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
164 //////////////////////////////////////////////////////////////////////////////// |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
165 // Fiber Entry Point and Context Switch |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
166 //////////////////////////////////////////////////////////////////////////////// |
641
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
167 @@ -2450,6 +2484,22 @@ |
640
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
168 ret; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
169 } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
170 } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
171 + else version( LLVM_AsmX86_Posix ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
172 + { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
173 + asm |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
174 + { |
641
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
175 + // clobber registers to save |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
176 + inc EBX; |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
177 + inc ESI; |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
178 + inc EDI; |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
179 + |
640
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
180 + // store oldp again with more accurate address |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
181 + mov EAX, oldp; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
182 + mov [EAX], ESP; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
183 + // load newp to begin context switch |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
184 + mov ESP, newp; |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
185 + } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
186 + } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
187 else static if( is( ucontext_t ) ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
188 { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
189 Fiber cfib = Fiber.getThis(); |
641
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
190 @@ -3115,6 +3165,16 @@ |
640
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
191 push( 0x00000000 ); // ESI |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
192 push( 0x00000000 ); // EDI |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
193 } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
194 + else version( LLVM_AsmX86_Posix ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
195 + { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
196 + push( cast(size_t) &fiber_entryPoint ); // EIP |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
197 + push( 0x00000000 ); // newp |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
198 + push( 0x00000000 ); // oldp |
641
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
199 + push( 0x00000000 ); // EBP |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
200 + push( 0x00000000 ); // EBX |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
201 + push( 0x00000000 ); // ESI |
d9927f20758b
Fiber support: clobber the registers we want restored on a context switch.
Christian Kamm <kamm incasoftware de>
parents:
640
diff
changeset
|
202 + push( 0x00000000 ); // EDI |
640
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
203 + } |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
204 else version( AsmPPC_Posix ) |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
205 { |
c2a342b5d8e5
Made Fibers work with LLVMDC on x86 Posix.
Christian Kamm <kamm incasoftware de>
parents:
636
diff
changeset
|
206 version( StackGrowsDown ) |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
207 Index: lib/unittest.sh |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
208 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
209 --- lib/unittest.sh (revision 4002) |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
210 +++ lib/unittest.sh (working copy) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
211 @@ -18,8 +18,9 @@ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
212 --help: This message |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
213 --run-all: Reports result instead of breaking. Do not use this if you want to |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
214 run unittest runner through a debugger. |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
215 - dmd: Builds unittests for dmd |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
216 - gdc: Builds unittests for gdc |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
217 + dmd: Builds unittests for dmd |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
218 + gdc: Builds unittests for gdc |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
219 + ldc: Builds unittests for ldc |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
220 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
221 <none>: Builds unittests for all known compilers.' |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
222 exit 0 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
223 @@ -86,7 +87,7 @@ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
224 void main() {} |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
225 EOF |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
226 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
227 - rebuild -w -d -g -L-ldl -L-lz -L-lbz2 -debug=UnitTest -debug -full -clean -unittest \ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
228 + rebuild -w -d -L-ldl -L-lz -L-lbz2 -debug=UnitTest -debug -full -clean -unittest \ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
229 -version=UnitTest $EXE.d tango/core/*.d tango/core/sync/*.d tango/io/digest/*.d \ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
230 tango/io/model/*.d tango/io/protocol/*.d tango/io/selector/*.d tango/io/*.d \ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
231 tango/io/vfs/*.d tango/io/vfs/model/*.d \ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
232 @@ -125,6 +126,9 @@ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
233 gdc) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
234 GDC=1 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
235 ;; |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
236 + ldc) |
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
237 + LDC=1 |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
238 + ;; |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
239 *) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
240 usage |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
241 ;; |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
242 @@ -132,10 +136,11 @@ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
243 shift |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
244 done |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
245 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
246 -if [ ! "$DMD" -a ! "$GDC" ] |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
247 +if [ ! "$DMD" -a ! "$GDC" -a ! "$LDC" ] |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
248 then |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
249 DMD=1 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
250 GDC=1 |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
251 + LDC=1 |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
252 fi |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
253 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
254 if [ "$DMD" = "1" ] |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
255 @@ -146,4 +151,7 @@ |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
256 then |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
257 compile gdc runUnitTest_gdc |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
258 fi |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
259 - |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
260 +if [ "$LDC" = "1" ] |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
261 +then |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
262 + compile ldc runUnitTest_ldc |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
263 +fi |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
264 Index: lib/gc/basic/gcx.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
265 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
266 --- lib/gc/basic/gcx.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
267 +++ lib/gc/basic/gcx.d (working copy) |
627
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
268 @@ -65,6 +65,13 @@ |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
269 } |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
270 |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
271 |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
272 +struct BlkInfo |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
273 +{ |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
274 + void* base; |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
275 + size_t size; |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
276 + uint attr; |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
277 +} |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
278 + |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
279 private |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
280 { |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
281 enum BlkAttr : uint |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
282 @@ -75,13 +82,6 @@ |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
283 ALL_BITS = 0b1111_1111 |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
284 } |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
285 |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
286 - struct BlkInfo |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
287 - { |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
288 - void* base; |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
289 - size_t size; |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
290 - uint attr; |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
291 - } |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
292 - |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
293 extern (C) void* rt_stackBottom(); |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
294 extern (C) void* rt_stackTop(); |
79cbe5034fec
Tango patch: xml document fixes and symbol visibility in gc
Christian Kamm <kamm incasoftware de>
parents:
615
diff
changeset
|
295 |
540
9312024a7053
Gah, missed something still. I'll test properly next time ;)
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
539
diff
changeset
|
296 @@ -2178,6 +2178,28 @@ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
297 __builtin_unwind_init(); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
298 sp = & sp; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
299 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
300 + else version(LDC) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
301 + { |
531
f775ea9d09d3
Updated the tango patch, removed some now unnecessarily complex inline asm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
529
diff
changeset
|
302 + version(X86) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
303 + { |
533
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
304 + uint eax,ecx,edx,ebx,ebp,esi,edi; |
531
f775ea9d09d3
Updated the tango patch, removed some now unnecessarily complex inline asm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
529
diff
changeset
|
305 + asm |
f775ea9d09d3
Updated the tango patch, removed some now unnecessarily complex inline asm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
529
diff
changeset
|
306 + { |
533
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
307 + mov eax[EBP], EAX ; |
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
308 + mov ecx[EBP], ECX ; |
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
309 + mov edx[EBP], EDX ; |
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
310 + mov ebx[EBP], EBX ; |
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
311 + mov ebp[EBP], EBP ; |
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
312 + mov esi[EBP], ESI ; |
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
313 + mov edi[EBP], EDI ; |
531
f775ea9d09d3
Updated the tango patch, removed some now unnecessarily complex inline asm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
529
diff
changeset
|
314 + mov sp[EBP],ESP ; |
f775ea9d09d3
Updated the tango patch, removed some now unnecessarily complex inline asm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
529
diff
changeset
|
315 + } |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
316 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
317 + else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
318 + { |
533
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
319 + static assert( false, "Architecture not supported." ); |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
320 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
321 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
322 else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
323 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
324 asm |
540
9312024a7053
Gah, missed something still. I'll test properly next time ;)
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
539
diff
changeset
|
325 @@ -2191,6 +2213,10 @@ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
326 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
327 // nothing to do |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
328 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
329 + else version(LDC) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
330 + { |
533
2fe2d4518618
Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
531
diff
changeset
|
331 + // nothing to do |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
332 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
333 else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
334 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
335 asm |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
336 Index: lib/gc/basic/gcbits.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
337 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
338 --- lib/gc/basic/gcbits.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
339 +++ lib/gc/basic/gcbits.d (working copy) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
340 @@ -39,6 +39,10 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
341 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
342 // use the unoptimized version |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
343 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
344 +else version(LDC) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
345 +{ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
346 + // ditto |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
347 +} |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
348 else version (D_InlineAsm_X86) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
349 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
350 version = Asm86; |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
351 Index: lib/build-tango.sh |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
352 =================================================================== |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
353 --- lib/build-tango.sh (revision 4002) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
354 +++ lib/build-tango.sh (working copy) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
355 @@ -23,7 +23,7 @@ |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
356 --debug: Will enable debug info |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
357 --warn: Will enable warnings |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
358 --verbose: Increase verbosity |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
359 - <identifier> is one of {dmd, gdc, mac} and will build libtango.a, |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
360 + <identifier> is one of {dmd, gdc, ldc, mac} and will build libtango.a, |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
361 libgtango.a or universal Mac binaries respectively |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
362 |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
363 The script must be called from within lib/ and the resulting |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
364 @@ -105,7 +105,7 @@ |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
365 if filter $OBJNAME |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
366 then |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
367 if [ $VERBOSE == 1 ]; then echo "[$DC] $FILENAME"; fi |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
368 - $DC $WARN -c $INLINE $DEBUG $RELEASE -version=Posix -version=Tango -of$OBJNAME $FILENAME |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
369 + $DC $WARN -c $INLINE $DEBUG $RELEASE -version=Tango -of$OBJNAME $FILENAME |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
370 if [ "$?" != 0 ] |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
371 then |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
372 return 1; |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
373 @@ -189,6 +189,9 @@ |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
374 gdc) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
375 build gdmd libgtango.a libgphobos.a |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
376 ;; |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
377 + ldc) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
378 + build ldc libtango-user-ldc.a build-tango.sh |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
379 + ;; |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
380 mac) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
381 # build Universal Binary version of the Tango library |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
382 build powerpc-apple-darwin8-gdmd libgtango.a.ppc libgphobos.a.ppc |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
383 Index: tango/text/convert/Layout.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
384 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
385 --- tango/text/convert/Layout.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
386 +++ tango/text/convert/Layout.d (working copy) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
387 @@ -47,6 +47,12 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
388 alias void* Arg; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
389 alias va_list ArgList; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
390 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
391 +else version(LDC) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
392 + { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
393 + private import tango.core.Vararg; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
394 + alias void* Arg; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
395 + alias va_list ArgList; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
396 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
397 else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
398 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
399 alias void* Arg; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
400 @@ -197,9 +203,18 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
401 assert (formatStr, "null format specifier"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
402 assert (arguments.length < 64, "too many args in Layout.convert"); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
403 |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
404 - version (GNU) |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
405 + version (LDC) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
406 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
407 Arg[64] arglist = void; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
408 + foreach (i, arg; arguments) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
409 + { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
410 + arglist[i] = args; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
411 + args += (arg.tsize + size_t.sizeof - 1) & ~ (size_t.sizeof - 1); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
412 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
413 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
414 + else version (GNU) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
415 + { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
416 + Arg[64] arglist = void; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
417 int[64] intargs = void; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
418 byte[64] byteargs = void; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
419 long[64] longargs = void; |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
420 Index: tango/net/cluster/CacheInvalidator.d |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
421 =================================================================== |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
422 --- tango/net/cluster/CacheInvalidator.d (revision 4002) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
423 +++ tango/net/cluster/CacheInvalidator.d (working copy) |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
424 @@ -79,7 +79,7 @@ |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
425 |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
426 *******************************************************************************/ |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
427 |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
428 -private class InvalidatorPayload : NetworkMessage |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
429 +package class InvalidatorPayload : NetworkMessage |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
430 { |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
431 private char[] key_; |
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
432 |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
433 Index: tango/core/Vararg.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
434 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
435 --- tango/core/Vararg.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
436 +++ tango/core/Vararg.d (working copy) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
437 @@ -15,6 +15,10 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
438 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
439 public import std.stdarg; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
440 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
441 +else version( LDC ) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
442 +{ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
443 + public import ldc.vararg; |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
444 +} |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
445 else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
446 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
447 /** |
698
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
448 Index: tango/core/sync/Semaphore.d |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
449 =================================================================== |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
450 --- tango/core/sync/Semaphore.d (revision 3979) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
451 +++ tango/core/sync/Semaphore.d (working copy) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
452 @@ -329,7 +329,8 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
453 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
454 synchronized( synComplete ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
455 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
456 - if( numComplete == numConsumers ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
457 + // if( numComplete == numConsumers ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
458 + if( numComplete == numToProduce ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
459 break; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
460 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
461 Thread.yield(); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
462 @@ -337,9 +338,9 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
463 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
464 synchronized( synComplete ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
465 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
466 - assert( numComplete == numConsumers ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
467 + assert( numComplete == numToProduce ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
468 + // assert( numComplete == numConsumers ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
469 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
470 - |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
471 synchronized( synConsumed ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
472 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
473 assert( numConsumed == numToProduce ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
474 @@ -400,7 +401,8 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
475 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
476 unittest |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
477 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
478 + version(darwin){}else{ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
479 testWait(); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
480 - testWaitTimeout(); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
481 + testWaitTimeout();} |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
482 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
483 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
484 Index: tango/core/sync/Condition.d |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
485 =================================================================== |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
486 --- tango/core/sync/Condition.d (revision 3979) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
487 +++ tango/core/sync/Condition.d (working copy) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
488 @@ -553,8 +553,11 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
489 |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
490 unittest |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
491 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
492 + version(darwin){} |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
493 + else{ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
494 testNotify(); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
495 testNotifyAll(); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
496 testWaitTimeout(); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
497 + } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
498 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
499 } |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
500 Index: tango/core/Atomic.d |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
501 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
502 --- tango/core/Atomic.d (revision 4002) |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
503 +++ tango/core/Atomic.d (working copy) |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
504 @@ -270,6 +270,167 @@ |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
505 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
506 |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
507 //////////////////////////////////////////////////////////////////////////////// |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
508 +// LDC Atomics Implementation |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
509 +//////////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
510 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
511 + |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
512 +else version( LDC ) |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
513 +{ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
514 + import ldc.intrinsics; |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
515 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
516 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
517 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
518 + // Atomic Load |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
519 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
520 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
521 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
522 + template atomicLoad( msync ms = msync.seq, T ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
523 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
524 + T atomicLoad(ref T val) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
525 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
526 + llvm_memory_barrier( |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
527 + ms == msync.hlb || ms == msync.acq || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
528 + ms == msync.hsb || ms == msync.acq || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
529 + ms == msync.slb || ms == msync.rel || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
530 + ms == msync.ssb || ms == msync.rel || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
531 + false); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
532 + static if (isPointerType!(T)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
533 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
534 + return cast(T)llvm_atomic_load_add!(size_t)(cast(size_t*)&val, 0); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
535 + } |
613
19cbc612380a
Add bool-special cases in tango.core.Atomic.
Christian Kamm <kamm incasoftware de>
parents:
609
diff
changeset
|
536 + else static if (is(T == bool)) |
19cbc612380a
Add bool-special cases in tango.core.Atomic.
Christian Kamm <kamm incasoftware de>
parents:
609
diff
changeset
|
537 + { |
19cbc612380a
Add bool-special cases in tango.core.Atomic.
Christian Kamm <kamm incasoftware de>
parents:
609
diff
changeset
|
538 + return llvm_atomic_load_add!(ubyte)(cast(ubyte*)&val, cast(ubyte)0) ? 1 : 0; |
19cbc612380a
Add bool-special cases in tango.core.Atomic.
Christian Kamm <kamm incasoftware de>
parents:
609
diff
changeset
|
539 + } |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
540 + else |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
541 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
542 + return llvm_atomic_load_add!(T)(&val, cast(T)0); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
543 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
544 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
545 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
546 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
547 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
548 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
549 + // Atomic Store |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
550 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
551 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
552 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
553 + template atomicStore( msync ms = msync.seq, T ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
554 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
555 + void atomicStore( ref T val, T newval ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
556 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
557 + llvm_memory_barrier( |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
558 + ms == msync.hlb || ms == msync.acq || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
559 + ms == msync.hsb || ms == msync.acq || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
560 + ms == msync.slb || ms == msync.rel || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
561 + ms == msync.ssb || ms == msync.rel || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
562 + false); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
563 + static if (isPointerType!(T)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
564 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
565 + llvm_atomic_swap!(size_t)(cast(size_t*)&val, cast(size_t)newval); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
566 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
567 + else static if (is(T == bool)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
568 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
569 + llvm_atomic_swap!(ubyte)(cast(ubyte*)&val, newval?1:0); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
570 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
571 + else |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
572 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
573 + llvm_atomic_swap!(T)(&val, newval); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
574 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
575 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
576 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
577 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
578 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
579 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
580 + // Atomic Store If |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
581 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
582 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
583 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
584 + template atomicStoreIf( msync ms = msync.seq, T ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
585 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
586 + bool atomicStoreIf( ref T val, T newval, T equalTo ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
587 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
588 + llvm_memory_barrier( |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
589 + ms == msync.hlb || ms == msync.acq || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
590 + ms == msync.hsb || ms == msync.acq || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
591 + ms == msync.slb || ms == msync.rel || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
592 + ms == msync.ssb || ms == msync.rel || ms == msync.seq, |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
593 + false); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
594 + T oldval = void; |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
595 + static if (isPointerType!(T)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
596 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
597 + oldval = cast(T)llvm_atomic_cmp_swap!(size_t)(cast(size_t*)&val, cast(size_t)equalTo, cast(size_t)newval); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
598 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
599 + else static if (is(T == bool)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
600 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
601 + oldval = llvm_atomic_cmp_swap!(ubyte)(cast(ubyte*)&val, equalTo?1:0, newval?1:0)?0:1; |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
602 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
603 + else |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
604 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
605 + oldval = llvm_atomic_cmp_swap!(T)(&val, equalTo, newval); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
606 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
607 + return oldval == equalTo; |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
608 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
609 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
610 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
611 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
612 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
613 + // Atomic Increment |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
614 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
615 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
616 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
617 + template atomicIncrement( msync ms = msync.seq, T ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
618 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
619 + // |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
620 + // NOTE: This operation is only valid for integer or pointer types |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
621 + // |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
622 + static assert( isValidNumericType!(T) ); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
623 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
624 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
625 + T atomicIncrement( ref T val ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
626 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
627 + static if (isPointerType!(T)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
628 + { |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
629 + llvm_atomic_load_add!(size_t)(cast(size_t*)&val, 1); |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
630 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
631 + else |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
632 + { |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
633 + llvm_atomic_load_add!(T)(&val, cast(T)1); |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
634 + } |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
635 + return val; |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
636 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
637 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
638 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
639 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
640 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
641 + // Atomic Decrement |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
642 + //////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
643 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
644 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
645 + template atomicDecrement( msync ms = msync.seq, T ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
646 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
647 + // |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
648 + // NOTE: This operation is only valid for integer or pointer types |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
649 + // |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
650 + static assert( isValidNumericType!(T) ); |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
651 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
652 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
653 + T atomicDecrement( ref T val ) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
654 + { |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
655 + static if (isPointerType!(T)) |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
656 + { |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
657 + llvm_atomic_load_sub!(size_t)(cast(size_t*)&val, 1); |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
658 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
659 + else |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
660 + { |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
661 + llvm_atomic_load_sub!(T)(&val, cast(T)1); |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
662 + } |
615
c60e122f4ada
Fix atomicIncr and atomicDecr. Probably.
Christian Kamm <kamm incasoftware de>
parents:
613
diff
changeset
|
663 + return val; |
529
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
664 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
665 + } |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
666 +} |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
667 + |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
668 +//////////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
669 // x86 Atomic Function Implementation |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
670 //////////////////////////////////////////////////////////////////////////////// |
cef0cbcf7d22
Updated tango patch, with rewrittten Atomics using llvm atomic intrinsics.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
454
diff
changeset
|
671 |
698
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
672 @@ -282,9 +598,9 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
673 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
674 pragma( msg, "tango.core.Atomic: using IA-32 inline asm" ); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
675 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
676 - |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
677 + version(darwin){} |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
678 + else { version = Has64BitCAS; } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
679 version = Has32BitOps; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
680 - version = Has64BitCAS; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
681 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
682 version( X86_64 ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
683 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
684 Index: tango/math/IEEE.d |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
685 =================================================================== |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
686 --- tango/math/IEEE.d (revision 3979) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
687 +++ tango/math/IEEE.d (working copy) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
688 @@ -1543,7 +1543,12 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
689 else return 0; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
690 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
691 } else { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
692 - assert(0, "Unsupported"); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
693 + static if (is(X==real)){ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
694 + static assert(0, X.stringof~" unsupported by feqrel"); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
695 + } else { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
696 + int res=feqrel(cast(real)x,cast(real)y); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
697 + return ((res>X.mant_dig)?X.mant_dig:res); |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
698 + } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
699 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
700 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
701 |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
702 Index: tango/math/Math.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
703 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
704 --- tango/math/Math.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
705 +++ tango/math/Math.d (working copy) |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
706 @@ -76,6 +76,14 @@ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
707 version = DigitalMars_D_InlineAsm_X86; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
708 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
709 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
710 +else version(LDC) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
711 +{ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
712 + import ldc.intrinsics; |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
713 + version(X86) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
714 + { |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
715 + version = LDC_X86; |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
716 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
717 +} |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
718 |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
719 /* |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
720 * Constants |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
721 @@ -298,6 +306,24 @@ |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
722 * Bugs: |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
723 * Results are undefined if |x| >= $(POWER 2,64). |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
724 */ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
725 +version(LDC) |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
726 +{ |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
727 + alias llvm_cos_f32 cos; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
728 + alias llvm_cos_f64 cos; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
729 + version(X86) |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
730 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
731 + alias llvm_cos_f80 cos; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
732 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
733 + else |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
734 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
735 + real cos(real x) |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
736 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
737 + return tango.stdc.math.cosl(x); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
738 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
739 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
740 +} |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
741 +else |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
742 +{ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
743 real cos(real x) /* intrinsic */ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
744 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
745 version(D_InlineAsm_X86) |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
746 @@ -313,6 +339,7 @@ |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
747 return tango.stdc.math.cosl(x); |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
748 } |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
749 } |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
750 +} |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
751 |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
752 debug(UnitTest) { |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
753 unittest { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
754 @@ -333,6 +360,24 @@ |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
755 * Bugs: |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
756 * Results are undefined if |x| >= $(POWER 2,64). |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
757 */ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
758 +version(LDC) |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
759 +{ |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
760 + alias llvm_sin_f32 sin; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
761 + alias llvm_sin_f64 sin; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
762 + version(X86) |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
763 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
764 + alias llvm_sin_f80 sin; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
765 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
766 + else |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
767 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
768 + real sin(real x) |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
769 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
770 + return tango.stdc.math.sinl(x); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
771 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
772 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
773 +} |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
774 +else |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
775 +{ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
776 real sin(real x) /* intrinsic */ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
777 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
778 version(D_InlineAsm_X86) |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
779 @@ -348,6 +393,7 @@ |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
780 return tango.stdc.math.sinl(x); |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
781 } |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
782 } |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
783 +} |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
784 |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
785 debug(UnitTest) { |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
786 unittest { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
787 @@ -374,7 +420,11 @@ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
788 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
789 version (GNU) { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
790 return tanl(x); |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
791 - } else { |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
792 + } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
793 + else version(LDC) { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
794 + return tango.stdc.math.tanl(x); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
795 + } |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
796 + else { |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
797 asm |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
798 { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
799 fld x[EBP] ; // load theta |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
800 @@ -947,6 +997,25 @@ |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
801 * <tr> <td> +∞ <td> +∞ <td> no |
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
802 * ) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
803 */ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
804 +version(LDC) |
444
f2b5f86348ef
Updated tango patch. tango.math.Math was incorrect.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
443
diff
changeset
|
805 +{ |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
806 + alias llvm_sqrt_f32 sqrt; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
807 + alias llvm_sqrt_f64 sqrt; |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
808 + version(X86) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
809 + { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
810 + alias llvm_sqrt_f80 sqrt; |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
811 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
812 + else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
813 + { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
814 + real sqrt(real x) |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
815 + { |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
816 + return tango.stdc.math.sqrtl(x); |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
817 + } |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
818 + } |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
819 +} |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
820 +else |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
821 +{ |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
822 + |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
823 float sqrt(float x) /* intrinsic */ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
824 { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
825 version(D_InlineAsm_X86) |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
826 @@ -995,6 +1064,8 @@ |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
827 } |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
828 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
829 |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
830 +} |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
831 + |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
832 /** ditto */ |
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
833 creal sqrt(creal z) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
834 { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
835 @@ -1477,7 +1548,14 @@ |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
836 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
837 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
838 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
839 - return tango.stdc.math.powl(x, y); |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
840 + version(LDC_X86) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
841 + { |
445
cc40db549aea
Changed the handling of variadic intrinsics a bit.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
444
diff
changeset
|
842 + return llvm_pow_f80(x, y); |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
843 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
844 + else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
845 + { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
846 + return tango.stdc.math.powl(x, y); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
847 + } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
848 } |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
849 |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
850 debug(UnitTest) { |
698
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
851 Index: tango/stdc/posix/sys/types.d |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
852 =================================================================== |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
853 --- tango/stdc/posix/sys/types.d (revision 3979) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
854 +++ tango/stdc/posix/sys/types.d (working copy) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
855 @@ -422,7 +422,11 @@ |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
856 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
857 else version( darwin ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
858 { |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
859 - struct pthread_spinlock_t; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
860 + version (LDC) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
861 + alias void* pthread_spinlock_t; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
862 + |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
863 + else |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
864 + struct pthread_spinlock_t; |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
865 } |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
866 else version( freebsd ) |
f0ba5d37dd86
Merge darwin patch for Tango.
Christian Kamm <kamm incasoftware de>
parents:
685
diff
changeset
|
867 { |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
868 Index: tango/stdc/stdlib.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
869 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
870 --- tango/stdc/stdlib.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
871 +++ tango/stdc/stdlib.d (working copy) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
872 @@ -94,6 +94,11 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
873 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
874 void* alloca(size_t size); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
875 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
876 +else version( LDC ) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
877 +{ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
878 + pragma(alloca) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
879 + void* alloca(size_t size); |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
880 +} |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
881 else version( GNU ) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
882 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
883 private import gcc.builtins; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
884 Index: tango/stdc/stdarg.d |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
885 =================================================================== |
685
8d7e58801c82
Adjust build-tango.sh for ldc.
Christian Kamm <kamm incasoftware de>
parents:
665
diff
changeset
|
886 --- tango/stdc/stdarg.d (revision 4002) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
887 +++ tango/stdc/stdarg.d (working copy) |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
888 @@ -13,6 +13,10 @@ |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
889 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
890 public import std.c.stdarg; |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
891 } |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
892 +else version( LDC ) |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
893 +{ |
663
6aaa3d3c1183
First part of rename to LDC.
Christian Kamm <kamm incasoftware de>
parents:
647
diff
changeset
|
894 + public import ldc.cstdarg; |
443
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
895 +} |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
896 else |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
897 { |
44f08170f4ef
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents:
diff
changeset
|
898 alias void* va_list; |