]> granicus.if.org Git - clang/commit
[ms-inline asm] If we have a single asm operand that maps to multiple
authorChad Rosier <mcrosier@apple.com>
Wed, 12 Sep 2012 18:14:25 +0000 (18:14 +0000)
committerChad Rosier <mcrosier@apple.com>
Wed, 12 Sep 2012 18:14:25 +0000 (18:14 +0000)
commit7f9678b513f926dae27234858ed2586a6eb03b7b
treea1a1f014eede4e90afb0267f5db3729681a193ef
parent0841a07498af164a9702f943ab2f517e23eecc77
[ms-inline asm] If we have a single asm operand that maps to multiple
MCOperands then iterate over all of then when computing clobbers, inputs and
outputs.

On x86 the 1-to-many mapping is a memory operand that includes a BaseReg(reg),
MemScale(imm), MemIndexReg(reg), an Expr(MCExpr or imm) and a MemSegReg(reg).
Invalid register (Op.getReg() == 0) are not considered when computing clobber.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163728 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaStmtAsm.cpp
test/CodeGen/ms-inline-asm.c