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 {