[llvm-commits] [llvm] r172121 - in /llvm/trunk: include/llvm/MC/MCParser/MCAsmParser.h include/llvm/MC/MCParser/MCParsedAsmOperand.h lib/MC/MCParser/AsmParser.cpp lib/Target/X86/AsmParser/X86AsmParser.cpp test/CodeGen/X86/ms-inline-asm.ll

Chad Rosier mcrosier at apple.com
Thu Jan 10 17:05:13 PST 2013


Thanks, Nakamura.  I believe r172148 should have taken care of the problem as well.

 Chad

On Jan 10, 2013, at 4:42 PM, NAKAMURA Takumi <geek4civic at gmail.com> wrote:

> 2013/1/11 Chad Rosier <mcrosier at apple.com>:
>> Author: mcrosier
>> Date: Thu Jan 10 16:10:27 2013
>> New Revision: 172121
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=172121&view=rev
>> Log:
>> [ms-inline asm] Add support for calling functions from inline assembly.
>> Part of rdar://12991541
>> 
>> Modified:
>>    llvm/trunk/include/llvm/MC/MCParser/MCAsmParser.h
>>    llvm/trunk/include/llvm/MC/MCParser/MCParsedAsmOperand.h
>>    llvm/trunk/lib/MC/MCParser/AsmParser.cpp
>>    llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp
>>    llvm/trunk/test/CodeGen/X86/ms-inline-asm.ll
> 
>> Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=172121&r1=172120&r2=172121&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)
>> +++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Thu Jan 10 16:10:27 2013
>> @@ -3842,7 +3843,7 @@
>>             std::string Constraint = "=";
>>             ++InputIdx;
>>             OutputDecls.push_back(OpDecl);
>> -            OutputDeclsOffsetOf.push_back(Operand->isOffsetOf());
>> +            OutputDeclsAddressOf.push_back(Operand->needAddressOf());
>>             Constraint += Operand->getConstraint().str();
>>             OutputConstraints.push_back(Constraint);
>>             AsmStrRewrites.push_back(AsmRewrite(AOK_Output,
>> @@ -3850,7 +3851,7 @@
>>                                                 Operand->getNameLen()));
>>           } else {
>>             InputDecls.push_back(OpDecl);
>> -            InputDeclsOffsetOf.push_back(Operand->isOffsetOf());
>> +            InputDeclsAddressOf.push_back(Operand->needAddressOf());
>>             InputConstraints.push_back(Operand->getConstraint().str());
>>             AsmStrRewrites.push_back(AsmRewrite(AOK_Input,
>>                                                 Operand->getStartLoc(),
> 
> needAddressOf() is valid only if isReg(). Fixed in r172153. Valgrined helped.




More information about the llvm-commits mailing list