[llvm-commits] [llvm] r106299 - in /llvm/trunk: lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/ARM/call-tc.ll test/CodeGen/ARM/ifcvt6-tc.ll test/CodeGen/ARM/insn-sched1-tc.ll test/CodeGen/ARM/ldm-tc.ll test/CodeGen/Thumb2/thumb2-call-tc.ll test/CodeGen/Thumb2/thumb2-ifcvt1-tc.ll

Evan Cheng evan.cheng at apple.com
Mon Jun 21 10:45:00 PDT 2010


On Jun 21, 2010, at 10:32 AM, Dale Johannesen wrote:

> 
> On Jun 20, 2010, at 11:12 PMPDT, Evan Cheng wrote:
>>> 
>>>> A few more comments:
>>>> 
>>>> Please add a test case of an immediate call to a local function:
>>>> 
>>>> define void @f() {
>>>>       ret void
>>>> }
>>>> 
>>>> define void @t4() {
>>>>       tail call void @f()
>>>>       ret void
>>>> }
>>>> 
>>>> On Darwin ARM, this will generate b.w. That's wrong. The .w suffix is for Thumb mode.
>>> 
>>> Anton was claiming that too, but I don't believe it.  A8.2 says .w "has no effect" when targeting ARM, and the Darwin assembler duly ignores it, correctly IMO.
>> 
>> Even if the Darwin assembler ignores it, it's still weird. The ".w" suffix only makes sense in Thumb mode, can you fix it?
> 
> I am not saying this is OK because the Darwin assembler ignores it, I  am saying it is conformant with the spec.  Did you look at A8.2?

I am saying regardless of what the spec allows, it's still inconsistent. llvm only uses .w and .n suffices for Thumb instructions. Consistency is good, no?

Evan

> 
>> Also, I suspect the llvm integrated assembler won't like it.
> 
> Then it should be fixed.
> 





More information about the llvm-commits mailing list