From: nasm-bot f. J. K. S. <jin...@in...> - 2013-12-19 07:18:22
|
Commit-ID: 97f6faec62979ef5db9c0f4b42e127f4f913115e Gitweb: http://repo.or.cz/w/nasm.git?a=commitdiff;h=97f6faec62979ef5db9c0f4b42e127f4f913115e Author: Jin Kyu Song <jin...@in...> AuthorDate: Wed, 18 Dec 2013 21:28:17 -0800 Committer: Jin Kyu Song <jin...@in...> CommitDate: Wed, 18 Dec 2013 22:27:47 -0800 mib: Avoid RIP-relative addressing in mib Using RIP relative for mib operands causes #UD exception. Signed-off-by: Jin Kyu Song <jin...@in...> --- assemble.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/assemble.c b/assemble.c index 4ff9e25..9184800 100644 --- a/assemble.c +++ b/assemble.c @@ -2426,6 +2426,12 @@ static enum ea_type process_ea(operand *input, ea *output, int bits, input->type |= MEMORY; } + if (bits == 64 && + !(IP_REL & ~input->type) && (eaflags & EAF_MIB)) { + nasm_error(ERR_NONFATAL, "RIP-relative addressing is prohibited for mib."); + return -1; + } + if (eaflags & EAF_BYTEOFFS || (eaflags & EAF_WORDOFFS && input->disp_size != (addrbits != 16 ? 32 : 16))) { |