diff options
author | Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> | 2008-04-10 07:24:48 +0400 |
---|---|---|
committer | Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> | 2008-04-10 07:24:48 +0400 |
commit | 821945d97c664b648ea645ed2af7c26a8fdc4c19 (patch) | |
tree | 9ab381839ea0d5bc7cedbc2d45329296f68a5dab /libcelt/rangedec.c | |
parent | c8e3b67869af8f17d7b24e1ba6071366845bf633 (diff) |
Defining IMUL32 for 32x32=>32 int multiplications and using it in the range
coder
Diffstat (limited to 'libcelt/rangedec.c')
-rw-r--r-- | libcelt/rangedec.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libcelt/rangedec.c b/libcelt/rangedec.c index 067f7dc..3fd5bd5 100644 --- a/libcelt/rangedec.c +++ b/libcelt/rangedec.c @@ -2,6 +2,7 @@ #include "config.h" #endif +#include "arch.h" #include "entdec.h" #include "mfrngcod.h" @@ -179,9 +180,9 @@ unsigned ec_decode_bin(ec_dec *_this,unsigned bits){ void ec_dec_update(ec_dec *_this,unsigned _fl,unsigned _fh,unsigned _ft){ ec_uint32 s; - s=_this->nrm*(_ft-_fh); + s=IMUL32(_this->nrm,(_ft-_fh)); _this->dif-=s; - _this->rng=_fl>0?_this->nrm*(_fh-_fl):_this->rng-s; + _this->rng=_fl>0?IMUL32(_this->nrm,(_fh-_fl)):_this->rng-s; ec_dec_normalize(_this); } |