target-arm: A64: Saturating and narrowing shift ops

This implements a the remaining [US][R]SHR[R][2] opcodes which are
saturating and narrowing shift right operations. These are used in
things like libav. Note signed shifts can have an "unsigned" saturating
narrow operation which will floor negative values.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
target-arm: A64: Implement AdvSIMD reciprocal ops

The actual reciprocal function is shared with the NEON code. The include
URECPE, FRECPE and FRECPX instructions in both scalar and vector forms.
However the v8 wrappers have to deal with a wider range input conditions
as well as FPCR controlled behaviour for squashing NaNs and denormals.

Also:

* Added a simple wrapper to emulate unpack
* Switched some NEON wrapper to pass fpst directly
* Exposed softfloat's *_squash_input_denormal
* Added *_maxnorm to softfloat

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

Conflicts:
	target-arm/translate-a64.c
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>

---

v2 (ajb)
   - checkpatch.pl fixes
qemu-log: support simple pid substitution in logfile

When debugging stuff that occurs over several forks it would be useful
not to keep overwriting the one logfile you've set-up. This allows a
simple %d to be included once in the logfile parameter which is
substituted with getpid().
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.

---

v2 (ajb):
   - cleaned up whitespace and checkpatch fixes
v3 (ajb)):
   - usage() and logging clean-ups
linux-user: Implement sendmmsg syscall

Glibc when built for newer kernels assumes that the sendmmsg syscall is available.
Without it, dns resolution simply fails to work.

Wrap the syscall with existing infrastructure so that we don't have a host dependency
on sendmmsg.

Signed-off-by: Alexander Graf <agraf@suse.de>
TESTING: additional opcode information from gcc tests
tcg: add tcg_abort_dbg() for additional info
target-arm: A64: helper functions for tracing TCG vals