[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gm2] cvs latest changes (gnu inline assembly fixes),
Gaius Mulley <=