Previously, __internal_syscall() compiled into asm-code that unconditionally
sets the syscall argument registers a0 to a5.
For example, the instruction sequence for a exit syscall looked like
this:
    li    a0, 1   # in ther caller of exit()
    # ...         # in newlib:
    li    a1, 0   # unused arguments
    li    a2, 0
    li    a3, 0
    li    a4, 0
    li    a5, 0
    li    a7, 93  # exit syscall number
(i.e. the binary contains then 5 superfluous instructions for this
one argument syscall)
This commit changes the RISC-V syscall code such that only the required
syscall argument registers are set.
GCC detects that argc is known at compile time and thus evaluates all the
if-statements where argc is used at compile time (tested with -O2 and -Os).
		
	
bfin - Analog Devices Blackfin processor. sparc - Fujitsu Sparclite board. Works on the ex930, ex931, ex933 hp74x - Hewlett Packard HP742 board. Also some support for the hp743. m68hc11 - Motorola 68HC11 or 68HC12 support. m68k - Motorola MVME135 and IDP board. For CPU32 systems. mep - Toshiba Media Processor. pa - WinBond and Oki boards with a PA. mips - R3000 support. Array Tech LSI33k based RAID disk controller. lm32 - Lattice Mico32 simulator. epiphany - Adapteva Epiphany multicore processor. or1k - OpenRISC 1000 processor.