We currently emit incorrect codegen for this constraint because we set it as a constraint that allows registers. This will cause the value to be copied to the stack and that address to be passed as the address. This is not what we want.
Details
Details
- Reviewers
hfinkel lei stefanp - Group Reviewers
Restricted Project - Commits
- rGa8eb6a5db7f9: [PowerPC] Treat 'Z' inline asm constraint as a true memory constraint
rGaede24ecaa08: [PowerPC] Treat 'Z' inline asm constraint as a true memory constraint
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/lib/Basic/Targets/PPC.h | ||
---|---|---|
277 | Just curious, but does this case still require Info.setAllowsMemory(); as well? |
clang/lib/Basic/Targets/PPC.h | ||
---|---|---|
277 | I don't want to change the behaviour of a QPX-specific asm constraint, so I'd rather leave it as-is. Q will set both, Z will only set "memory". |
clang/test/CodeGen/ppc64-inline-asm.c | ||
---|---|---|
50 | Great catch! Thank you. |
Just curious, but does this case still require Info.setAllowsMemory(); as well?