In particular, I performed the following changes:
1. Add the (missing) aarch64 configuration.
2. Mask out e_ident[EI_OSABI]. A single OS can have multiple values
here. We just pass them all to qemu. I personally ran into this issue
(where filtering was too strict) on ppc64.
3. Mask out e_ident[EI_ABIVERSION]. On Linux, this value is ignored.
4. Mask out e_ident[EI_PAD]. The current check insists they are zero
when they are, in fact, undefined.
5. Don't mask any bits for e_ident[EI_VERSION]. We want an exact match
on this since there has only ever been one version. However, alpha, i386
and i486 were masking out the least significant bit.
6. Don't mask any bits for e_ident[EI_DATA]. You can't mask out bits for
endianness because it controls the byte order of later bytes in the
binfmt match (starting at offset 0x10). So you can never have a rule
which works with bits masked out on this field. However, alpha, i386 and
i486 were masking out the least significant bit.