This allows arguments with the constraint A to be lowered to input nodes for RISC-V, which implies a memory address stored in a register.
This patch adds the minimal amount of code required to get operands with the right constraints to compile.
Differential D54296
[RISCV] Lower inline asm constraint A for RISC-V lewis-revill on Nov 9 2018, 1:25 AM. Authored by
Details
This allows arguments with the constraint A to be lowered to input nodes for RISC-V, which implies a memory address stored in a register. This patch adds the minimal amount of code required to get operands with the right constraints to compile.
Diff Detail
Event TimelineComment Actions I think we should introduce a new Constraint_A enum member for this case. Whilst "A" currently behaves the same for the RISC-V backend as "m", that won't necessarily be the case forever. "A" is required to always be a single GPR (and so can be used for the atomic instructions, or ones with reduced immediate encoding space), but "m" (at least according to GCC) is "any kind of address that the machine supports in general", which I assume for RISC-V means reg+simm12. Comment Actions Add Constraint_A to account for future modifications to Constraint_m handling. Constraint_A should only ever utilize a single base address without an offset. Comment Actions Added a couple of comments. Once addressed, should be fine. Thanks!
|
Doesn't need to be an extra case given the body is the same as the others.