* [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads @ 2018-03-06 6:42 Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 2/3] ppc64.risu: Fix pattern for load qword Sandipan Das ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Sandipan Das @ 2018-03-06 6:42 UTC (permalink / raw) To: peter.maydell, joserz; +Cc: nikunj, naveen.n.rao, qemu-devel The patterns for the following instructions are added: * Load Byte and Zero (lbz) * Load Byte and Zero with Update (lbzu) * Load Byte and Zero Indexed (lbzx) * Load Byte and Zero with Update Indexed (lbzux) * Load Doubleword (ld) Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com> --- ppc64.risu | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ppc64.risu b/ppc64.risu index e2fd4f6..13b95ac 100644 --- a/ppc64.risu +++ b/ppc64.risu @@ -887,6 +887,31 @@ FTSQRT PPC64LE 111111 bf:3 0000000 frb:5 00101000000 ISEL PPC64LE 011111 rt:5 ra:5 rb:5 bc:5 011110 \ !constraints { $rt != 1 && $ra != 1 && $rb != 1 && $rt != 13 && $ra != 13 && $rb != 13; } +# format:D book:I page:48 v:P1 lbz Load Byte & Zero +LBZ PPC64LE 100010 rt:5 ra:5 imm:16 \ +!constraints { $rt != 1 && $ra != 1 && $rt != 13 && $ra != 13 && $ra != 0 && $ra != $rt && $imm <= 32752; } \ +!memory { reg_plus_imm($ra, $imm); } + +# format:D book:I page:48 v:P1 lbzu Load Byte & Zero with Update +LBZU PPC64LE 100011 rt:5 ra:5 imm:16 \ +!constraints { $rt != 1 && $ra != 1 && $rt != 13 && $ra != 13 && $ra != 0 && $ra != $rt && $imm <= 32752; } \ +!memory { reg_plus_imm($ra, $imm); } + +# format:X book:I page:49 v:P1 lbzux Load Byte & Zero with Update Indexed +LBZUX PPC64LE 011111 rt:5 ra:5 rb:5 00011101110 \ +!constraints { $rt != 1 && $ra != 1 && $rb != 1 && $rt != 13 && $ra != 13 && $rb != 13 && $ra != 0 && $ra != $rt && $ra != $rb && $rt != $rb; } \ +!memory { reg_plus_reg($ra, $rb); } + +# format:X book:I page:49 v:P1 lbzx Load Byte & Zero Indexed +LBZX PPC64LE 011111 rt:5 ra:5 rb:5 00010101110 \ +!constraints { $rt != 1 && $ra != 1 && $rb != 1 && $rt != 13 && $ra != 13 && $rb != 13 && $ra != 0 && $ra != $rt && $ra != $rb && $rt != $rb; } \ +!memory { reg_plus_reg($ra, $rb); } + +# format:DS book:I page:53 PPC ld Load Dword +LD PPC64LE 111010 rt:5 ra:5 imm:14 00 \ +!constraints { $rt != 1 && $ra != 1 && $rt != 13 && $ra != 13 && $ra != 0 && $ra != $rt && $imm <= 8176; } \ +!memory { reg_plus_imm($ra, $imm << 2); } + # format:X book:I page:62 v2.06 ldbrx Load Dword Byte-Reverse Indexed LDBRX PPC64LE 011111 rt:5 ra:5 rb:5 10000101000 \ !constraints { $rt != 1 && $ra != 1 && $rb != 1 && $rt != 13 && $ra != 13 && $rb != 13 && $ra != 0 && $ra != $rt && $ra != $rb && $rt != $rb; } \ -- 2.14.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH risu 2/3] ppc64.risu: Fix pattern for load qword 2018-03-06 6:42 [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Sandipan Das @ 2018-03-06 6:42 ` Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 3/3] risu_reginfo_ppc64.c: Fix register name prefix Sandipan Das 2018-03-06 11:39 ` [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Sandipan Das @ 2018-03-06 6:42 UTC (permalink / raw) To: peter.maydell, joserz; +Cc: nikunj, naveen.n.rao, qemu-devel The pattern for the Load Quadword (lq) instruction is fixed. If rtp is 0 or 12, the instruction will overwrite r0, r1 or r12, r13 respectively. However, r1 is the stack frame pointer and r13 is the thread pointer. So, overwriting them can cause a crash. This is avoided by putting a constraint to prevent rtp from being 0 or 12. For a given effective address (ea), this instruction loads two dwords from ea and ea+8. However, if ea is the start address of the current stack frame, then the value of the back chain dword from the previous stack frame, which is at ea+8, is loaded on to one of the registers. This can cause a mismatch as the addresses may vary across the master and the apprentice instances. This is avoided by always adding 8 to the offset used for calculating the ea. Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com> --- ppc64.risu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ppc64.risu b/ppc64.risu index 13b95ac..2018103 100644 --- a/ppc64.risu +++ b/ppc64.risu @@ -1050,8 +1050,8 @@ LHZX PPC64LE 011111 rt:5 ra:5 rb:5 01000101110 \ # format:DQ book:I page:59 v2.03 lq Load Qword LQ PPC64LE 111000 rtp:5 ra:5 imm:12 0000 \ -!constraints { $rtp % 2 == 0 && $ra != 1 && $ra != 13 && $ra != 0 && $ra != $rtp && $imm <= 2032; } \ -!memory { reg_plus_imm($ra, $imm << 4); } +!constraints { $rtp % 2 == 0 && $rtp != 0 && $rtp != 12 && $ra != 1 && $ra != 13 && $ra != 0 && $ra != $rtp && $imm <= 2032; } \ +!memory { reg_plus_imm($ra, ($imm << 4) + 8); } # format:X book:I page:65 v:P1 lswi Load String Word Immediate LSWI PPC64LE 011111 rt:5 ra:5 rb:5 10010101010 \ -- 2.14.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Qemu-devel] [PATCH risu 3/3] risu_reginfo_ppc64.c: Fix register name prefix 2018-03-06 6:42 [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 2/3] ppc64.risu: Fix pattern for load qword Sandipan Das @ 2018-03-06 6:42 ` Sandipan Das 2018-03-06 11:39 ` [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Peter Maydell 2 siblings, 0 replies; 5+ messages in thread From: Sandipan Das @ 2018-03-06 6:42 UTC (permalink / raw) To: peter.maydell, joserz; +Cc: nikunj, naveen.n.rao, qemu-devel Use 'f' instead of 'r' as the prefix when dumping the values of floating-point registers. Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com> --- risu_reginfo_ppc64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/risu_reginfo_ppc64.c b/risu_reginfo_ppc64.c index eb9c12b..5f33648 100644 --- a/risu_reginfo_ppc64.c +++ b/risu_reginfo_ppc64.c @@ -122,7 +122,7 @@ int reginfo_dump(struct reginfo *ri, FILE * f) fprintf(f, "\tdscr : %16lx\n\n", ri->gregs[44]); for (i = 0; i < 16; i++) { - fprintf(f, "\tf%2d: %.4f\tr%2d: %.4f\n", i, ri->fpregs[i], + fprintf(f, "\tf%2d: %.4f\tf%2d: %.4f\n", i, ri->fpregs[i], i + 16, ri->fpregs[i + 16]); } fprintf(f, "\tfpscr: %f\n\n", ri->fpregs[32]); @@ -167,7 +167,7 @@ int reginfo_dump_mismatch(struct reginfo *m, struct reginfo *a, FILE *f) } if (m->fpregs[i] != a->fpregs[i]) { - fprintf(f, "Mismatch: Register r%d\n", i); + fprintf(f, "Mismatch: Register f%d\n", i); fprintf(f, "m: [%f] != a: [%f]\n", m->fpregs[i], a->fpregs[i]); } } -- 2.14.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads 2018-03-06 6:42 [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 2/3] ppc64.risu: Fix pattern for load qword Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 3/3] risu_reginfo_ppc64.c: Fix register name prefix Sandipan Das @ 2018-03-06 11:39 ` Peter Maydell 2018-03-06 11:42 ` Sandipan Das 2 siblings, 1 reply; 5+ messages in thread From: Peter Maydell @ 2018-03-06 11:39 UTC (permalink / raw) To: Sandipan Das Cc: Jose Ricardo Ziviani, Nikunj A Dadhania, naveen.n.rao, QEMU Developers On 6 March 2018 at 06:42, Sandipan Das <sandipan@linux.vnet.ibm.com> wrote: > The patterns for the following instructions are added: > * Load Byte and Zero (lbz) > * Load Byte and Zero with Update (lbzu) > * Load Byte and Zero Indexed (lbzx) > * Load Byte and Zero with Update Indexed (lbzux) > * Load Doubleword (ld) > > Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com> Hi -- this patchset doesn't seem to have a cover letter. Could you resend it with one, please? Our automated patch handling tools all expect a cover letter if there's more than one patch in a set. thanks -- PMM ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads 2018-03-06 11:39 ` [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Peter Maydell @ 2018-03-06 11:42 ` Sandipan Das 0 siblings, 0 replies; 5+ messages in thread From: Sandipan Das @ 2018-03-06 11:42 UTC (permalink / raw) To: Peter Maydell Cc: Jose Ricardo Ziviani, Nikunj A Dadhania, naveen.n.rao, QEMU Developers On 03/06/2018 05:09 PM, Peter Maydell wrote: > On 6 March 2018 at 06:42, Sandipan Das <sandipan@linux.vnet.ibm.com> wrote: >> The patterns for the following instructions are added: >> * Load Byte and Zero (lbz) >> * Load Byte and Zero with Update (lbzu) >> * Load Byte and Zero Indexed (lbzx) >> * Load Byte and Zero with Update Indexed (lbzux) >> * Load Doubleword (ld) >> >> Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com> > > Hi -- this patchset doesn't seem to have a cover letter. Could > you resend it with one, please? Our automated patch handling > tools all expect a cover letter if there's more than one patch > in a set. > > thanks > -- PMM > > Sure -- With Regards, Sandipan ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-03-06 11:42 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-06 6:42 [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 2/3] ppc64.risu: Fix pattern for load qword Sandipan Das 2018-03-06 6:42 ` [Qemu-devel] [PATCH risu 3/3] risu_reginfo_ppc64.c: Fix register name prefix Sandipan Das 2018-03-06 11:39 ` [Qemu-devel] [PATCH risu 1/3] ppc64.risu: Add missing byte and dword loads Peter Maydell 2018-03-06 11:42 ` Sandipan Das
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).