We should really try to get this header file generated if possible. 
> On Feb 24, 2015, at 1:19 PM, Keno Fischer <kfisc...@college.harvard.edu> 
> wrote:
> 
> The basic problem is the following. In, LLDB I get an instruction from the 
> target and then I ask the LLVM disassembler to disassemble it for me. 
> Depending on the instruction and what the arguments are, I can now construct 
> an unwind plan. I get an MCInst back from the disassembler, so what I want to 
> do is sth like:
> 
> if (Inst.getOpcode() == Mips::Addiu || Inst.getOpcode() == Mips::DAddiu) {
> // This is an addiu instruction, look at the registers and construct the 
> unwind plan
> }
> 
> but that enum is the one that's tablegen'd. I guess a possible interface 
> would be to ask for the opcode of an instruction by name? Seems somewhat ugly 
> though.
> 
> 
> On Tue, Feb 24, 2015 at 4:09 PM, Eric Christopher <echri...@gmail.com> wrote:
> 
> 
> On Tue Feb 24 2015 at 1:03:43 PM Keno Fischer <kfisc...@college.harvard.edu> 
> wrote:
> Hello everyone,
> 
> in http://reviews.llvm.org/D7696 bhushan added a mips64 UnwindAssembly plugin 
> (a plugin that looks at assembly code to find out how to unwind the stack 
> frame). Since I was about to write such a plugin (though for mips32) myself, 
> I used it as a starting point for a slightly different implementation [1], 
> replacing hard coded instruction encodings by calls to the LLVM disassembler. 
> This works great, except that the necessary header that defines the enum to 
> interpret the opcode in MCInst is generated by llvm during the build process 
> using tablegen and is hence not a public header. What is the best solution to 
> be able to use this information from lldb (which needs to be able to build 
> against a prebuilt copy of LLVM)? Would it make sense to move the appropriate 
> .td to llvm/include/Target/Mips, so lldb could re-tablegen it and obtain the 
> same header (I assume tablegening is deterministic?)?
> 
> Ugh no. (Though yes, it is deterministic afaik).
>  
> Does anybody see any other good solutions?
> 
> 
> Develop an interface that works and have lldb use that? Might need to change 
> things to have certain bits be made public if necessary, but I'd want more 
> details there.
> 
> -eric 
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev


_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to