AVX-512: Fix bugs related to uninitialized variables

Initialized disp8 to avoid a case that disp8 encoded
instead of the actual offset value.
Added a checking routine for basereg value before using it
as an index of array.

Signed-off-by: Jin Kyu Song <jin.kyu.song@intel.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
Jin Kyu Song 2013-09-20 20:36:19 -07:00 committed by Cyrill Gorcunov
parent eb595942b2
commit db358a2993

View File

@ -2147,7 +2147,8 @@ static enum match_result matches(const struct itemplate *itemp,
*/
opsizemissing = true;
}
} else if (nasm_regvals[instruction->oprs[i].basereg] >= 16 &&
} else if (is_register(instruction->oprs[i].basereg) &&
nasm_regvals[instruction->oprs[i].basereg] >= 16 &&
!(itemp->flags & IF_AVX512)) {
return MERR_ENCMISMATCH;
}
@ -2313,6 +2314,7 @@ static enum ea_type process_ea(operand *input, ea *output, int bits,
output->type = EA_SCALAR;
output->rip = false;
output->disp8 = 0;
/* REX flags for the rfield operand */
output->rex |= rexflags(rfield, rflags, REX_R | REX_P | REX_W | REX_H);