Patch: Add support for pusha/popa


the attached patch adds support for "pusha" and "popa" in asm blocks.
It's strictly speaking an llvm patch, but I'm not on llvm-dev.

The binary produced by clang with for the two instructions matches gcc
in i386 mode. In x86_64 mode, gcc correctly points out that the
instruction is 32-bit only, while clang doesn't do this yet. nicholas
on irc says that that's probably because clang doesn't check for
32/64bit mismatches yet for inline assembly.

Let me know what you think.


llvm-pusha.patch (1.78 KB)

Hi Nico,

This looks fine to me, but please add a test case to x86_32-new-encoder.s or so.

- Daniel


llvm-pusha.patch (2.44 KB)

Note that you don't have to be subscribed to llvm-dev or llvm-commits
to send a message.



Looks good to me, please commit (you do have commit access to llvm as well as clang) with two comment typo fixes:

+ // ignore (pushes all GP registoers onto the stack)
+ // ignore (pushes all GP registoers onto the stack)

Thanks Nico!


Thanks, committed as r106671.