This is correct; this is in fact true for all instructions except "mov".
Whether it's sign- or zero-extending is sometimes subtle, but not in
these cases.
Do you happen to know if this is a manifest bug in the current kernel
(i.e. if there is anywhere we're using more than ±2 GB as a constant to
these functions?)
Either way, I'll queue this up to tip:x86/urgent if Ingo hasn't already
since this is a pure bug fix.
-hpa
--