Changeset 712


Ignore:
Timestamp:
Nov 14, 2010, 7:21:20 PM (9 years ago)
Author:
cameron
Message:

Avoid clobbering bytestream with s2p_movemask

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/s2p.h

    r711 r712  
    164164
    165165
    166 #define bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7) \
    167   do { \
    168         s0 = simd_add_8(s0, s0);\
    169         s1 = simd_add_8(s1, s1);\
    170         s2 = simd_add_8(s2, s2);\
    171         s3 = simd_add_8(s3, s3);\
    172         s4 = simd_add_8(s4, s4);\
    173         s5 = simd_add_8(s5, s5);\
    174         s6 = simd_add_8(s6, s6);\
    175         s7 = simd_add_8(s7, s7);\
     166#define bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7, t0, t1, t2, t3, t4, t5, t6, t7) \
     167  do { \
     168        t0 = simd_add_8(s0, s0);\
     169        t1 = simd_add_8(s1, s1);\
     170        t2 = simd_add_8(s2, s2);\
     171        t3 = simd_add_8(s3, s3);\
     172        t4 = simd_add_8(s4, s4);\
     173        t5 = simd_add_8(s5, s5);\
     174        t6 = simd_add_8(s6, s6);\
     175        t7 = simd_add_8(s7, s7);\
    176176  } while (0)
    177177
     
    179179#define s2p_movemask(s0, s1, s2, s3, s4, s5, s6, s7, p0, p1, p2, p3, p4, p5, p6, p7) \
    180180  do { \
     181        BitBlock t0, t1, t2, t3, t4, t5, t6, t7;\
    181182        movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p0);\
    182         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    183         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p1);\
    184         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    185         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p2);\
    186         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    187         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p3);\
    188         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    189         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p4);\
    190         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    191         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p5);\
    192         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    193         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p6);\
    194         bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7);\
    195         movemask_step(s0, s1, s2, s3, s4, s5, s6, s7, p7);\
     183        bitshift_step(s0, s1, s2, s3, s4, s5, s6, s7, t0, t1, t2, t3, t4, t5, t6, t7);\
     184        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p1);\
     185        bitshift_step(t0, t1, t2, t3, t4, t5, t6, t7, t0, t1, t2, t3, t4, t5, t6, t7);\
     186        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p2);\
     187        bitshift_step(t0, t1, t2, t3, t4, t5, t6, t7, t0, t1, t2, t3, t4, t5, t6, t7);\
     188        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p3);\
     189        bitshift_step(t0, t1, t2, t3, t4, t5, t6, t7, t0, t1, t2, t3, t4, t5, t6, t7);\
     190        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p4);\
     191        bitshift_step(t0, t1, t2, t3, t4, t5, t6, t7, t0, t1, t2, t3, t4, t5, t6, t7);\
     192        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p5);\
     193        bitshift_step(t0, t1, t2, t3, t4, t5, t6, t7, t0, t1, t2, t3, t4, t5, t6, t7);\
     194        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p6);\
     195        bitshift_step(t0, t1, t2, t3, t4, t5, t6, t7, t0, t1, t2, t3, t4, t5, t6, t7);\
     196        movemask_step(t0, t1, t2, t3, t4, t5, t6, t7, p7);\
    196197  } while (0)
    197198
Note: See TracChangeset for help on using the changeset viewer.