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

Evan Cheng evan.cheng at apple.com
Tue Jan 12 12:56:59 PST 2010


On Jan 12, 2010, at 11:39 AM, Jakob Stoklund Olesen wrote:

> 
> 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.

Yes. But I've since fixed it differently.

Evan
> 
> /jakob
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list