diff options
author | Jinsong Ji <jji@us.ibm.com> | 2019-06-27 14:11:31 +0000 |
---|---|---|
committer | Jinsong Ji <jji@us.ibm.com> | 2019-06-27 14:11:31 +0000 |
commit | 157b073fa54eb7ca30774726754fd4859c236177 (patch) | |
tree | 4b83c761f024893d8e0a5dba312114d088b70391 /llvm/lib/Target/PowerPC/Disassembler | |
parent | 408fc0849ea1f630baa85d5bf78ee359c52585e1 (diff) | |
download | bcm5719-llvm-157b073fa54eb7ca30774726754fd4859c236177.tar.gz bcm5719-llvm-157b073fa54eb7ca30774726754fd4859c236177.zip |
[PowerPC][HTM] Fix disassembling buffer overflow for tabortdc and others
This was reported in https://bugs.llvm.org/show_bug.cgi?id=41751
llvm-mc aborted when disassembling tabortdc.
This patch try to clean up TM related DAGs.
* Fixes the problem by remove explicit output of cr0, and put it as implicit def.
* Update int_ppc_tbegin pattern to accommodate the implicit def of cr0.
* Update the TCHECK operand and int_ppc_tcheck accordingly.
* Add some builtin test and disassembly tests.
* Remove unused CRRC0/crrc0
Differential Revision: https://reviews.llvm.org/D61935
llvm-svn: 364544
Diffstat (limited to 'llvm/lib/Target/PowerPC/Disassembler')
-rw-r--r-- | llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp b/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp index 4814529c330..7a8af57961c 100644 --- a/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp +++ b/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp @@ -86,12 +86,6 @@ static DecodeStatus DecodeCRRCRegisterClass(MCInst &Inst, uint64_t RegNo, return decodeRegisterClass(Inst, RegNo, CRRegs); } -static DecodeStatus DecodeCRRC0RegisterClass(MCInst &Inst, uint64_t RegNo, - uint64_t Address, - const void *Decoder) { - return decodeRegisterClass(Inst, RegNo, CRRegs); -} - static DecodeStatus DecodeCRBITRCRegisterClass(MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) { |