================ @@ -807,7 +807,7 @@ ArrayRef<TargetInfo::GCCRegAlias> PPCTargetInfo::getGCCRegAliases() const { // PPC ELFABIv2 DWARF Definitoin "Table 2.26. Mappings of Common Registers". // vs0 ~ vs31 is mapping to 32 - 63, // vs32 ~ vs63 is mapping to 77 - 108. ---------------- hubert-reinterpretcast wrote:
> I prefer to solve this in another patch with solution: for targets that have > no canonical name for physically overlapping registers, `ReturnCanonical` > should always be false. > > What do you think? I think the usage of `ReturnCanonical` is at least partially intended (and applies to the situation with vs0 -> f0). In particular, it is intended to diagnose (as GCC does): ``` void f(void) { register float f __asm__("fr1"); __asm__ __volatile__ ( "fmul %0,%0,%0" : : "f"(f) : "vs1" ); } ``` That diagnostic does not seem to operate for Clang (at least for PPC) even with a simpler case where the clobber is `fr1` though. I think we can leave that for later. For now, with the current patch, I think a comment to say that these numbers are used for indexing into the `GCCRegNames` array would be correct. If you believe that is a problem, then an additional FIXME comment can be added. https://github.com/llvm/llvm-project/pull/68476 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits