gcc: fix libatomic cas bug

hopefully this gets upstreamed soon.
gcc: use SLL/BLT to branch on whether a bit is set

This removes one or two instructions when testing bits 63..12.
binutils: share reg names between gas and objdump
gcc: remove multilibs for -mfdiv/-mno-fdiv

There are a few reasons for this.  First, the ABI requires that these
instructions be emulated if not implemented in HW.  Second, the userspace
emulation library wasn't markedly faster than the kernel's.  Third, the
multilib explosion was becoming intractible.

Ultimately, the plan is to replace illegal instructions with jumps to
userspace emulation routines, which will achieve reasonable performance
portably (without multilibs).  This support is forthcoming.
binutils, gcc, glibc: new calling convention

v0-1 are removed; arguments are now returned in a0-1.  Registers are
renumbered so that s0-1 and a0-5 map to x8-15 to simplify the RVC ISA.
(These are the most popular 8 registers besides x0 and sp.)
glibc: remove dependence on _RISCV_SIM/SZPTR

Rely on glibc's directory structure to accomplish this where possible.

h/t Palmer Dabbelt
gcc: use simple_return pattern to enable -fshrink-wrap
gcc: fix nested function trampolines
gcc: fix ASHIFT codegen

We were peepholing SLL/SEXT.W into SLLW, which truncates the shift amount
and is thus incorrect when the shift amount exceeds 31.
change prefix to riscv64-unknown-{linux-gnu/elf}-

h/t Palmer Dabbelt