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.

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.

+  /** \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.

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.

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.

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".

-Eli

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

Reply via email to