On 18 January 2016 at 10:57, Paolo Bonzini <pbonz...@redhat.com> wrote: > One issue I have found after posting is that I'm not sure whether bad > instructions (aka reserved encodings) are handled properly by libvixl. > See for example this: > > case 'A': { // IAddSub. > VIXL_ASSERT(instr->ShiftAddSub() <= 1); > int64_t imm = instr->ImmAddSub() << (12 * instr->ShiftAddSub()); > AppendToOutput("#0x%" PRIx64 " (%" PRId64 ")", imm, imm); > return 7; > } > > where the '1x' encodings of bits 22:23 (marked as reserved in the ARMv8 > ARM) would cause an abort as far as I can see.
Isn't this handled by Decoder::DecodeAddSubImmediate(), which checks bit 23? In any case if we're worried it would be easy to set up a trivial test loop that just feeds all 2^32 integers to the disassembler. thanks -- PMM