Fix an insidious 64-bitness bug which was causing incorrectly optimised code.

--HG--
branch : default-branch
This commit is contained in:
David Given 2016-03-17 22:30:24 +01:00
parent 391cb0f2cd
commit fd7e9f9046

View file

@ -417,14 +417,14 @@ eval_t compute(pexp) register expr_p pexp; {
case EX_SFIT: case EX_SFIT:
mask = 0; mask = 0;
for (i=leaf2.e_v.e_con - 1;i < 8*sizeof(offset); i++) for (i=leaf2.e_v.e_con - 1;i < 8*sizeof(offset); i++)
mask |= 1<<i; mask |= ((offset)1)<<i;
res.e_v.e_con = (leaf1.e_v.e_con&mask) == 0 || res.e_v.e_con = (leaf1.e_v.e_con&mask) == 0 ||
(leaf1.e_v.e_con&mask) == mask; (leaf1.e_v.e_con&mask) == mask;
break; break;
case EX_UFIT: case EX_UFIT:
mask = 0; mask = 0;
for (i=leaf2.e_v.e_con;i < 8*sizeof(offset); i++) for (i=leaf2.e_v.e_con;i < 8*sizeof(offset); i++)
mask |= 1<<i; mask |= ((offset)1)<<i;
res.e_v.e_con = (leaf1.e_v.e_con&mask) == 0; res.e_v.e_con = (leaf1.e_v.e_con&mask) == 0;
break; break;
case EX_ROTATE: case EX_ROTATE: