This patch provides the implementation for the following instructions:
lwat,
ldat,
stwat,
stdat,
ldmx
mcrxrx
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/PowerPC/PPCInstr64Bit.td | ||
---|---|---|
248 | Depending on FC value, input might be $(rD+1), $(rD+2) I am curious about the effect of "hasExtraSrcRegAllocReq", looks like it disallows register changing in AggressiveAntiDepBreaker::ScanInstruction, because it is dangerous to do that for this instruction. | |
249 | Do we need to check $FC value? Or it's user's responsibility? Even though it looks like user's responsibility:
| |
920 | I don't know when we need to add "isPPC64", Does LDAT and STDAT also require this attribute? |
lib/Target/PowerPC/PPCInstr64Bit.td | ||
---|---|---|
248 | This is a good point, I added the comment to the 32-bit versions but forgot to add it here. It would certainly be a very bad idea for AADB to rename the target register when we may have values we need in the next register or two. All that being said, this should actually be hasExtraDefRegAllocReq. I'll fix it and re-post. | |
249 | I think that if we decide to provide access to this instruction through a builtin, we should diagnose invalid FC's supplied by the user. However, I don't think attempting to diagnose it in the .td files is the right way to go. | |
920 | You are correct, those instructions are actually 64-bit only instructions. Not just names for the same instructions but that use 64-bit registers rather than 32-bit ones. I'll be sure to add that. |
Depending on FC value, input might be $(rD+1), $(rD+2)
I believe that's why we need "hasExtraSrcRegAllocReq".
I am curious about the effect of "hasExtraSrcRegAllocReq", looks like it disallows register changing in AggressiveAntiDepBreaker::ScanInstruction, because it is dangerous to do that for this instruction.