Changeset 479

Show
Ignore:
Timestamp:
01/06/11 02:32:54 (1 year ago)
Author:
braddr
Message:

Fix atomicLoad for 64 bit. Add a little unit testing for atomic operations.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/core/atomic.d

    r452 r479  
    1515 */ 
    1616module core.atomic; 
    17  
    1817 
    1918version( D_InlineAsm_X86 ) 
     
    609608                    asm 
    610609                    { 
    611                         mov AL, [val]; 
     610                        mov RAX, val; 
     611                        mov AL, [RAX]; 
    612612                    } 
    613613                } 
     
    635635                    asm 
    636636                    { 
    637                         mov AX, [val]; 
     637                        mov RAX, val; 
     638                        mov AX, [RAX]; 
    638639                    } 
    639640                } 
     
    661662                    asm 
    662663                    { 
    663                         mov EAX, [val]; 
     664                        mov RAX, val; 
     665                        mov EAX, [RAX]; 
    664666                    } 
    665667                } 
     
    687689                    asm 
    688690                    { 
    689                         mov RAX, [val]; 
     691                        mov RAX, val; 
     692                        mov RAX, [RAX]; 
    690693                    } 
    691694                } 
     
    750753            testType!(ulong)(); 
    751754        } 
     755 
     756        size_t i; 
     757 
     758        atomicOp!"+="(i, cast(size_t)1); 
     759        assert(i == 1); 
     760 
     761        atomicOp!"-="(i, cast(size_t)1); 
     762        assert(i == 0); 
    752763    } 
    753764}