Constrain both operands on MOVZX32_NOREXrr8.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 7 Oct 2011 20:15:54 +0000 (20:15 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 7 Oct 2011 20:15:54 +0000 (20:15 +0000)
commitb66f18486a031ed00adc6a0376ee2239498db70d
treeaed150fa433dcb7885b7eda2d1a5392069d33520
parent20990397a4c9830bf37e393ec5239efeaa6c0431
Constrain both operands on MOVZX32_NOREXrr8.

This instruction is explicitly encoded without an REX prefix, so both
operands but be *_NOREX.

Also add an assertion to copyPhysReg() that fires when the MOV8rr_NOREX
constraints are not satisfied.

This fixes a miscompilation in 20040709-2 in the gcc test suite.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141410 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86InstrExtension.td
lib/Target/X86/X86InstrInfo.cpp