From: nasm-bot f. J. K. S. <jin...@in...> - 2013-09-21 12:30:39
|
Commit-ID: db358a2993be0e0aa3864ed3290105dd4a544c35 Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=db358a2993be0e0aa3864ed3290105dd4a544c35 Author: Jin Kyu Song <jin...@in...> AuthorDate: Fri, 20 Sep 2013 20:36:19 -0700 Committer: Cyrill Gorcunov <gor...@gm...> CommitDate: Sat, 21 Sep 2013 12:26:36 +0400 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...@in...> Signed-off-by: Cyrill Gorcunov <gor...@gm...> --- assemble.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/assemble.c b/assemble.c index c0e316a..a38e56e 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); |