[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