pboettch created this revision. Herald added a subscriber: jyknight. Make clang recognize floating point registers in inline assembler when using the targeting Sparc.
This code now works: static inline float fabsf(float a) { float res; __asm __volatile__("fabss %1, %0;" : "=f"(res) : "f"(a)); return res; } https://reviews.llvm.org/D29117 Files: lib/Basic/Targets.cpp Index: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp +++ lib/Basic/Targets.cpp @@ -6707,6 +6707,10 @@ case 'N': // Same as 'K' but zext (required for SIMode) case 'O': // The constant 4096 return true; + + case 'f': + info.setAllowsRegister(); + return true; } return false; }
Index: lib/Basic/Targets.cpp =================================================================== --- lib/Basic/Targets.cpp +++ lib/Basic/Targets.cpp @@ -6707,6 +6707,10 @@ case 'N': // Same as 'K' but zext (required for SIMode) case 'O': // The constant 4096 return true; + + case 'f': + info.setAllowsRegister(); + return true; } return false; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits