[Qemu-devel] [PATCH 0/6] target/rx: Improvements to disassembly

Richard Henderson posted 6 patches 4 years, 11 months ago
Failed in applying to current master (apply log)
target/rx/disas.c | 366 +++++++++++++++++++++-------------------------
1 file changed, 166 insertions(+), 200 deletions(-)
[Qemu-devel] [PATCH 0/6] target/rx: Improvements to disassembly
Posted by Richard Henderson 4 years, 11 months ago
Here's a sample of the new output, taken from u-boot.bin:

IN:
0xfff8000a:  fb 12 00 01 00 00          mov.l   #0x00000100, r1
0xfff80010:  fb 32 f0 13 00 00          mov.l   #0x000013f0, r3
0xfff80016:  43 13                      sub     r1, r3
0xfff80018:  fb 22 00 ea f9 ff          mov.l   #-398848, r2
0xfff8001e:  7f 8f                      smovf
0xfff80020:  ef 01                      mov.l   r0, r1
0xfff80022:  05 1e 32 00                bsr.a   fff83240

IN:
0xfff83240:  72 11 5c fb                add     #-1188, r1
0xfff83244:  75 21 f0                   and     #-16, r1
0xfff83247:  02                         rts

Obviously there are still a few inconsistencies in the
format strings used for the immediates, but the format
is readable and it is easy to look at the opcode to see
how our decode compares to the manual.


r~


Richard Henderson (6):
  target/rx: Disassemble rx_index_addr into a string
  target/rx: Replace operand with prt_ldmi in disassembler
  target/rx: Use prt_ldmi for XCHG_mr disassembly
  target/rx: Emit all disassembly in one prt()
  target/rx: Collect all bytes during disassembly
  target/rx: Dump bytes for each insn during disassembly

 target/rx/disas.c | 366 +++++++++++++++++++++-------------------------
 1 file changed, 166 insertions(+), 200 deletions(-)

-- 
2.17.1


Re: [Qemu-devel] [PATCH 0/6] target/rx: Improvements to disassembly
Posted by Yoshinori Sato 4 years, 10 months ago
On Fri, 24 May 2019 00:07:57 +0900,
Richard Henderson wrote:
> 
> Here's a sample of the new output, taken from u-boot.bin:
> 
> IN:
> 0xfff8000a:  fb 12 00 01 00 00          mov.l   #0x00000100, r1
> 0xfff80010:  fb 32 f0 13 00 00          mov.l   #0x000013f0, r3
> 0xfff80016:  43 13                      sub     r1, r3
> 0xfff80018:  fb 22 00 ea f9 ff          mov.l   #-398848, r2
> 0xfff8001e:  7f 8f                      smovf
> 0xfff80020:  ef 01                      mov.l   r0, r1
> 0xfff80022:  05 1e 32 00                bsr.a   fff83240
> 
> IN:
> 0xfff83240:  72 11 5c fb                add     #-1188, r1
> 0xfff83244:  75 21 f0                   and     #-16, r1
> 0xfff83247:  02                         rts
> 
> Obviously there are still a few inconsistencies in the
> format strings used for the immediates, but the format
> is readable and it is easy to look at the opcode to see
> how our decode compares to the manual.
>

Hmm.
The output of the immediate value should be the same as the output of objdump.
I do not think that it is the proper format, but I did that because
it was useful for comparing the results.

> 
> r~
> 
> 
> Richard Henderson (6):
>   target/rx: Disassemble rx_index_addr into a string
>   target/rx: Replace operand with prt_ldmi in disassembler
>   target/rx: Use prt_ldmi for XCHG_mr disassembly
>   target/rx: Emit all disassembly in one prt()
>   target/rx: Collect all bytes during disassembly
>   target/rx: Dump bytes for each insn during disassembly
> 
>  target/rx/disas.c | 366 +++++++++++++++++++++-------------------------
>  1 file changed, 166 insertions(+), 200 deletions(-)
> 
> -- 
> 2.17.1
> 

-- 
Yosinori Sato

Re: [Qemu-devel] [PATCH 0/6] target/rx: Improvements to disassembly
Posted by Aleksandar Markovic 4 years, 10 months ago
On May 27, 2019 5:44 PM, "Yoshinori Sato" <ysato@users.sourceforge.jp>
wrote:
>
> On Fri, 24 May 2019 00:07:57 +0900,
> Richard Henderson wrote:
> >
> > Here's a sample of the new output, taken from u-boot.bin:
> >
> > IN:
> > 0xfff8000a:  fb 12 00 01 00 00          mov.l   #0x00000100, r1
> > 0xfff80010:  fb 32 f0 13 00 00          mov.l   #0x000013f0, r3
> > 0xfff80016:  43 13                      sub     r1, r3
> > 0xfff80018:  fb 22 00 ea f9 ff          mov.l   #-398848, r2
> > 0xfff8001e:  7f 8f                      smovf
> > 0xfff80020:  ef 01                      mov.l   r0, r1
> > 0xfff80022:  05 1e 32 00                bsr.a   fff83240
> >
> > IN:
> > 0xfff83240:  72 11 5c fb                add     #-1188, r1
> > 0xfff83244:  75 21 f0                   and     #-16, r1
> > 0xfff83247:  02                         rts
> >
> > Obviously there are still a few inconsistencies in the
> > format strings used for the immediates, but the format
> > is readable and it is easy to look at the opcode to see
> > how our decode compares to the manual.
> >
>
> Hmm.
> The output of the immediate value should be the same as the output of
objdump.
> I do not think that it is the proper format, but I did that because
> it was useful for comparing the results.
>

