[llvm-commits] [llvm] r93242 - in /llvm/trunk: lib/Target/X86/X86FastISel.cpp test/CodeGen/X86/fast-isel.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Jan 12 11:39:32 PST 2010


On Jan 12, 2010, at 9:46 AM, Duncan Sands wrote:

> Author: baldrick
> Date: Tue Jan 12 11:46:16 2010
> New Revision: 93242
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=93242&view=rev
> Log:
> Revert commit 93204, since it causes the assembler to barf
> on x86-64 linux with messages like this:
> Error: Incorrect register `%r14' used with `l' suffix



> -bool X86FastISel::X86SelectOR(Instruction *I) {
> -  // FIXME: This is necessary because tablegen stopped generate fastisel
> -  // patterns after 93152 and 93191 (which turns OR to ADD if the set
> -  // bits in the source operands are known not to overlap).
> -  const TargetRegisterClass *RC = NULL;
> -  unsigned OpReg = 0, OpImm = 0;
> -  if (I->getType()->isInteger(16)) {
> -    RC = X86::GR16RegisterClass;
> -    OpReg = X86::OR16rr; OpImm = X86::OR16ri;
> -  } else if (I->getType()->isInteger(32)) {
> -    RC = X86::GR32RegisterClass;
> -    OpReg = X86::OR32rr; OpImm = X86::OR32ri;
> -  } else if (I->getType()->isInteger(64)) {
> -    RC = X86::GR64RegisterClass;
> -    OpReg = X86::OR32rr; OpImm = X86::OR32ri;

Should this be OR64rr / OR64ri?

That would explain the errors.

/jakob




More information about the llvm-commits mailing list