andrew.w.kaylor created this revision. This patch updates the clang function that filters the mxcsr register name to recognize that mxcsr is being split into two pseduo-registers that model the control and status bits separately.
Repository: rL LLVM https://reviews.llvm.org/D30662 Files: lib/Parse/ParseStmtAsm.cpp Index: lib/Parse/ParseStmtAsm.cpp =================================================================== --- lib/Parse/ParseStmtAsm.cpp +++ lib/Parse/ParseStmtAsm.cpp @@ -623,8 +623,9 @@ // Filter out "fpsw" and "mxcsr". They aren't valid GCC asm clobber // constraints. Clang always adds fpsr to the clobber list anyway. + // Note that mxcsr is modeled as two separate registers. llvm::erase_if(Clobbers, [](const std::string &C) { - return C == "fpsw" || C == "mxcsr"; + return C == "fpsw" || C == "mxcsr_c" || C == "mxcsr_s"; }); // Build the vector of clobber StringRefs.
Index: lib/Parse/ParseStmtAsm.cpp =================================================================== --- lib/Parse/ParseStmtAsm.cpp +++ lib/Parse/ParseStmtAsm.cpp @@ -623,8 +623,9 @@ // Filter out "fpsw" and "mxcsr". They aren't valid GCC asm clobber // constraints. Clang always adds fpsr to the clobber list anyway. + // Note that mxcsr is modeled as two separate registers. llvm::erase_if(Clobbers, [](const std::string &C) { - return C == "fpsw" || C == "mxcsr"; + return C == "fpsw" || C == "mxcsr_c" || C == "mxcsr_s"; }); // Build the vector of clobber StringRefs.
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits