[llvm-commits] [llvm] r72154 - in /llvm/trunk: lib/Target/X86/X86InstrInfo.td test/CodeGen/X86/call-imm.ll

Evan Cheng evan.cheng at apple.com
Tue May 19 20:10:50 PDT 2009


On May 19, 2009, at 6:41 PM, Dan Gohman wrote:

>>
>>
>> @@ -562,7 +563,7 @@
>>      Uses = [ESP] in {
>>    def CALLpcrel32 : Ii32<0xE8, RawFrm, (outs), (ins i32imm:
>> $dst,variable_ops),
>>                           "call\t${dst:call}", [(X86call imm:$dst)]>,
>> -                      Requires<[In32BitMode]>;
>> +                      Requires<[In32BitMode, IsNotPIC]>;
>
> This looks like it says that CALLpcrel32 is valid only for PIC,
> which isn't true. It looks like the (X86call imm:$dst) pattern
> should be moved out into a "def : Pat" like the other patterns
> for CALLpcrel32, so that the Requires<[IsNotPIC]> can apply to
> just that pattern, not the instruction itself.

The requirement does only apply for the pattern. I agree it reads a  
bit funny. I can move it to a def : Pat.

>
> Also, it looks like the Darwin linker rejects "call 12345678" in
> dynamic-no-pic mode as well as PIC mode.

Ah right. I'll fix.

Evan

>
> Dan
>
> _______________________________________________
> 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