Changeset 128 for trunk/orca

Show
Ignore:
Timestamp:
04/29/06 01:43:30 (3 years ago)
Author:
krobillard
Message:

Insert now copies values with 64 bit words when WORDSIZE == 64.

Location:
trunk/orca
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/orca/TODO

    r31 r128  
    2525Thune Backport 
    2626 
     27  * Parse 
    2728  * UCell union 
    2829  * Value structure hidden more using macros (ur_int(), etc.) 
  • trunk/orca/series.c

    r95 r128  
    338338static void copyV( OValue* src, OValue* srcEnd, OValue* dest ) 
    339339{ 
     340#if __WORDSIZE == 64 
     341    uint64_t* it  = (uint64_t*) src; 
     342    uint64_t* end = (uint64_t*) srcEnd; 
     343    uint64_t* dst = (uint64_t*) dest; 
     344    while( it != end ) 
     345    { 
     346        *dst++ = *it++; 
     347        *dst++ = *it++; 
     348    } 
     349#else 
    340350    uint32_t* it  = (uint32_t*) src; 
    341351    uint32_t* end = (uint32_t*) srcEnd; 
     
    348358        *dst++ = *it++; 
    349359    } 
     360#endif 
    350361} 
    351362 
     
    353364static void copyReverseV( OValue* src, OValue* srcEnd, OValue* dest ) 
    354365{ 
     366#if __WORDSIZE == 64 
     367    uint64_t* it  = (uint64_t*) src; 
     368    uint64_t* end = (uint64_t*) srcEnd; 
     369    uint64_t* dst = (uint64_t*) dest; 
     370    it  += 1; 
     371    dst += 1; 
     372    end += 1; 
     373    while( it != end ) 
     374    { 
     375        *dst-- = *it--; 
     376        *dst-- = *it--; 
     377    } 
     378#else 
    355379    uint32_t* it  = (uint32_t*) src; 
    356380    uint32_t* end = (uint32_t*) srcEnd; 
     
    366390        *dst-- = *it--; 
    367391    } 
     392#endif 
    368393} 
    369394