On Jun 8, 2012, at 1:42 PM, Eli Friedman wrote:

> On Fri, Jun 8, 2012 at 11:52 AM, Chad Rosier <[email protected]> wrote:
>> The attached patch etches out a new code path for MS style inline assembly 
>> in the Parser, Sema, AST, and CodeGen.  This is _largely_ a WIP!
>> 
>> The idea is to translate the MS style inline assembly into IR that is 
>> equivalent to the GNU style inline assembly.  That way the backend doesn't 
>> need to be modified (nor does our assembler implementation).  I was hoping 
>> to make further progress on this today, so please take a look if you have a 
>> quick second.
> 
> You'll need to extend LLVM IR and the backend slightly so that it can
> perform MS-style operand interpolation ("8(%esp)" vs. "[esp+8]", for
> example); otherwise, that seems feasible.

Ok.

> Various review comments:
> 
> Please don't use StringLiteral for any of the pieces of MS inline
> assembly; they're not actually written as strings in the source, so
> using it here is confusing.

Agreed; just a gross simplification to get things going.

> 
> +  /** \brief A MS inline assembly statement extension.
> +   */
> +  CXCursor_MSAsmStmt                     = 216,
> +
>   /** \brief Objective-C's overall @try-@catch-@finally statement.
>    */
> -  CXCursor_ObjCAtTryStmt                 = 216,
> +  CXCursor_ObjCAtTryStmt                 = 217,
> 
> Please don't renumber the CXCursor enum; just add an entry at the end.

Will do.

> 
> In MSAsmStmt, does it actually make sense to talk in terms of "input
> operands" and "output operands"?  For GNU-style inline asm, the
> distinction makes sense because there are actually two separate lists
> in the source code, but as far as I can tell the distinction isn't
> useful here.

Agreed.

> I think it's important to figure out a design for how we keep track of
> source locations though the AST and IRGen before you get too much
> further because rewriting your data structures later on will be a
> pain.

I'll fix the suggestions above and then start on this.

> Instead of comments like "FIXME: MS style inline asm still a WIP",
> please use something more specific, like "serialization for MS-style
> inline asm not yet implemented".

Will do.

> 
> -Eli

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to