From 9134e96cb24fa3a4c5249e3940a163d889fe692d Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Tue, 7 Jan 2014 17:50:46 -0500 Subject: [PATCH] Fixes SMALL_FOOTPRINT for float --- celt/celt_decoder.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/celt/celt_decoder.c b/celt/celt_decoder.c index fc31094e..1e41ec11 100644 --- a/celt/celt_decoder.c +++ b/celt/celt_decoder.c @@ -51,6 +51,9 @@ #include "celt_lpc.h" #include "vq.h" +#if defined(SMALL_FOOTPRINT) && defined(FIXED_POINT) +#define NORM_ALIASING_HACK +#endif /**********************************************************************/ /* */ /* DECODER */ @@ -458,7 +461,7 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM) if (noise_based) { /* Noise-based PLC/CNG */ -#ifdef SMALL_FOOTPRINT +#ifdef NORM_ALIASING_HACK celt_norm *X; #else VARDECL(celt_norm, X); @@ -471,7 +474,7 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM) end = st->end; effEnd = IMAX(start, IMIN(end, mode->effEBands)); -#ifdef SMALL_FOOTPRINT +#ifdef NORM_ALIASING_HACK /* This is an ugly hack that breaks aliasing rules and would be easily broken, but it saves almost 4kB of stack. */ X = (celt_norm*)(out_syn[C-1]+overlap/2); @@ -731,7 +734,7 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat int spread_decision; opus_int32 bits; ec_dec _dec; -#ifdef SMALL_FOOTPRINT +#ifdef NORM_ALIASING_HACK celt_norm *X; #else VARDECL(celt_norm, X); @@ -980,7 +983,7 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat /* Decode fixed codebook */ ALLOC(collapse_masks, C*nbEBands, unsigned char); -#ifdef SMALL_FOOTPRINT +#ifdef NORM_ALIASING_HACK /* This is an ugly hack that breaks aliasing rules and would be easily broken, but it saves almost 4kB of stack. */ X = (celt_norm*)(out_syn[CC-1]+overlap/2);