Commit 6256011f authored by thomas dettbarn's avatar thomas dettbarn
Browse files

applied the clang patch.

parent 8e5931aa
Loading
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -1004,15 +1004,18 @@ static void biDiagonalReductionLeft_64(
{
/* TODO: For some reason, this is optimal. But why? why not ( 32 - 2 * MAGIC_HEADROOM_1 - norm_x_e0 + 1 ) , for example? */
#define MAGIC_HEADROOM_1 2
#define MAGIC_HEADROOM_2 ( sub( 16, shr( norm_x_e0, 2 ) ) )
#define MAGIC_HEADROOM_3 ( sub( 16, shr( norm_x_e0, 2 ) ) )
#define MAGIC_HEADROOM_4 ( sub( 16, shr( norm_x_e0, 2 ) ) )
//#define MAGIC_HEADROOM_2 ( sub( 16, shr( norm_x_e0, 2 ) ) )
//#define MAGIC_HEADROOM_3 ( sub( 16, shr( norm_x_e0, 2 ) ) )
//#define MAGIC_HEADROOM_4 ( sub( 16, shr( norm_x_e0, 2 ) ) )
#define	MAGIC_HEADROOM_2 magic_headroom
#define	MAGIC_HEADROOM_3 magic_headroom
#define	MAGIC_HEADROOM_4 magic_headroom

    Word16 iCh, jCh;
    Word32 norm_x;
    Word16 norm_x_e;
    Word16 norm_x_e0;
    Word64 norm_64;
    Word16 magic_headroom;
    ( *g ) = 0;
    ( *g_e ) = 0;
    move32();
@@ -1031,7 +1034,7 @@ static void biDiagonalReductionLeft_64(
            norm_64 = W_add( norm_64, W_mult0_32_32( tmp, tmp ) );                                     // q(norm)=2*q(sing)-2*H1	// exp(norm)=2*exp(sing)+2*H1
        }
        norm_x_e = W_norm( norm_64 );
        norm_x_e0 = W_norm( norm_64 );
        magic_headroom = sub( 16, shr( norm_x_e, 2 ) );
        norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) ); // q(norm_x)=32-exp(norm_x)	exp(norm_x)=exp(norm)-32
    }
    IF( norm_x )
@@ -1115,9 +1118,9 @@ static void biDiagonalReductionRight_64(
    Word16 iCh, jCh;
    Word32 norm_x;
    Word16 norm_x_e;
    Word16 norm_x_e0;
    Word64 norm_64;
    Word16 idx;
    Word16 magic_headroom;


    ( *g ) = 0;
@@ -1136,7 +1139,7 @@ static void biDiagonalReductionRight_64(
            norm_64 = W_add( norm_64, W_mult0_32_32( tmp, tmp ) );                                     // q(norm)=2*q(sing)-2*H1	// exp(norm)=2*exp(sing)+2*H1
        }
        norm_x_e = W_norm( norm_64 );
        norm_x_e0 = W_norm( norm_64 );
        magic_headroom = sub( 16, shr( norm_x_e, 2 ) );
        norm_x = W_extract_h( W_shl( norm_64, norm_x_e ) ); // q(norm_x)=32-exp(norm_x)	exp(norm_x)=exp(norm)-32
        move16();