[Patch, microblaze]: Fixed missing save of r18 in fast_interrupt.

Register 18 is used as a clobber register, and must be stored when
entering a fast_interrupt. Before this fix, register 18 was only
saved if it was used directly in the interrupt function.

However, if the fast_interrupt function called a function that used
r18, the register would not be saved, and thus be mangled
upon returning from the interrupt.

Changelog

2014-02-27  Klaus Petersen <klauspetersen@gmail.com>

 * gcc/config/microblaze/microblaze.c: Check for fast_interrupt in
   microblaze_must_save_register.

Signed-off-by: Klaus Petersen <klauspetersen@gmail.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
[Patch, microblaze] Fix the Microblaze crash with msmall-divides flag

Compiler is crashing when we use msmall-divides and mxl-barrel-shift flag.
This is because when use above flags microblaze_expand_divide function will be
called for division operation. In microblaze_expand_divide function we are
using sub_reg but MicroBlaze doesn't have subreg register due to this compiler
was crashing. Changed the logic to avoid sub_reg call

Signed-off-by:Nagaraju Mekala <nmekala@xilix.com>