@@ -2935,7 +2935,7 @@ void CWriter::visitInlineAsm(CallInst &CI) {
2935
2935
default : assert (0 && " Unknown asm constraint" );
2936
2936
case InlineAsm::isInput: {
2937
2937
assert (ValueCount >= ResultVals.size () && " Input can't refer to result" );
2938
- Value *V = CI.getOperand (ValueCount-ResultVals.size ());
2938
+ Value *V = CI.getOperand (ValueCount-ResultVals.size ()+ 1 );
2939
2939
Input.push_back (std::make_pair (C, V));
2940
2940
break ;
2941
2941
}
@@ -2944,7 +2944,7 @@ void CWriter::visitInlineAsm(CallInst &CI) {
2944
2944
if (ValueCount < ResultVals.size ())
2945
2945
V = ResultVals[ValueCount];
2946
2946
else
2947
- V = std::make_pair (CI.getOperand (ValueCount-ResultVals.size ()), -1 );
2947
+ V = std::make_pair (CI.getOperand (ValueCount-ResultVals.size ()+ 1 ), -1 );
2948
2948
Output.push_back (std::make_pair (" =" +((I->isEarlyClobber ? " &" : " " )+C),
2949
2949
V));
2950
2950
break ;
@@ -2964,20 +2964,19 @@ void CWriter::visitInlineAsm(CallInst &CI) {
2964
2964
for (unsigned i = 0 , e = Output.size (); i != e; ++i) {
2965
2965
if (i)
2966
2966
Out << " , " ;
2967
- Out << " \" " << Output[i].first << " \" (" ;
2968
- writeOperandRaw (Output[i].second .first );
2967
+ Out << " \" " << Output[i].first << " \" ("
2968
+ << GetValueName (Output[i].second .first );
2969
2969
if (Output[i].second .second != -1 )
2970
2970
Out << " .field" << Output[i].second .second ; // Multiple retvals.
2971
2971
Out << " )" ;
2972
2972
}
2973
2973
Out << " \n :" ;
2974
- for (std::vector<std::pair<std::string, Value*> >::iterator I = Input.begin (),
2975
- E = Input.end (); I != E; ++I) {
2976
- Out << " \" " << I->first << " \" (" ;
2977
- writeOperandRaw (I->second );
2974
+ for (unsigned i = 0 , e = Input.size (); i != e; ++i) {
2975
+ if (i)
2976
+ Out << " , " ;
2977
+ Out << " \" " << Input[i].first << " \" (" ;
2978
+ writeOperand (Input[i].second );
2978
2979
Out << " )" ;
2979
- if (I + 1 != E)
2980
- Out << " ," ;
2981
2980
}
2982
2981
if (Clobber.size ())
2983
2982
Out << " \n :" << Clobber.substr (1 );
0 commit comments