Changeset 777:961e249eb2aa
- Timestamp:
- 11/22/08 07:41:36
(2 months ago)
- Author:
- Christian Kamm <kamm incasoftware de>
- branch:
- default
- Message:
Include x86-32 fiber fixes in tango patch again.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r776 |
r777 |
|
| 1 | 1 | Index: object.di |
|---|
| 2 | 2 | =================================================================== |
|---|
| 3 | | --- object.di (revision 4097) |
|---|
| | 3 | --- object.di (revision 4110) |
|---|
| 4 | 4 | +++ object.di (working copy) |
|---|
| 5 | 5 | @@ -150,6 +150,9 @@ |
|---|
| … | … | |
| 15 | 15 | Index: lib/unittest.sh |
|---|
| 16 | 16 | =================================================================== |
|---|
| 17 | | --- lib/unittest.sh (revision 4097) |
|---|
| | 17 | --- lib/unittest.sh (revision 4110) |
|---|
| 18 | 18 | +++ lib/unittest.sh (working copy) |
|---|
| 19 | 19 | @@ -18,8 +18,9 @@ |
|---|
| … | … | |
| 72 | 72 | Index: lib/common/tango/core/BitManip.d |
|---|
| 73 | 73 | =================================================================== |
|---|
| 74 | | --- lib/common/tango/core/BitManip.d (revision 4097) |
|---|
| | 74 | --- lib/common/tango/core/BitManip.d (revision 4110) |
|---|
| 75 | 75 | +++ lib/common/tango/core/BitManip.d (working copy) |
|---|
| 76 | 76 | @@ -171,6 +171,10 @@ |
|---|
| … | … | |
| 87 | 87 | Index: lib/common/tango/core/Thread.d |
|---|
| 88 | 88 | =================================================================== |
|---|
| 89 | | --- lib/common/tango/core/Thread.d (revision 4097) |
|---|
| | 89 | --- lib/common/tango/core/Thread.d (revision 4110) |
|---|
| 90 | 90 | +++ lib/common/tango/core/Thread.d (working copy) |
|---|
| 91 | 91 | @@ -273,8 +273,50 @@ |
|---|
| … | … | |
| 155 | 155 | { |
|---|
| 156 | 156 | popad; |
|---|
| 157 | | @@ -2357,6 +2403,10 @@ |
|---|
| | 157 | @@ -2347,6 +2393,18 @@ |
|---|
| | 158 | version( Posix ) |
|---|
| | 159 | version = AsmPPC_Posix; |
|---|
| | 160 | } |
|---|
| | 161 | + version( LLVM_InlineAsm_X86 ) |
|---|
| | 162 | + { |
|---|
| | 163 | + version( Win32 ) |
|---|
| | 164 | + version = LLVM_AsmX86_Win32; |
|---|
| | 165 | + else version( Posix ) |
|---|
| | 166 | + version = LLVM_AsmX86_Posix; |
|---|
| | 167 | + } |
|---|
| | 168 | + else version( LLVM_InlineAsm_X86_64 ) |
|---|
| | 169 | + { |
|---|
| | 170 | + version( Posix ) |
|---|
| | 171 | + version = LLVM_AsmX86_64_Posix; |
|---|
| | 172 | + } |
|---|
| | 173 | |
|---|
| | 174 | version( Posix ) |
|---|
| | 175 | { |
|---|
| | 176 | @@ -2357,6 +2415,10 @@ |
|---|
| 158 | 177 | version( AsmX86_Win32 ) {} else |
|---|
| 159 | 178 | version( AsmX86_Posix ) {} else |
|---|
| … | … | |
| 166 | 185 | // NOTE: The ucontext implementation requires architecture specific |
|---|
| 167 | 186 | // data definitions to operate so testing for it must be done |
|---|
| 168 | | @@ -2367,9 +2417,11 @@ |
|---|
| | 187 | @@ -2367,9 +2429,11 @@ |
|---|
| 169 | 188 | import tango.stdc.posix.ucontext; |
|---|
| 170 | 189 | } |
|---|
| … | … | |
| 179 | 198 | { |
|---|
| 180 | 199 | static if( is( typeof( GetSystemInfo ) ) ) |
|---|
| 181 | | @@ -2522,7 +2574,7 @@ |
|---|
| | 200 | @@ -2522,7 +2586,7 @@ |
|---|
| 182 | 201 | } |
|---|
| 183 | 202 | } |
|---|
| … | … | |
| 188 | 207 | // Fiber |
|---|
| 189 | 208 | //////////////////////////////////////////////////////////////////////////////// |
|---|
| 190 | | @@ -3204,6 +3256,28 @@ |
|---|
| | 209 | @@ -3177,6 +3241,22 @@ |
|---|
| | 210 | push( 0x00000000 ); // ESI |
|---|
| | 211 | push( 0x00000000 ); // EDI |
|---|
| | 212 | } |
|---|
| | 213 | + else version( LLVM_AsmX86_Posix ) |
|---|
| | 214 | + { |
|---|
| | 215 | + push( cast(size_t) &fiber_entryPoint ); // EIP |
|---|
| | 216 | + push( 0x00000000 ); // newp |
|---|
| | 217 | + push( 0x00000000 ); // oldp |
|---|
| | 218 | + push( 0x00000000 ); // EBP |
|---|
| | 219 | + push( 0x00000000 ); // EBX |
|---|
| | 220 | + push( 0x00000000 ); // ESI |
|---|
| | 221 | + push( 0x00000000 ); // EDI |
|---|
| | 222 | + } |
|---|
| | 223 | +//TODO: Implement x86-64 fibers |
|---|
| | 224 | +/+ |
|---|
| | 225 | + else version( LLVM_AsmX86_Posix ) |
|---|
| | 226 | + { |
|---|
| | 227 | + } |
|---|
| | 228 | ++/ |
|---|
| | 229 | else version( AsmPPC_Posix ) |
|---|
| | 230 | { |
|---|
| | 231 | version( StackGrowsDown ) |
|---|
| | 232 | @@ -3204,6 +3284,28 @@ |
|---|
| 191 | 233 | |
|---|
| 192 | 234 | assert( cast(uint) pstack & 0x0f == 0 ); |
|---|
| … | … | |
| 219 | 261 | Index: lib/gc/basic/gcx.d |
|---|
| 220 | 262 | =================================================================== |
|---|
| 221 | | --- lib/gc/basic/gcx.d (revision 4097) |
|---|
| | 263 | --- lib/gc/basic/gcx.d (revision 4110) |
|---|
| 222 | 264 | +++ lib/gc/basic/gcx.d (working copy) |
|---|
| 223 | 265 | @@ -65,6 +65,13 @@ |
|---|
| … | … | |
| 312 | 354 | Index: lib/gc/basic/gcbits.d |
|---|
| 313 | 355 | =================================================================== |
|---|
| 314 | | --- lib/gc/basic/gcbits.d (revision 4097) |
|---|
| | 356 | --- lib/gc/basic/gcbits.d (revision 4110) |
|---|
| 315 | 357 | +++ lib/gc/basic/gcbits.d (working copy) |
|---|
| 316 | 358 | @@ -39,6 +39,10 @@ |
|---|
| … | … | |
| 327 | 369 | Index: lib/build-tango.sh |
|---|
| 328 | 370 | =================================================================== |
|---|
| 329 | | --- lib/build-tango.sh (revision 4097) |
|---|
| | 371 | --- lib/build-tango.sh (revision 4110) |
|---|
| 330 | 372 | +++ lib/build-tango.sh (working copy) |
|---|
| 331 | 373 | @@ -23,7 +23,7 @@ |
|---|
| … | … | |
| 359 | 401 | Index: tango/text/convert/Layout.d |
|---|
| 360 | 402 | =================================================================== |
|---|
| 361 | | --- tango/text/convert/Layout.d (revision 4097) |
|---|
| | 403 | --- tango/text/convert/Layout.d (revision 4110) |
|---|
| 362 | 404 | +++ tango/text/convert/Layout.d (working copy) |
|---|
| 363 | 405 | @@ -47,6 +47,12 @@ |
|---|
| … | … | |
| 385 | 427 | Index: tango/net/cluster/CacheInvalidator.d |
|---|
| 386 | 428 | =================================================================== |
|---|
| 387 | | --- tango/net/cluster/CacheInvalidator.d (revision 4097) |
|---|
| | 429 | --- tango/net/cluster/CacheInvalidator.d (revision 4110) |
|---|
| 388 | 430 | +++ tango/net/cluster/CacheInvalidator.d (working copy) |
|---|
| 389 | 431 | @@ -79,7 +79,7 @@ |
|---|
| … | … | |
| 398 | 440 | Index: tango/core/Vararg.d |
|---|
| 399 | 441 | =================================================================== |
|---|
| 400 | | --- tango/core/Vararg.d (revision 4097) |
|---|
| | 442 | --- tango/core/Vararg.d (revision 4110) |
|---|
| 401 | 443 | +++ tango/core/Vararg.d (working copy) |
|---|
| 402 | 444 | @@ -15,6 +15,10 @@ |
|---|
| … | … | |
| 413 | 455 | Index: tango/core/sync/Semaphore.d |
|---|
| 414 | 456 | =================================================================== |
|---|
| 415 | | --- tango/core/sync/Semaphore.d (revision 4097) |
|---|
| | 457 | --- tango/core/sync/Semaphore.d (revision 4110) |
|---|
| 416 | 458 | +++ tango/core/sync/Semaphore.d (working copy) |
|---|
| 417 | 459 | @@ -376,7 +376,8 @@ |
|---|
| … | … | |
| 449 | 491 | Index: tango/core/sync/Condition.d |
|---|
| 450 | 492 | =================================================================== |
|---|
| 451 | | --- tango/core/sync/Condition.d (revision 4097) |
|---|
| | 493 | --- tango/core/sync/Condition.d (revision 4110) |
|---|
| 452 | 494 | +++ tango/core/sync/Condition.d (working copy) |
|---|
| 453 | 495 | @@ -553,8 +553,11 @@ |
|---|
| … | … | |
| 465 | 507 | Index: tango/core/Atomic.d |
|---|
| 466 | 508 | =================================================================== |
|---|
| 467 | | --- tango/core/Atomic.d (revision 4097) |
|---|
| | 509 | --- tango/core/Atomic.d (revision 4110) |
|---|
| 468 | 510 | +++ tango/core/Atomic.d (working copy) |
|---|
| 469 | 511 | @@ -270,6 +270,167 @@ |
|---|
| … | … | |
| 649 | 691 | Index: tango/math/IEEE.d |
|---|
| 650 | 692 | =================================================================== |
|---|
| 651 | | --- tango/math/IEEE.d (revision 4097) |
|---|
| | 693 | --- tango/math/IEEE.d (revision 4110) |
|---|
| 652 | 694 | +++ tango/math/IEEE.d (working copy) |
|---|
| 653 | | @@ -1543,7 +1543,12 @@ |
|---|
| 654 | | else return 0; |
|---|
| 655 | | } |
|---|
| | 695 | @@ -1554,7 +1554,12 @@ |
|---|
| | 696 | return (bitsdiff == 0 && !((pa[F.EXPPOS_SHORT] ^ pb[F.EXPPOS_SHORT])& F.EXPMASK)) ? 1 : 0; |
|---|
| | 697 | } |
|---|
| 656 | 698 | } else { |
|---|
| 657 | 699 | - assert(0, "Unsupported"); |
|---|
| … | … | |
| 667 | 709 | Index: tango/math/Math.d |
|---|
| 668 | 710 | =================================================================== |
|---|
| 669 | | --- tango/math/Math.d (revision 4097) |
|---|
| | 711 | --- tango/math/Math.d (revision 4110) |
|---|
| 670 | 712 | +++ tango/math/Math.d (working copy) |
|---|
| 671 | 713 | @@ -76,6 +76,14 @@ |
|---|
| … | … | |
| 816 | 858 | Index: tango/stdc/posix/sys/types.d |
|---|
| 817 | 859 | =================================================================== |
|---|
| 818 | | --- tango/stdc/posix/sys/types.d (revision 4097) |
|---|
| | 860 | --- tango/stdc/posix/sys/types.d (revision 4110) |
|---|
| 819 | 861 | +++ tango/stdc/posix/sys/types.d (working copy) |
|---|
| 820 | 862 | @@ -422,7 +422,11 @@ |
|---|
| … | … | |
| 833 | 875 | Index: tango/stdc/stdlib.d |
|---|
| 834 | 876 | =================================================================== |
|---|
| 835 | | --- tango/stdc/stdlib.d (revision 4097) |
|---|
| | 877 | --- tango/stdc/stdlib.d (revision 4110) |
|---|
| 836 | 878 | +++ tango/stdc/stdlib.d (working copy) |
|---|
| 837 | 879 | @@ -94,6 +94,11 @@ |
|---|
| … | … | |
| 849 | 891 | Index: tango/stdc/stdarg.d |
|---|
| 850 | 892 | =================================================================== |
|---|
| 851 | | --- tango/stdc/stdarg.d (revision 4097) |
|---|
| | 893 | --- tango/stdc/stdarg.d (revision 4110) |
|---|
| 852 | 894 | +++ tango/stdc/stdarg.d (working copy) |
|---|
| 853 | 895 | @@ -13,6 +13,10 @@ |
|---|