jingu kang via llvm-dev
2015-Dec-05 11:37 UTC
[llvm-dev] Question about Decoding Conflict of DisassemblerTables from TableGen
Hi All, I have faced decoding conflict of DisassemblerTables from TableGen. I have instructions with same encoding and different mnemonic among different architecture versions. I have used Predicates and AssemblerPredicates to distinguish them on Codegen and Assembler but it does not work on Disassembler. When I look at TableGen/FixedLenDecoderEmitter.cpp, once there is decoding conflict, tablegen does not generate table entry. I think it means even though there are predicates, it does not affect to the table entry. Could someone let me know how to avoid decoding conflict in this situation? If I missed something, please let me know. Thanks, JinGu Kang
Hal Finkel via llvm-dev
2015-Dec-05 13:38 UTC
[llvm-dev] Question about Decoding Conflict of DisassemblerTables from TableGen
Hi JinGu, You can use different DecoderNamespace values in order to separate out different conflict-free groups. For a simple example, look at how QPX disassembly is handled in the PowerPC backend. -Hal ----- Original Message -----> From: "jingu kang via llvm-dev" <llvm-dev at lists.llvm.org> > To: llvm-dev at lists.llvm.org > Sent: Saturday, December 5, 2015 5:37:00 AM > Subject: [llvm-dev] Question about Decoding Conflict of DisassemblerTables from TableGen > > Hi All, > > I have faced decoding conflict of DisassemblerTables from TableGen. I > have instructions with same encoding and different mnemonic among > different architecture versions. I have used Predicates and > AssemblerPredicates to distinguish them on Codegen and Assembler but > it does not work on Disassembler. When I look at > TableGen/FixedLenDecoderEmitter.cpp, once there is decoding conflict, > tablegen does not generate table entry. I think it means even though > there are predicates, it does not affect to the table entry. Could > someone let me know how to avoid decoding conflict in this situation? > If I missed something, please let me know. > > Thanks, > JinGu Kang > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-- Hal Finkel Assistant Computational Scientist Leadership Computing Facility Argonne National Laboratory
jingu kang via llvm-dev
2015-Dec-05 17:30 UTC
[llvm-dev] Question about Decoding Conflict of DisassemblerTables from TableGen
Great!!! It is working. Thank you very much Hal! Sincerely, JinGu Kang 2015-12-05 13:38 GMT+00:00 Hal Finkel <hfinkel at anl.gov>:> Hi JinGu, > > You can use different DecoderNamespace values in order to separate out different conflict-free groups. For a simple example, look at how QPX disassembly is handled in the PowerPC backend. > > -Hal > > ----- Original Message ----- >> From: "jingu kang via llvm-dev" <llvm-dev at lists.llvm.org> >> To: llvm-dev at lists.llvm.org >> Sent: Saturday, December 5, 2015 5:37:00 AM >> Subject: [llvm-dev] Question about Decoding Conflict of DisassemblerTables from TableGen >> >> Hi All, >> >> I have faced decoding conflict of DisassemblerTables from TableGen. I >> have instructions with same encoding and different mnemonic among >> different architecture versions. I have used Predicates and >> AssemblerPredicates to distinguish them on Codegen and Assembler but >> it does not work on Disassembler. When I look at >> TableGen/FixedLenDecoderEmitter.cpp, once there is decoding conflict, >> tablegen does not generate table entry. I think it means even though >> there are predicates, it does not affect to the table entry. Could >> someone let me know how to avoid decoding conflict in this situation? >> If I missed something, please let me know. >> >> Thanks, >> JinGu Kang >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> > > -- > Hal Finkel > Assistant Computational Scientist > Leadership Computing Facility > Argonne National Laboratory