[llvm] [BOLT][AArch64] Add isPush & isPop (PR #120713)
Vladislav Khmelevsky via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 9 07:47:16 PST 2025
================
@@ -214,59 +224,210 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
}
bool isLDRB(const MCInst &Inst) const {
- return (Inst.getOpcode() == AArch64::LDRBBpost ||
- Inst.getOpcode() == AArch64::LDRBBpre ||
- Inst.getOpcode() == AArch64::LDRBBroW ||
- Inst.getOpcode() == AArch64::LDRBBroX ||
- Inst.getOpcode() == AArch64::LDRBBui ||
- Inst.getOpcode() == AArch64::LDRSBWpost ||
- Inst.getOpcode() == AArch64::LDRSBWpre ||
- Inst.getOpcode() == AArch64::LDRSBWroW ||
- Inst.getOpcode() == AArch64::LDRSBWroX ||
- Inst.getOpcode() == AArch64::LDRSBWui ||
- Inst.getOpcode() == AArch64::LDRSBXpost ||
- Inst.getOpcode() == AArch64::LDRSBXpre ||
- Inst.getOpcode() == AArch64::LDRSBXroW ||
- Inst.getOpcode() == AArch64::LDRSBXroX ||
- Inst.getOpcode() == AArch64::LDRSBXui);
+ const unsigned opcode = Inst.getOpcode();
+ bool isLoad = false;
+ switch (opcode) {
+ case AArch64::LDRBpost:
+ case AArch64::LDRBBpost:
+ case AArch64::LDRBBpre:
+ case AArch64::LDRBBroW:
+ case AArch64::LDRBroW:
+ case AArch64::LDRBroX:
+ case AArch64::LDRBBroX:
+ case AArch64::LDRBBui:
+ case AArch64::LDRBui:
+ case AArch64::LDRBpre:
+ case AArch64::LDRSBWpost:
+ case AArch64::LDRSBWpre:
+ case AArch64::LDRSBWroW:
+ case AArch64::LDRSBWroX:
+ case AArch64::LDRSBWui:
+ case AArch64::LDRSBXpost:
+ case AArch64::LDRSBXpre:
+ case AArch64::LDRSBXroW:
+ case AArch64::LDRSBXroX:
+ case AArch64::LDRSBXui:
+ case AArch64::LDURBi:
+ case AArch64::LDURBBi:
+ case AArch64::LDURSBWi:
+ case AArch64::LDURSBXi:
+ case AArch64::LDTRBi:
+ case AArch64::LDTRSBWi:
+ case AArch64::LDTRSBXi:
+ isLoad = true;
+ break;
+ default:
+ break;
+ }
+ return isLoad;
}
bool isLDRH(const MCInst &Inst) const {
- return (Inst.getOpcode() == AArch64::LDRHHpost ||
- Inst.getOpcode() == AArch64::LDRHHpre ||
- Inst.getOpcode() == AArch64::LDRHHroW ||
- Inst.getOpcode() == AArch64::LDRHHroX ||
- Inst.getOpcode() == AArch64::LDRHHui ||
- Inst.getOpcode() == AArch64::LDRSHWpost ||
- Inst.getOpcode() == AArch64::LDRSHWpre ||
- Inst.getOpcode() == AArch64::LDRSHWroW ||
- Inst.getOpcode() == AArch64::LDRSHWroX ||
- Inst.getOpcode() == AArch64::LDRSHWui ||
- Inst.getOpcode() == AArch64::LDRSHXpost ||
- Inst.getOpcode() == AArch64::LDRSHXpre ||
- Inst.getOpcode() == AArch64::LDRSHXroW ||
- Inst.getOpcode() == AArch64::LDRSHXroX ||
- Inst.getOpcode() == AArch64::LDRSHXui);
+ const unsigned opcode = Inst.getOpcode();
+ bool isLoad = false;
+ switch (opcode) {
+ case AArch64::LDRHpost:
+ case AArch64::LDRHHpost:
+ case AArch64::LDRHHpre:
+ case AArch64::LDRHroW:
+ case AArch64::LDRHHroW:
+ case AArch64::LDRHroX:
+ case AArch64::LDRHHroX:
+ case AArch64::LDRHHui:
+ case AArch64::LDRHui:
+ case AArch64::LDRHpre:
+ case AArch64::LDRSHWpost:
+ case AArch64::LDRSHWpre:
+ case AArch64::LDRSHWroW:
+ case AArch64::LDRSHWroX:
+ case AArch64::LDRSHWui:
+ case AArch64::LDRSHXpost:
+ case AArch64::LDRSHXpre:
+ case AArch64::LDRSHXroW:
+ case AArch64::LDRSHXroX:
+ case AArch64::LDRSHXui:
+ case AArch64::LDURHi:
+ case AArch64::LDURHHi:
+ case AArch64::LDURSHWi:
+ case AArch64::LDURSHXi:
+ case AArch64::LDTRHi:
+ case AArch64::LDTRSHWi:
+ case AArch64::LDTRSHXi:
+ isLoad = true;
+ break;
----------------
yota9 wrote:
```suggestion
return true;
```
https://github.com/llvm/llvm-project/pull/120713
More information about the llvm-commits
mailing list