special-case negative values in rshift

... and treat rshifting by an negative amount like an lshift by
positive amount.