From: David Flynn <[EMAIL PROTECTED]>
Using unsigned values avoids possible sign extension instructions
TODO: outstanding question of whether uintptr_t is better than
uint_least32_t
Signed-off-by: David Flynn <[EMAIL PROTECTED]>
---
schroedinger/schroarith.c | 26 +++++++++++++-------------
schroedinger/schroarith.h | 24 ++++++++++++------------
2 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/schroedinger/schroarith.c b/schroedinger/schroarith.c
index 793c232..7341926 100644
--- a/schroedinger/schroarith.c
+++ b/schroedinger/schroarith.c
@@ -11,7 +11,7 @@
#include <schroedinger/schrotables.h>
#include <schroedinger/schrodebug.h>
-static const int next_list[] = {
+static const unsigned int next_list[] = {
0,
SCHRO_CTX_QUANTISER_CONT,
0,
@@ -268,7 +268,7 @@ arith->range[0] |= ((1<<i)-1);
#if 0
int
-_schro_arith_decode_bit (SchroArith *arith, int i)
+_schro_arith_decode_bit (SchroArith *arith, unsigned int i)
{
return __schro_arith_decode_bit (arith, i);
}
@@ -276,7 +276,7 @@ _schro_arith_decode_bit (SchroArith *arith, int i)
#define faster
#ifdef faster
static int
-__schro_arith_decode_bit (SchroArith *arith, int i)
+__schro_arith_decode_bit (SchroArith *arith, unsigned int i)
{
unsigned int range_x_prob;
int value;
@@ -322,7 +322,7 @@ __schro_arith_decode_bit (SchroArith *arith, int i)
}
#else
static int
-__schro_arith_decode_bit (SchroArith *arith, int i)
+__schro_arith_decode_bit (SchroArith *arith, unsigned int i)
{
unsigned int range;
unsigned int probability0;
@@ -540,8 +540,8 @@ schro_arith_estimate_sint (SchroArith *arith, int
cont_context,
#if 0
int
-_schro_arith_decode_uint (SchroArith *arith, int cont_context,
- int value_context)
+_schro_arith_decode_uint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context)
{
int bits;
int count=0;
@@ -561,8 +561,8 @@ _schro_arith_decode_uint (SchroArith *arith, int
cont_context,
#endif
int
-_schro_arith_decode_sint (SchroArith *arith, int cont_context,
- int value_context, int sign_context)
+_schro_arith_decode_sint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context, unsigned int sign_context)
{
int bits;
int count=0;
@@ -613,21 +613,21 @@ schro_arith_encode_sint (SchroArith *arith, int
cont_context,
}
int
-schro_arith_decode_bit (SchroArith *arith, int context)
+schro_arith_decode_bit (SchroArith *arith, unsigned int context)
{
return _schro_arith_decode_bit (arith, context);
}
int
-schro_arith_decode_uint (SchroArith *arith, int cont_context,
- int value_context)
+schro_arith_decode_uint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context)
{
return _schro_arith_decode_uint (arith, cont_context, value_context);
}
int
-schro_arith_decode_sint (SchroArith *arith, int cont_context,
- int value_context, int sign_context)
+schro_arith_decode_sint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context, unsigned int sign_context)
{
return _schro_arith_decode_sint (arith, cont_context,
value_context, sign_context);
diff --git a/schroedinger/schroarith.h b/schroedinger/schroarith.h
index 4af41fe..43950b1 100644
--- a/schroedinger/schroarith.h
+++ b/schroedinger/schroarith.h
@@ -88,7 +88,7 @@ typedef struct _SchroArith SchroArith;
typedef struct _SchroArithContext SchroArithContext;
struct _SchroArithContext {
- int next;
+ unsigned int next;
int stat_range;
int n_bits;
int n_symbols;
@@ -99,12 +99,12 @@ struct _SchroArithContext {
struct _SchroArith {
SchroBuffer *buffer;
uint8_t *dataptr;
+ uintptr_t offset;
uint32_t range[2];
uint32_t code;
uint32_t range_size;
int cntr;
- int offset;
int carry;
uint8_t shift;
@@ -127,11 +127,11 @@ void schro_arith_encode_uint (SchroArith *arith, int
cont_context,
void schro_arith_encode_sint (SchroArith *arith, int cont_context,
int value_context, int sign_context, int value);
-int schro_arith_decode_bit (SchroArith *arith, int context);
-int schro_arith_decode_uint (SchroArith *arith, int cont_context,
- int value_context);
-int schro_arith_decode_sint (SchroArith *arith, int cont_context,
- int value_context, int sign_context);
+int schro_arith_decode_bit (SchroArith *arith, unsigned int context);
+int schro_arith_decode_uint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context);
+int schro_arith_decode_sint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context, unsigned int sign_context);
void _schro_arith_encode_bit (SchroArith *arith, int context, int
value) SCHRO_INTERNAL;
@@ -140,8 +140,8 @@ void _schro_arith_encode_uint (SchroArith *arith, int
cont_context,
void _schro_arith_encode_sint (SchroArith *arith, int cont_context,
int value_context, int sign_context, int value) SCHRO_INTERNAL;
-int _schro_arith_decode_sint (SchroArith *arith, int cont_context,
- int value_context, int sign_context) SCHRO_INTERNAL;
+int _schro_arith_decode_sint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context, unsigned int sign_context) SCHRO_INTERNAL;
void schro_arith_estimate_bit (SchroArith *arith, int i, int value);
void schro_arith_estimate_uint (SchroArith *arith, int cont_context,
@@ -151,7 +151,7 @@ void schro_arith_estimate_sint (SchroArith *arith, int
cont_context,
#ifdef SCHRO_ARITH_DEFINE_INLINE
static int
-_schro_arith_decode_bit (SchroArith *arith, int i)
+_schro_arith_decode_bit (SchroArith *arith, unsigned int i)
{
unsigned int range_x_prob;
unsigned int value;
@@ -198,8 +198,8 @@ _schro_arith_decode_bit (SchroArith *arith, int i)
}
static int
-_schro_arith_decode_uint (SchroArith *arith, int cont_context,
- int value_context)
+_schro_arith_decode_uint (SchroArith *arith, unsigned int cont_context,
+ unsigned int value_context)
{
int bits;
int count=0;
--
1.5.5
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Schrodinger-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/schrodinger-devel