fixes for extract:

 * use extract32 for all bits
 * don't overwrite source register while building dest
 * don't attempt a shift of 32/64 as it breaks tcg