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

Reply via email to