Added sign extension over hi_word used in ::mov() implementation because
hi_word was incremented after signed shift
replace use of 0x80000000>>16 in addis by SIGN_EXT_IMM16(0x8000) because
the former is zero-extended and will fail the new d-form signed immediate
checking code