We in MIPS also use objdump output as the reference and desired output for
QEMU disassembler (not that we are always succeeding in doing that)

Inventing propriatery QEMU output for some instructions is in my view
counterproductive and confusing.

Sincerely,
Aleksandar

> >
> > r~
> >
> >
> > Richard Henderson (6):
> >   target/rx: Disassemble rx_index_addr into a string
> >   target/rx: Replace operand with prt_ldmi in disassembler
> >   target/rx: Use prt_ldmi for XCHG_mr disassembly
> >   target/rx: Emit all disassembly in one prt()
> >   target/rx: Collect all bytes during disassembly
> >   target/rx: Dump bytes for each insn during disassembly
> >
> >  target/rx/disas.c | 366 +++++++++++++++++++++-------------------------
> >  1 file changed, 166 insertions(+), 200 deletions(-)
> >
> > --
> > 2.17.1
> >
>
> --
> Yosinori Sato
>
Re: [Qemu-devel] [PATCH 0/6] target/rx: Improvements to disassembly
Posted by Yoshinori Sato 4 years, 10 months ago
On Tue, 28 May 2019 02:47:40 +0900,
Aleksandar Markovic wrote:
> 
> On May 27, 2019 5:44 PM, "Yoshinori Sato" <ysato@users.sourceforge.jp>
> wrote:
> >
> > On Fri, 24 May 2019 00:07:57 +0900,
> > Richard Henderson wrote:
> > >
> > > Here's a sample of the new output, taken from u-boot.bin:
> > >
> > > IN:
> > > 0xfff8000a:  fb 12 00 01 00 00          mov.l   #0x00000100, r1
> > > 0xfff80010:  fb 32 f0 13 00 00          mov.l   #0x000013f0, r3
> > > 0xfff80016:  43 13                      sub     r1, r3
> > > 0xfff80018:  fb 22 00 ea f9 ff          mov.l   #-398848, r2
> > > 0xfff8001e:  7f 8f                      smovf
> > > 0xfff80020:  ef 01                      mov.l   r0, r1
> > > 0xfff80022:  05 1e 32 00                bsr.a   fff83240
> > >
> > > IN:
> > > 0xfff83240:  72 11 5c fb                add     #-1188, r1
> > > 0xfff83244:  75 21 f0                   and     #-16, r1
> > > 0xfff83247:  02                         rts
> > >
> > > Obviously there are still a few inconsistencies in the
> > > format strings used for the immediates, but the format
> > > is readable and it is easy to look at the opcode to see
> > > how our decode compares to the manual.
> > >
> >
> > Hmm.
> > The output of the immediate value should be the same as the output of
> objdump.
> > I do not think that it is the proper format, but I did that because
> > it was useful for comparing the results.
> >
> 
> We in MIPS also use objdump output as the reference and desired output for
> QEMU disassembler (not that we are always succeeding in doing that)
> 
> Inventing propriatery QEMU output for some instructions is in my view
> counterproductive and confusing.
> 
> Sincerely,
> Aleksandar

I also considered it. Although the opcodes of RX were licensed as GPLv3,
they were not usable as they were.

> 
> > >
> > > r~
> > >
> > >
> > > Richard Henderson (6):
> > >   target/rx: Disassemble rx_index_addr into a string
> > >   target/rx: Replace operand with prt_ldmi in disassembler
> > >   target/rx: Use prt_ldmi for XCHG_mr disassembly
> > >   target/rx: Emit all disassembly in one prt()
> > >   target/rx: Collect all bytes during disassembly
> > >   target/rx: Dump bytes for each insn during disassembly
> > >
> > >  target/rx/disas.c | 366 +++++++++++++++++++++-------------------------
> > >  1 file changed, 166 insertions(+), 200 deletions(-)
> > >
> > > --
> > > 2.17.1
> > >
> >
> > --
> > Yosinori Sato
> >

-- 
Yosinori Sato

Re: [Qemu-devel] [PATCH 0/6] target/rx: Improvements to disassembly
Posted by Richard Henderson 4 years, 10 months ago
On 5/27/19 10:39 AM, Yoshinori Sato wrote:
> On Fri, 24 May 2019 00:07:57 +0900,
> Richard Henderson wrote:
>> Obviously there are still a few inconsistencies in the
>> format strings used for the immediates, but the format
>> is readable and it is easy to look at the opcode to see
>> how our decode compares to the manual.
>>
> 
> Hmm.
> The output of the immediate value should be the same as the output of objdump.
> I do not think that it is the proper format, but I did that because
> it was useful for comparing the results.

This is a fair comment.

Of course, we could also simultaneously fix inconsistencies in objdump.  I
doubt that any of these cases are intentionally different.

Something for later, perhaps.


r~