uintptr_t prefix = PREFIX_val;
get_next_token();
bc = parse_instr(parser_nasm);
- if (bc)
- yasm_insn_add_prefix(yasm_bc_get_insn(bc), prefix);
+ if (!bc)
+ bc = yasm_arch_create_empty_insn(p_object->arch, cur_line);
+ yasm_insn_add_prefix(yasm_bc_get_insn(bc), prefix);
return bc;
}
case SEGREG:
uintptr_t segreg = SEGREG_val;
get_next_token();
bc = parse_instr(parser_nasm);
- if (bc)
- yasm_insn_add_seg_prefix(yasm_bc_get_insn(bc), segreg);
+ if (!bc)
+ bc = yasm_arch_create_empty_insn(p_object->arch, cur_line);
+ yasm_insn_add_seg_prefix(yasm_bc_get_insn(bc), segreg);
return bc;
}
default:
EXTRA_DIST += modules/parsers/nasm/tests/hexconst.hex
EXTRA_DIST += modules/parsers/nasm/tests/long.asm
EXTRA_DIST += modules/parsers/nasm/tests/long.hex
+EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.asm
+EXTRA_DIST += modules/parsers/nasm/tests/nasm-prefix.hex
EXTRA_DIST += modules/parsers/nasm/tests/newsect.asm
EXTRA_DIST += modules/parsers/nasm/tests/newsect.hex
EXTRA_DIST += modules/parsers/nasm/tests/orphannowarn.asm