Start to add support for N32 and N64 ABIs.
Start to add support for N32 and N64 ABIs.

In addition, add a work around for (or maybe you would call it
increase compatibility with) Cavium toolchain:

	the .cprestore macro references fp rather than sp, so we need
	to copy sp to fp in a couple of places.

Also add a couple of comments to explain what's going on.

Obtained from:	Cavium FreeBSD/octeon port.

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase