gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gm2] cvs latest changes (gnu inline assembly fixes)


From: Gaius Mulley
Subject: [Gm2] cvs latest changes (gnu inline assembly fixes)
Date: Wed, 06 Jul 2011 11:24:54 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)

Hi,

     * gm2/gccgm2.c:  BuildAsm now has an extra parameter (isSimple).
       Also call resolve_asm_operand_names.
     * gm2/bnf/m2-2.bnf:  parse full GNU asm syntax (including
       operand names).
     * gm2/bnf/m2-3.bnf:  implement full GNU asm syntax (including
       operand names).  Record all asm operand names, specifiers
       and trash lists.  Also record whether it was a simple kind.
     * gm2/bnf/m2-c.bnf:  parse full GNU asm syntax (including
       operand names).
     * gm2/bnf/m2-h.bnf:  parse full GNU asm syntax (including
       operand names).
     * gm2/bnf/m2.bnf:  parse full GNU asm syntax (including
       operand names).
     * gm2/gm2-compiler/M2GenGCC.mod:  correct generation of
       input, output and trash values for the asm operands.
     * gm2/gm2-compiler/SymbolTable.def:  New procedures
       (PutGnuAsmSimple) and (IsGnuAsmSimple).  Added extra
       parameter to (GetRegInterface).
     * gm2/gm2-compiler/SymbolTable.mod:  Implemented new procedures
       (PutGnuAsmSimple) and (IsGnuAsmSimple).  Added extra
       parameter to (GetRegInterface) to correct a bug.
     * gm2/gm2-compiler/gccgm2.def:  modified declaration of
       (BuildAsm) to include an extra parameter, IsSimple.
     * These fixes allow GNU ASM syntax to behave in exactly
       the same way as the other GCC front ends.

I'll produce a section in the manual explaining how this works with a
couple of examples.  The GNU asm inline assembly language is a neat
feature as it allows operands to be passed in/out of the assembly
language and will modify the operands (with specified limits) according
to optimisation levels.  Ie you can specify an operand to come in either
as a register or from memory and the compiler can decide which is more
appropriate (which can depend whether you use -O0, -O1, -O2 etc),

regards,
Gaius



reply via email to

[Prev in Thread] Current Thread [Next in Thread]