From a63f80a59504e6b2bc2ea19c3501bdb30126fe61 Mon Sep 17 00:00:00 2001 From: x Date: Fri, 9 Mar 2018 17:57:52 +0100 Subject: [PATCH] TurboPFor: Variable byte encode/decode --- vint.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/vint.c b/vint.c index 53b4b6b..d115feb 100644 --- a/vint.c +++ b/vint.c @@ -53,6 +53,10 @@ #include "vint.c" #undef USIZE +#define USIZE 8 +#include "vint.c" +#undef USIZE + #define VDELTA 1 #define VBDENC vbd1enc #define VBDDEC vbd1dec @@ -71,6 +75,9 @@ #include "vint.c" #undef USIZE +#define USIZE 8 +#include "vint.c" +#undef USIZE #else #define uint_t TEMPLATE3(uint, USIZE, _t) @@ -184,8 +191,8 @@ unsigned char *TEMPLATE2(vbzenc, USIZE)(uint_t *__restrict in, unsigned n, unsig unsigned char *op = out; #define VBZE { v = TEMPLATE2(zigzagenc, USIZE)((TEMPLATE3(int, USIZE, _t))(*ip)-(TEMPLATE3(int, USIZE, _t))start); start=*ip++; TEMPLATE2(_vbput, USIZE)(op, v, ;); } - for(ip = in; ip != in+(n&~(4-1)); ) { VBZE;VBZE;VBZE;VBZE; } - while(ip < in+n) VBZE; //OVERFLOWE(in,n,out,op); + for(ip = in; ip != in+(n&~(UN-1)); ) { VBZE;VBZE;VBZE;VBZE; } + while(ip != in+n) VBZE; //OVERFLOWE(in,n,out,op); return op; } #undef VBZE