or1k: use asm implementations for libgcc *si3 functions

Generic C functions have been used to implement those, since the
asm implementations haven't been able to handle the no-delay case.
This updates the asm implementation with support for no-delay
and re-enables the functions for __mulsi3 __udivsi3 __divsi3
__umodsi3 and __modsi3.

One reason why it's important for these to be implemented as such,
is that the openrisc Linux port links to libgcc.a and the Linux
toolchains compiles libgcc.a with -fPIC. The asm implementations
however, doesn't do any references through the .got, so those
can then be safely used from the Linux kernel.

libgcc/ChangeLog.or1k
2014-05-07  Stefan Kristiansson  <stefan.kristiansson@saunalahti.fi>

	* config/or1k/or1k.S: Use delay/no-delay compatibility macros.
	* config/or1k/lib2funcs.c: Remove.
	* config/or1k/t-or1k: Set LIB1ASMSRC and LIB1ASMFUNCS.
	Remove LIB2ADD define.
Add -rdynamic
Added very basic atomic and sync functions
Disable struct alignment
or1k is supported for fPIC in libiberty
or1k: Re-worked TLS handling to register correctly

A problem was detected where the call to __tls_get_addr would be emitted
but the call-clobbered registers wouldn't register as clobbered.

These changes makes GCC take TLS in account in the earlier phases and
seems to do the correct thing.