[llvm-commits] [llvm] r163243 - in /llvm/trunk: include/llvm/CodeGen/MachineInstr.h include/llvm/InlineAsm.h lib/CodeGen/MachineInstr.cpp lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Chad Rosier
mcrosier at apple.com
Wed Sep 5 15:44:47 PDT 2012
On Sep 5, 2012, at 3:27 PM, Jakob Stoklund Olesen wrote:
>
> On Sep 5, 2012, at 3:19 PM, Chad Rosier <mcrosier at apple.com> wrote:
>
>>
>> On Sep 5, 2012, at 2:16 PM, Jakob Stoklund Olesen wrote:
>>
>>>
>>> On Sep 5, 2012, at 2:00 PM, Chad Rosier <mcrosier at apple.com> wrote:
>>>
>>>> Author: mcrosier
>>>> Date: Wed Sep 5 16:00:58 2012
>>>> New Revision: 163243
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=163243&view=rev
>>>> Log:
>>>> [ms-inline asm] Propagate the asm dialect into the MachineInstr representation.
>>>> // Interpretation of the MIOp_ExtraInfo bit field.
>>>> Extra_HasSideEffects = 1,
>>>> Extra_IsAlignStack = 2,
>>>> + Extra_ATTDialect = 3, // AT&T AsmDialect.
>>>> + Extra_IntelDialect = 4, // Intel AsmDialect.
>>>
>>>> + if (ExtraInfo & InlineAsm::Extra_ATTDialect)
>>>> + OS << " [attdialect]";
>>>> + if (ExtraInfo & InlineAsm::Extra_IntelDialect)
>>>> + OS << " [inteldialect]";
>>>
>>> Hi Chad,
>>>
>>> It should be enough to use one bit in ExtraInfo for the dialect, right? This implementation supports setting both at the same time.
>>
>> How does r163257 look?
>
> Better, but you don't seem to be using the Extra_AsmDialect enum for anything, and the shifts by 2 are a bit gross - the bitfield layout should be defined purely in the header.
Oy Vey.. *heads to coffee machine**
> Instead of:
>
> + return InlineAsm::AsmDialect((ExtraInfo >> 2) & 1);
>
> Say:
>
> + return InlineAsm::AsmDialect((ExtraInfo & Extra_AsmDialect) != 0);
>
> And
>
> + // Set the asm dialect.
> + ExtraInfo |= IA->getDialect() * Extra_AsmDialect;
>
> [With Extra_AsmDialect = 4, of course].
>
Thanks for the suggestions, Jakob. Committed revision 163263.
> /jakob
>
More information about the llvm-commits
mailing list