diff options
| author | Jiong Wang <jiwang@tilera.com> | 2019-02-28 19:22:34 +0000 |
|---|---|---|
| committer | Jiong Wang <jiwang@tilera.com> | 2019-02-28 19:22:34 +0000 |
| commit | 0a039660fa85f725f693b5de3bf207df22bcca3d (patch) | |
| tree | 9619af3b29f9f6a98d23ef3b3e89eb611dd463ba /llvm/lib | |
| parent | 3da8bcd0a06d54cc53f7fcae998fe829a6fec094 (diff) | |
| download | bcm5719-llvm-0a039660fa85f725f693b5de3bf207df22bcca3d.tar.gz bcm5719-llvm-0a039660fa85f725f693b5de3bf207df22bcca3d.zip | |
bpf: disassembler support for XADD under sub-register mode
Like the other load/store instructions, "w" register is preferred when
disassembling BPF_STX | BPF_W | BPF_XADD.
v1 -> v2:
- Updated testcase insn-unit.s (Yonghong)
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
llvm-svn: 355127
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp b/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp index ed09e446e73..c5be7cb1a4e 100644 --- a/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp +++ b/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp @@ -171,9 +171,10 @@ DecodeStatus BPFDisassembler::getInstruction(MCInst &Instr, uint64_t &Size, if (Result == MCDisassembler::Fail) return MCDisassembler::Fail; uint8_t InstClass = getInstClass(Insn); + uint8_t InstMode = getInstMode(Insn); if ((InstClass == BPF_LDX || InstClass == BPF_STX) && getInstSize(Insn) != BPF_DW && - getInstMode(Insn) == BPF_MEM && + (InstMode == BPF_MEM || InstMode == BPF_XADD) && STI.getFeatureBits()[BPF::ALU32]) Result = decodeInstruction(DecoderTableBPFALU3264, Instr, Insn, Address, this, STI); |

