Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Chen Gang S
On 2/22/15 09:08, Chen Gang S wrote: > On 2/22/15 08:25, Chris Metcalf wrote: [...] >> Similarly, if any pipeline takes an exception (a TLB fault from a memory op, >> a GPV fault from an illegal mfspr, etc) then no pipeline completes its >> action. >> > > Oh, really !! And I guess, Richard's co

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Chen Gang S
On 2/22/15 08:25, Chris Metcalf wrote: > On 2/21/2015 7:25 PM, Chen Gang S wrote: >> On 2/22/15 00:33, Richard Henderson wrote: >>> >On 02/21/2015 07:31 AM, Chen Gang S wrote: >> >> - We can still use the original pipes order: "y0, y2, y1" and "x0, x1". >>> > >>> >I guess, sure, though I

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Chris Metcalf
On 2/21/2015 7:25 PM, Chen Gang S wrote: On 2/22/15 00:33, Richard Henderson wrote: >On 02/21/2015 07:31 AM, Chen Gang S wrote: >> >> - We can still use the original pipes order: "y0, y2, y1" and "x0, x1". > >I guess, sure, though I don't think that'll help as much as you imagine. > OK, tha

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Chen Gang S
On 2/22/15 00:33, Richard Henderson wrote: > On 02/21/2015 07:31 AM, Chen Gang S wrote: >> >> - We can still use the original pipes order: "y0, y2, y1" and "x0, x1". > > I guess, sure, though I don't think that'll help as much as you imagine. > >> - y0, y2, and x0 need to use tcg temporary vari

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Richard Henderson
On 02/21/2015 07:31 AM, Chen Gang S wrote: > > Oh, we can not only assume y1 and x1 is the last execution in a bundle, > e.g. in __libc_start_main: > >11330: c6f106c685928d8a{ addi r10, sp, 40 ; addi r13, sp, 32 > ; st r25, r30 } >11338: 286201401fca{ move

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Chen Gang S
I guess, y2 does not need tcg temporary variables either, since it is only for ld/st operation (all memory operations must be only processed by y2 or x1). At present, I can generate the tcg code for _start TB block, and can execute to 2nd TB block __libc_start_main (although I don't know whether

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-21 Thread Chen Gang S
Oh, we can not only assume y1 and x1 is the last execution in a bundle, e.g. in __libc_start_main: 11330: c6f106c685928d8a{ addi r10, sp, 40 ; addi r13, sp, 32 ; st r25, r30 } 11338: 286201401fca{ moveli r10, 0 ; st r10, r0 } In this case, r10 will be over

Re: [Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-20 Thread Chen Gang S
On 2/21/15 11:05, Chen Gang S wrote: > At present finish decoding the first TB block: _start. Always let y1 and > x1 pipe at the last which may content jump instructions. > > The related disassembly code is below which is the same as the objdump: > > y0: 500bfdb4 move r52, r54 > y2:

[Qemu-devel] [PATCH] target-tilegx: Finish decoding the first TB block.

2015-02-20 Thread Chen Gang S
At present finish decoding the first TB block: _start. Always let y1 and x1 pipe at the last which may content jump instructions. The related disassembly code is below which is the same as the objdump: y0: 500bfdb4 move r52, r54 y2: 02080760 ld r1, r54 y1: 1c064000