changed interrupt routine to consider gic errata