diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-08-01 20:21:24 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-08-01 20:21:24 +0000 |
commit | 5b37c181291210bedfbb7a6af5d51229f3652ef0 (patch) | |
tree | 6815b7ab9469f59dbe577dad26d82e0f4fe7c785 /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 455768e2af7ef774b40510a82d034a78a4504639 (diff) | |
download | llvm-5b37c181291210bedfbb7a6af5d51229f3652ef0.zip llvm-5b37c181291210bedfbb7a6af5d51229f3652ef0.tar.gz llvm-5b37c181291210bedfbb7a6af5d51229f3652ef0.tar.bz2 |
MS inline asm: Use memory constraints for functions instead of registers
This is consistent with how we parse them in a standalone .s file, and
inline assembly shouldn't differ.
This fixes errors about requiring more registers than available in
cases like this:
void f();
void __declspec(naked) g() {
__asm pusha
__asm call f
__asm popa
__asm ret
}
There are no registers available to pass the address of 'f' into the asm
blob. The asm should now directly call 'f'.
Tests will land in Clang shortly.
llvm-svn: 214550
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions