fixed a math mistake
authorBorja Ferrer <faluco@alliedmods.net>
Sun Apr 27 19:41:51 2008 +0000 (2008-04-27)
changeset 2029f5c779da8bef
parent 2028 0b36b8bfe5ab
child 2030 e6281a0ff855
fixed a math mistake
sourcepawn/jit/x86/jit_x86.cpp
sourcepawn/jit/x86/opcode_helpers.cpp
sourcepawn/jit/x86/ungen_opcodes.h
     1.1 --- a/sourcepawn/jit/x86/jit_x86.cpp	Fri Apr 25 06:05:35 2008 +0000
     1.2 +++ b/sourcepawn/jit/x86/jit_x86.cpp	Sun Apr 27 19:41:51 2008 +0000
     1.3 @@ -52,7 +52,7 @@
     1.4  	cell_t val = jit->read_cell();
     1.5  	IA32_Sub_Rm_Imm8(jit, AMX_REG_STK, 4, MOD_REG);
     1.6  	//optimize encoding a bit...
     1.7 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
     1.8 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
     1.9  	{
    1.10  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_DAT, (jit_int8_t)val);
    1.11  	} else {
    1.12 @@ -75,7 +75,7 @@
    1.13  {
    1.14  	//mov [ebp+<val>], 0
    1.15  	cell_t val = jit->read_cell();
    1.16 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.17 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.18  	{
    1.19  		IA32_Mov_Rm_Imm32_Disp8(jit, AMX_REG_DAT, 0, (jit_int8_t)val);
    1.20  	} else {
    1.21 @@ -87,7 +87,7 @@
    1.22  {
    1.23  	//mov [ebx+<val>], 0
    1.24  	cell_t val = jit->read_cell();
    1.25 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.26 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.27  	{
    1.28  		IA32_Mov_Rm_Imm32_Disp8(jit, AMX_REG_FRM, 0, (jit_int8_t)val);
    1.29  	} else {
    1.30 @@ -104,7 +104,7 @@
    1.31  	cell_t val = jit->read_cell();
    1.32  	IA32_Sub_Rm_Imm8(jit, AMX_REG_STK, 4, MOD_REG);
    1.33  	//optimize encoding a bit...
    1.34 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.35 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.36  	{
    1.37  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_FRM, (jit_int8_t)val);
    1.38  	} else {
    1.39 @@ -442,7 +442,7 @@
    1.40  {
    1.41  	//add eax, <val>
    1.42  	cell_t val = jit->read_cell();
    1.43 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.44 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.45  		IA32_Add_Rm_Imm8(jit, AMX_REG_PRI, (jit_int8_t)val, MOD_REG);
    1.46  	else
    1.47  		IA32_Add_Eax_Imm32(jit, val);
    1.48 @@ -452,7 +452,7 @@
    1.49  {
    1.50  	//imul eax, <val>
    1.51  	cell_t val = jit->read_cell();
    1.52 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.53 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.54  		IA32_IMul_Reg_Imm8(jit, AMX_REG_PRI, MOD_REG, (jit_int8_t)val);
    1.55  	else
    1.56  		IA32_IMul_Reg_Imm32(jit, AMX_REG_PRI, MOD_REG, val);
    1.57 @@ -540,7 +540,7 @@
    1.58  	//mov eax, 0
    1.59  	//sete al
    1.60  	cell_t val = jit->read_cell();
    1.61 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.62 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.63  		IA32_Cmp_Rm_Imm8(jit, MOD_REG, AMX_REG_PRI, (jit_int8_t)val);
    1.64  	else
    1.65  		IA32_Cmp_Eax_Imm32(jit, val);
    1.66 @@ -555,7 +555,7 @@
    1.67  	//sete al
    1.68  	cell_t val = jit->read_cell();
    1.69  	IA32_Xor_Reg_Rm(jit, AMX_REG_PRI, AMX_REG_PRI, MOD_REG);
    1.70 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.71 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.72  		IA32_Cmp_Rm_Imm8(jit, MOD_REG, AMX_REG_ALT, (jit_int8_t)val);
    1.73  	else
    1.74  		IA32_Cmp_Rm_Imm32(jit, MOD_REG, AMX_REG_ALT, val);
    1.75 @@ -578,7 +578,7 @@
    1.76  {
    1.77  	//add [ebp+<val>], 1
    1.78  	cell_t val = jit->read_cell();
    1.79 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.80 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.81  		IA32_Add_Rm_Imm8_Disp8(jit, AMX_REG_DAT, 1, (jit_int8_t)val);
    1.82  	else
    1.83  		IA32_Add_Rm_Imm8_Disp32(jit, AMX_REG_DAT, 1, val);
    1.84 @@ -588,7 +588,7 @@
    1.85  {
    1.86  	//add [ebx+<val>], 1
    1.87  	cell_t val = jit->read_cell();
    1.88 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.89 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.90  		IA32_Add_Rm_Imm8_Disp8(jit, AMX_REG_FRM, 1, (jit_int8_t)val);
    1.91  	else
    1.92  		IA32_Add_Rm_Imm8_Disp32(jit, AMX_REG_FRM, 1, val);
    1.93 @@ -616,7 +616,7 @@
    1.94  {
    1.95  	//sub [ebp+<val>], 1
    1.96  	cell_t val = jit->read_cell();
    1.97 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    1.98 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    1.99  	{
   1.100  		IA32_Sub_Rm_Imm8_Disp8(jit, AMX_REG_DAT, 1, (jit_int8_t)val);
   1.101  	} else {
   1.102 @@ -628,7 +628,7 @@
   1.103  {
   1.104  	//sub [ebx+<val>], 1
   1.105  	cell_t val = jit->read_cell();
   1.106 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.107 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.108  	{
   1.109  		IA32_Sub_Rm_Imm8_Disp8(jit, AMX_REG_FRM, 1, (jit_int8_t)val);
   1.110  	} else {
   1.111 @@ -646,7 +646,7 @@
   1.112  {
   1.113  	//mov eax, [ebp+<val>]
   1.114  	cell_t val = jit->read_cell();
   1.115 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.116 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.117  	{
   1.118  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_PRI, AMX_REG_DAT, (jit_int8_t)val);
   1.119  	} else {
   1.120 @@ -658,7 +658,7 @@
   1.121  {
   1.122  	//mov edx, [ebp+<val>]
   1.123  	cell_t val = jit->read_cell();
   1.124 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.125 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.126  	{
   1.127  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_ALT, AMX_REG_DAT, (jit_int8_t)val);
   1.128  	} else {
   1.129 @@ -670,7 +670,7 @@
   1.130  {
   1.131  	//mov eax, [ebx+<val>]
   1.132  	cell_t val = jit->read_cell();
   1.133 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.134 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.135  	{
   1.136  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_PRI, AMX_REG_FRM, (jit_int8_t)val);
   1.137  	} else {
   1.138 @@ -682,7 +682,7 @@
   1.139  {
   1.140  	//mov edx, [ebx+<val>]
   1.141  	cell_t val = jit->read_cell();
   1.142 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.143 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.144  	{
   1.145  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_ALT, AMX_REG_FRM, (jit_int8_t)val);
   1.146  	} else {
   1.147 @@ -695,7 +695,7 @@
   1.148  	//mov eax, [ebp+<val>]
   1.149  	//mov eax, [ebp+eax]
   1.150  	cell_t val = jit->read_cell();
   1.151 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.152 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.153  	{
   1.154  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_PRI, AMX_REG_DAT, (jit_int8_t)val);
   1.155  	} else {
   1.156 @@ -709,7 +709,7 @@
   1.157  	//mov edx, [ebp+<val>]
   1.158  	//mov edx, [ebp+edx]
   1.159  	cell_t val = jit->read_cell();
   1.160 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.161 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.162  	{
   1.163  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_ALT, AMX_REG_DAT, (jit_int8_t)val);
   1.164  	} else {
   1.165 @@ -723,7 +723,7 @@
   1.166  	//mov eax, [ebx+<val>]
   1.167  	//mov eax, [ebp+eax]
   1.168  	cell_t val = jit->read_cell();
   1.169 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.170 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.171  	{
   1.172  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_PRI, AMX_REG_FRM, (jit_int8_t)val);
   1.173  	} else {
   1.174 @@ -737,7 +737,7 @@
   1.175  	//mov edx, [ebx+<val>]
   1.176  	//mov edx, [ebp+edx]
   1.177  	cell_t val = jit->read_cell();
   1.178 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.179 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.180  	{
   1.181  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_ALT, AMX_REG_FRM, (jit_int8_t)val);
   1.182  	} else {
   1.183 @@ -766,7 +766,7 @@
   1.184  	//add eax, <val>
   1.185  	cell_t val = jit->read_cell();
   1.186  	IA32_Mov_Reg_Rm(jit, AMX_REG_PRI, AMX_REG_INFO, MOD_MEM_REG);
   1.187 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.188 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.189  	{
   1.190  		IA32_Add_Rm_Imm8(jit, AMX_REG_PRI, (jit_int8_t)val, MOD_REG);
   1.191  	} else {
   1.192 @@ -780,7 +780,7 @@
   1.193  	//add edx, <val>
   1.194  	cell_t val = jit->read_cell();
   1.195  	IA32_Mov_Reg_Rm(jit, AMX_REG_ALT, AMX_REG_INFO, MOD_MEM_REG);
   1.196 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.197 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.198  	{
   1.199  		IA32_Add_Rm_Imm8(jit, AMX_REG_ALT, (jit_int8_t)val, MOD_REG);
   1.200  	} else {
   1.201 @@ -792,7 +792,7 @@
   1.202  {
   1.203  	//mov [ebp+<val>], eax
   1.204  	cell_t val = jit->read_cell();
   1.205 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.206 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.207  	{
   1.208  		IA32_Mov_Rm_Reg_Disp8(jit, AMX_REG_DAT, AMX_REG_PRI, (jit_int8_t)val);
   1.209  	} else {
   1.210 @@ -804,7 +804,7 @@
   1.211  {
   1.212  	//mov [ebp+<val>], edx
   1.213  	cell_t val = jit->read_cell();
   1.214 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.215 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.216  	{
   1.217  		IA32_Mov_Rm_Reg_Disp8(jit, AMX_REG_DAT, AMX_REG_ALT, (jit_int8_t)val);
   1.218  	} else {
   1.219 @@ -816,7 +816,7 @@
   1.220  {
   1.221  	//mov [ebx+<val>], eax
   1.222  	cell_t val = jit->read_cell();
   1.223 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.224 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.225  	{
   1.226  		IA32_Mov_Rm_Reg_Disp8(jit, AMX_REG_FRM, AMX_REG_PRI, (jit_int8_t)val);
   1.227  	} else {
   1.228 @@ -828,7 +828,7 @@
   1.229  {
   1.230  	//mov [ebx+<val>], edx
   1.231  	cell_t val = jit->read_cell();
   1.232 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.233 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.234  	{
   1.235  		IA32_Mov_Rm_Reg_Disp8(jit, AMX_REG_FRM, AMX_REG_ALT, (jit_int8_t)val);
   1.236  	} else {
   1.237 @@ -847,7 +847,7 @@
   1.238  	//mov ecx, [ebp+<val>]
   1.239  	//mov [ebp+ecx], eax
   1.240  	cell_t val = jit->read_cell();
   1.241 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.242 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.243  	{
   1.244  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_DAT, (jit_int8_t)val);
   1.245  	} else {
   1.246 @@ -861,7 +861,7 @@
   1.247  	//mov ecx, [ebp+<val>]
   1.248  	//mov [ebp+ecx], edx
   1.249  	cell_t val = jit->read_cell();
   1.250 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.251 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.252  	{
   1.253  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_DAT, (jit_int8_t)val);
   1.254  	} else {
   1.255 @@ -875,7 +875,7 @@
   1.256  	//mov ecx, [ebx+<val>]
   1.257  	//mov [ebp+ecx], eax
   1.258  	cell_t val = jit->read_cell();
   1.259 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.260 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.261  	{
   1.262  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_FRM, (jit_int8_t)val);
   1.263  	} else {
   1.264 @@ -889,7 +889,7 @@
   1.265  	//mov ecx, [ebx+<val>]
   1.266  	//mov [ebp+ecx], edx
   1.267  	cell_t val = jit->read_cell();
   1.268 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.269 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.270  	{
   1.271  		IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_FRM, (jit_int8_t)val);
   1.272  	} else {
   1.273 @@ -947,7 +947,7 @@
   1.274  	cell_t val = jit->read_cell();
   1.275  	IA32_Mov_Reg_Rm(jit, AMX_REG_TMP, AMX_REG_INFO, MOD_MEM_REG);
   1.276  	IA32_Sub_Rm_Imm8(jit, AMX_REG_STK, 4, MOD_REG);
   1.277 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.278 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.279  	{
   1.280  		IA32_Add_Rm_Imm8(jit, AMX_REG_TMP, (jit_int8_t)val, MOD_REG);
   1.281  	} else {
   1.282 @@ -1097,7 +1097,7 @@
   1.283  	//mov [ebp+<addr>], <val>
   1.284  	cell_t addr = jit->read_cell();
   1.285  	cell_t val = jit->read_cell();
   1.286 -	if (addr < SCHAR_MAX && addr > SCHAR_MIN)
   1.287 +	if (addr <= SCHAR_MAX && addr >= SCHAR_MIN)
   1.288  	{
   1.289  		IA32_Mov_Rm_Imm32_Disp8(jit, AMX_REG_DAT, val, (jit_int8_t)addr);
   1.290  	} else {
   1.291 @@ -1110,7 +1110,7 @@
   1.292  	//mov [ebx+<offs>], <val>
   1.293  	cell_t offs = jit->read_cell();
   1.294  	cell_t val = jit->read_cell();
   1.295 -	if (offs < SCHAR_MAX && offs > SCHAR_MIN)
   1.296 +	if (offs <= SCHAR_MAX && offs >= SCHAR_MIN)
   1.297  	{
   1.298  		IA32_Mov_Rm_Imm32_Disp8(jit, AMX_REG_FRM, val, (jit_int8_t)offs);
   1.299  	} else {
   1.300 @@ -1194,7 +1194,7 @@
   1.301  {
   1.302  	//add edi, <val>
   1.303  	cell_t val = jit->read_cell();
   1.304 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.305 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.306  	{
   1.307  		IA32_Add_Rm_Imm8(jit, AMX_REG_STK, (jit_int8_t)val, MOD_REG);
   1.308  	} else {
   1.309 @@ -1217,7 +1217,7 @@
   1.310  
   1.311  	//lea edi, [ebx-val]
   1.312  	
   1.313 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.314 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.315  	{
   1.316  		IA32_Lea_DispRegImm8(jit, AMX_REG_STK, AMX_REG_FRM, val);
   1.317  	}
   1.318 @@ -1237,7 +1237,7 @@
   1.319  	//add [esi+hea], <val>
   1.320  	cell_t val = jit->read_cell();
   1.321  	IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_ALT, AMX_REG_INFO, AMX_INFO_HEAP);
   1.322 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.323 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.324  	{
   1.325  		IA32_Add_Rm_Imm8_Disp8(jit, AMX_REG_INFO, (jit_int8_t)val, AMX_INFO_HEAP);
   1.326  	} else {
   1.327 @@ -1401,7 +1401,7 @@
   1.328  	
   1.329  	//cmp eax, <val>
   1.330  	//ja :error
   1.331 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
   1.332 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
   1.333  	{
   1.334  		IA32_Cmp_Rm_Imm8(jit, MOD_REG, AMX_REG_PRI, (jit_int8_t)val);
   1.335  	} else {
   1.336 @@ -1568,7 +1568,7 @@
   1.337  			/* negate it so we'll get a lower bound of 0 */
   1.338  			//lea ecx, [eax-<LOWER_BOUND>]
   1.339  			low_bound = -low_bound;
   1.340 -			if (low_bound > SCHAR_MIN && low_bound < SCHAR_MAX)
   1.341 +			if (low_bound >= SCHAR_MIN && low_bound <= SCHAR_MAX)
   1.342  			{
   1.343  				IA32_Lea_DispRegImm8(jit, AMX_REG_TMP, AMX_REG_PRI, low_bound);
   1.344  			} else {
   1.345 @@ -1580,7 +1580,7 @@
   1.346  		}
   1.347  		cell_t high_bound = abs(cases[0].val - cases[num_cases-1].val);
   1.348  		//cmp ecx, <UPPER BOUND BOUND>
   1.349 -		if (high_bound > SCHAR_MIN && high_bound < SCHAR_MAX)
   1.350 +		if (high_bound >= SCHAR_MIN && high_bound <= SCHAR_MAX)
   1.351  		{
   1.352  			IA32_Cmp_Rm_Imm8(jit, MOD_REG, AMX_REG_TMP, high_bound);
   1.353  		} else {
   1.354 @@ -1628,7 +1628,7 @@
   1.355  			{
   1.356  				val = cases[i].val;
   1.357  				//cmp eax, <val> OR cmp al, <val>
   1.358 -				if (val > SCHAR_MIN && val < SCHAR_MAX)
   1.359 +				if (val >= SCHAR_MIN && val <= SCHAR_MAX)
   1.360  				{
   1.361  					IA32_Cmp_Al_Imm8(jit, val);
   1.362  				} else {
   1.363 @@ -1732,7 +1732,7 @@
   1.364  	//push edi		; stack
   1.365  	//push <native>	; native index
   1.366  	IA32_Push_Reg(jit, AMX_REG_STK);
   1.367 -	if (native_index < SCHAR_MAX && native_index > SCHAR_MIN)
   1.368 +	if (native_index <= SCHAR_MAX && native_index >= SCHAR_MIN)
   1.369  	{
   1.370  		IA32_Push_Imm8(jit, (jit_int8_t)native_index);
   1.371  	} else {
   1.372 @@ -1808,7 +1808,7 @@
   1.373  	num_params++;
   1.374  	num_params *= 4;
   1.375  	//add edi, <val*4+4>
   1.376 -	if (num_params < SCHAR_MAX && num_params > SCHAR_MIN)
   1.377 +	if (num_params <= SCHAR_MAX && num_params >= SCHAR_MIN)
   1.378  	{
   1.379  		IA32_Add_Rm_Imm8(jit, AMX_REG_STK, (jit_int8_t)num_params, MOD_REG);
   1.380  	} else {
     2.1 --- a/sourcepawn/jit/x86/opcode_helpers.cpp	Fri Apr 25 06:05:35 2008 +0000
     2.2 +++ b/sourcepawn/jit/x86/opcode_helpers.cpp	Sun Apr 27 19:41:51 2008 +0000
     2.3 @@ -339,7 +339,7 @@
     2.4  	do
     2.5  	{
     2.6  		val = jit->read_cell();
     2.7 -		if (val < SCHAR_MAX && val > SCHAR_MIN)
     2.8 +		if (val <= SCHAR_MAX && val >= SCHAR_MIN)
     2.9  			IA32_Lea_DispRegImm8(jit, AMX_REG_TMP, AMX_REG_PRI, (jit_int8_t)val);
    2.10  		else
    2.11  			IA32_Lea_DispRegImm32(jit, AMX_REG_TMP, AMX_REG_PRI, val);
    2.12 @@ -361,7 +361,7 @@
    2.13  	do 
    2.14  	{
    2.15  		val = jit->read_cell();
    2.16 -		if (val < SCHAR_MAX && val > SCHAR_MIN)
    2.17 +		if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    2.18  			IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_FRM, (jit_int8_t)val);
    2.19  		else
    2.20  			IA32_Mov_Reg_Rm_Disp32(jit, AMX_REG_TMP, AMX_REG_FRM, val);
    2.21 @@ -396,7 +396,7 @@
    2.22  	do 
    2.23  	{
    2.24  		val = jit->read_cell();
    2.25 -		if (val < SCHAR_MAX && val > SCHAR_MIN)
    2.26 +		if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    2.27  			IA32_Mov_Reg_Rm_Disp8(jit, AMX_REG_TMP, AMX_REG_DAT, (jit_int8_t)val);
    2.28  		else
    2.29  			IA32_Mov_Reg_Rm_Disp32(jit, AMX_REG_TMP, AMX_REG_DAT, val);
     3.1 --- a/sourcepawn/jit/x86/ungen_opcodes.h	Fri Apr 25 06:05:35 2008 +0000
     3.2 +++ b/sourcepawn/jit/x86/ungen_opcodes.h	Sun Apr 27 19:41:51 2008 +0000
     3.3 @@ -70,7 +70,7 @@
     3.4  {
     3.5  	//xor eax, <cellsize - val>
     3.6  	cell_t val = sizeof(cell_t) - jit->read_cell();
     3.7 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
     3.8 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
     3.9  	{
    3.10  		IA32_Xor_Rm_Imm8(jit, AMX_REG_PRI, MOD_REG, (jit_int8_t)val);
    3.11  	} else {
    3.12 @@ -82,7 +82,7 @@
    3.13  {
    3.14  	//xor edx, <cellsize - val>
    3.15  	cell_t val = sizeof(cell_t) - jit->read_cell();
    3.16 -	if (val < SCHAR_MAX && val > SCHAR_MIN)
    3.17 +	if (val <= SCHAR_MAX && val >= SCHAR_MIN)
    3.18  	{
    3.19  		IA32_Xor_Rm_Imm8(jit, AMX_REG_ALT, MOD_REG, (jit_int8_t)val);
    3.20  	} else {