Fix llvm-mc handing of x86 instructions that take 8-bit unsigned immediates.
authorKevin Enderby <enderby@apple.com>
Wed, 27 Jul 2011 23:01:50 +0000 (23:01 +0000)
committerKevin Enderby <enderby@apple.com>
Wed, 27 Jul 2011 23:01:50 +0000 (23:01 +0000)
commitc37d4bbf1f33c5e4b1c2f1bf1a6e2cae2ae5603a
treefcbda9c4873cb87eeb09ba0f65e1eaf73b3387bf
parentfc2eb31a3c054f9611a2e88238fbb5a8842064a6
Fix llvm-mc handing of x86 instructions that take 8-bit unsigned immediates.

llvm-mc gives an "invalid operand" error for instructions that take an unsigned
immediate which have the high bit set such as:
    pblendw $0xc5, %xmm2, %xmm1
llvm-mc treats all x86 immediates as signed values and range checks them.
A small number of x86 instructions use the imm8 field as a set of bits.
This change only changes those instructions and where the high bit is not
ignored.  The others remain unchanged.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136287 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/AsmParser/X86AsmParser.cpp
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86InstrSSE.td
test/MC/X86/x86-32-avx.s
test/MC/X86/x86-32-coverage.s
utils/TableGen/EDEmitter.cpp
utils/TableGen/X86RecognizableInstr.cpp