From db358a2993be0e0aa3864ed3290105dd4a544c35 Mon Sep 17 00:00:00 2001 From: Jin Kyu Song Date: Fri, 20 Sep 2013 20:36:19 -0700 Subject: 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 Signed-off-by: Cyrill Gorcunov --- assemble.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assemble.c b/assemble.c index c0e316ae..a38e56e3 100644 --- a/assemble.c +++ b/assemble.c @@ -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); -- cgit v1.2.1