fix sh/fdpic issues found after first submission upstream
the following issues are fixed:
- ICE generating the new libgcc __ashlsi3_r0 and __lshrsi3_r0 shift
operations for non-J2 SH2.
- new sh_legitimate_constant_p function was unused because there was
an existing version with different signature which C++ allowed to be
overloaded rather than reporting the error.
- reversed asm spec conditional for fdpic broke non-fdpic builds.
this commit rebases the patch against gcc trunk and backports the
result. file order has been tweaked by hand so that the diff is
friendly to manual inspection.