moved to code without a0, a1, b0 and b1 as everything is done through shifts now.
Have to find a way to ditch one of the c0, c1 or c2 and reuse space in c_loc for register saving