Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Changeset 964:aa2e3a6c3410

Show
Ignore:
Timestamp:
02/15/09 19:43:14 (3 years ago)
Author:
Frits van Bommel <fvbommel wxs.nl>
branch:
default
Message:

Some changes I missed in my last commit (wound up in wrong patch file)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tests/mini/asm8.d

    r959 r964  
    119119    else version (X86_64) 
    120120    { 
    121         asm 
    122         { 
    123             movss XMM1, [two_f]; 
    124             movss XMM0, [one_f]; 
    125             movd ECX, XMM1; 
    126             movd EAX, XMM0; 
    127              
    128             // invalid operand size :( 
    129             //shl RCX, 32; 
    130             //or RAX, RCX; 
    131              
    132             pushq RAX; 
    133             mov [RSP + 4], EAX; 
    134             popq RAX; 
    135              
    136             movd XMM0, RAX; 
     121        version(all) { 
     122            asm 
     123            { 
     124                movss XMM0, [one_f]; 
     125                movss XMM1, [two_f]; 
     126            } 
     127        } else { 
     128            // Code for when LDC becomes ABI-compatible with GCC 
     129            // regarding cfloat returns. 
     130            asm { 
     131                movd EAX, [one_f]; 
     132                movd ECX, [two_f]; 
     133                 
     134                // invalid operand size :( 
     135                //shl RCX, 32; 
     136                //or RAX, RCX; 
     137                 
     138                pushq RAX; 
     139                mov [RSP + 4], EAX; 
     140                popq RAX; 
     141                 
     142                movd XMM0, RAX; 
     143            } 
    137144        } 
    138145    } 
     
    154161    else version (X86_64) 
    155162    { 
    156         asm 
    157         { 
    158             naked; 
    159             movss XMM1, [two_f]; 
    160             movss XMM0, [one_f]; 
    161             movd ECX, XMM1; 
    162             movd EAX, XMM0; 
    163              
    164             // invalid operand size :( 
    165             //shl RCX, 32; 
    166             //or RAX, RCX; 
    167              
    168             pushq RAX; 
    169             mov [RSP + 4], EAX; 
    170             popq RAX; 
    171              
    172             movd RAX, XMM0; 
    173             ret; 
     163        version(all) { 
     164            asm 
     165            { 
     166                naked; 
     167                movss XMM0, [one_f]; 
     168                movss XMM1, [two_f]; 
     169                ret; 
     170            } 
     171        } else { 
     172            // Code for when LDC becomes ABI-compatible with GCC 
     173            // regarding cfloat returns. 
     174            asm { 
     175                naked; 
     176                mov EAX, [one_f]; 
     177                mov ECX, [two_f]; 
     178                 
     179                // invalid operand size :( 
     180                //shl RCX, 32; 
     181                //or RAX, RCX; 
     182                 
     183                pushq RAX; 
     184                mov [RSP + 4], EAX; 
     185                popq RAX; 
     186                 
     187                movd RAX, XMM0; 
     188                ret; 
     189            } 
    174190        } 
    175191    } 
     
    184200    version(X86) 
    185201    { 
    186         asm { fld1; fld two_d
     202        asm { fld1; fld two_d;
    187203    } 
    188204    else version (X86_64) 
Copyright © 2008, LDC Development Team.