On 2/17/15 08:11, Chris Metcalf wrote: > On 2/16/2015 6:46 PM, Peter Maydell wrote: >> On 17 February 2015 at 08:08, Chen Gang S <gang.c...@sunrus.com.cn> wrote: >>> On 2/16/15 23:24, Max Filippov wrote: >>>> Disassembler is not a crucial part of QEMU target. >>> For me, it is necessary. We need disassemble target binary instructions >>> (recognize them), then translate them into tcg instructions which are >>> grouped by Translate Block. >> No, Max is correct. What QEMU calls the "disassembler" is just >> used for debug logging: it is code that goes from target binary >> instructions to printed display of assembly language instructions. >> This is completely separate code from the code in target-*/translate.c >> which decodes target binary instructions and emits TCG opcodes. >> That code is generally called the translator or the decoder, and >> it is always written from scratch specifically for QEMU. Don't >> try to reuse code from binutils there. > > The kernel disassembly that Chen Gang is looking at is basically just an > instruction recognizer; it doesn't even include text strings for opcodes, > for example. But my guess is that it is exactly the right starting building > block for decoding target binary instructions. >
Excuse me, I am not quite familiar with the GPL license, so I guess we are misunderstanding with each other. - it is necessary to disassemble/decode target binary instructions. - I want to write the decoder in translate.c according to binutils/ kernel disassembler (also need consider about "BFD_RELOC" and "!__KERNEL__ && !__LIBC__"). - If I reference to binutils source code, I am not quite sure whether I break the license or not (is it illegal?). Thanks. -- Chen Gang Open, share, and attitude like air, water, and life which God blessed