When I implemented these conversions, I didn't consider what the results would be if someone attempted to build 32-bit applications on targets that have direct moves. This just disables the problematic conversions when 32-bit registers are used.
Diff Detail
- Repository
- rL LLVM
Event Timeline
| lib/Target/PowerPC/PPCISelLowering.cpp | ||
|---|---|---|
| 560 | The definition of use64BitRegs is confusing to me. | |
| lib/Target/PowerPC/PPCISelLowering.cpp | ||
|---|---|---|
| 560 | I only used this because it most closely encapsulates the conditions under which we aren't able to perform these actions. However, I think the simplest thing would indeed be to use Subtarget.isPPC64() (or even the local isPPC64) instead. I'll change it and test it prior to committing. I'll change it to: if (Subtarget.hasDirectMove() && isPPC64) | |
The definition of use64BitRegs is confusing to me.
Could you use Subtarget.isPPC64() instead? We basically only want to do this when we are in 64-bit mode, as I understand it.