Changeset 1379

Show
Ignore:
Timestamp:
10/26/08 15:12:22 (12 years ago)
Author:
ppalmers
Message:

add branch prediction aids

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/libffado-2.0/src/libstreaming/amdtp/AmdtpTransmitStreamProcessor.cpp

    r1376 r1379  
    3939#include <cstring> 
    4040 
     41#define likely(x)   __builtin_expect((x),1) 
     42#define unlikely(x) __builtin_expect((x),0) 
     43 
    4144#define AMDTP_FLOAT_MULTIPLIER (1.0f * ((1<<23) - 1)) 
    4245namespace Streaming 
     
    558561        for (j=0; j<4; j++) { 
    559562            p = &(m_audio_ports.at(i+j)); 
    560             if(p->buffer && p->enabled) { 
     563            if(likely(p->buffer && p->enabled)) { 
    561564                client_buffers[j] = (float *) p->buffer; 
    562565                client_buffers[j] += offset; 
     
    627630        assert(nevents + offset <= p.buffer_size ); 
    628631 
    629         if(p.buffer && p.enabled) { 
     632        if(likely(p.buffer && p.enabled)) { 
    630633            float *buffer = (float *)(p.buffer); 
    631634            buffer += offset; 
     
    686689#if AMDTP_CLIP_FLOATS 
    687690                // clip directly to the value of a maxed event 
    688                 if(*in > 1.0) { 
     691                if(unlikely(*in > 1.0)) { 
    689692                    *target_event = CONDSWAPTOBUS32_CONST(0x407FFFFF); 
    690                 } else if(*in < -1.0) { 
     693                } else if(unlikely(*in < -1.0)) { 
    691694                    *target_event = CONDSWAPTOBUS32_CONST(0x40800001); 
    692695                } else { 
     
    751754        for (j=0; j<4; j++) { 
    752755            p = &(m_audio_ports.at(i+j)); 
    753             if(p->buffer && p->enabled) { 
     756            if(likely(p->buffer && p->enabled)) { 
    754757                client_buffers[j] = (uint32_t *) p->buffer; 
    755758                client_buffers[j] += offset; 
     
    810813        assert(nevents + offset <= p.buffer_size ); 
    811814 
    812         if(p.buffer && p.enabled) { 
     815        if(likely(p.buffer && p.enabled)) { 
    813816            uint32_t *buffer = (uint32_t *)(p.buffer); 
    814817            buffer += offset; 
     
    895898        assert(nevents + offset <= p.buffer_size ); 
    896899 
    897         if(p.buffer && p.enabled) { 
     900        if(likely(p.buffer && p.enabled)) { 
    898901            quadlet_t *buffer = (quadlet_t *)(p.buffer); 
    899902            buffer += offset; 
     
    936939        assert(nevents + offset <= p.buffer_size ); 
    937940 
    938         if(p.buffer && p.enabled) { 
     941        if(likely(p.buffer && p.enabled)) { 
    939942            quadlet_t *buffer = (quadlet_t *)(p.buffer); 
    940943            buffer += offset; 
     
    945948#if AMDTP_CLIP_FLOATS 
    946949                // clip directly to the value of a maxed event 
    947                 if(*in > 1.0) { 
     950                if(unlikely(*in > 1.0)) { 
    948951                    *target_event = CONDSWAPTOBUS32_CONST(0x407FFFFF); 
    949                 } else if(*in < -1.0) { 
     952                } else if(unlikely(*in < -1.0)) { 
    950953                    *target_event = CONDSWAPTOBUS32_CONST(0x40800001); 
    951954                } else {