target-arm: A64: Add SIMD modified immediate group

This patch adds support for the AdvSIMD modified immediate group with
all its suboperations (movi, orr, fmov, mvni, bic).

Signed-off-by: Alexander Graf <agraf@suse.de>
[AJB: new decode struct, minor bug fixes, optimisation]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---

v2 -> v3:
  - use extract32/sextract32 instead of get_bits and get_sbits
v3 -> v4 (ajb):
  - new decoder structure
  - port fixes from Matz tree (including from Julian Brown <julian@codesourcery.com>)
  - return before allocating tcg regs (leak)
  - reduce usage of temps
  - rename op to rd and rd_hi
  - use helper functions for fp offset
  - don't do pointless quad ops
  - fix bug with imm setup (risu)
  - move shift, i into block
  - added AdvSIMDExpandImm commentary
  - rm pointless shift calculation
translate-a64.c: add a debug helper trace macro

This just makes it easier to drop TRACE_DECODE statements all over the
place instead of fprintfs.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
rm unused field
scripts/qemu-binfmt-conf.sh: re-factor and clean-up

I was looking to set-up for development but found the script made some
hard-coded assumptions. It doesn't seem the script is used by the
distros but if it had a little more love maybe it would be ;-)

* Add usage() instructions
* Move all registering to a single function
* Check for existence of executable qemu before registering
* Add -d (devel) mode for subscribing in-src tree binaries
* error handling when setting binfmt fails
* add support for aarch64
scripts/qemu-binfmt-check.py: a binfmt checker

This script allows you to check if a given binary will match against any
of the currently registered binfmts on the system.
start of simd ldst single structure decode

It's just a stub for now