Message ID | 1461152447-11381-1-git-send-email-lvivier@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 20.04.2016 13:40, Laurent Vivier wrote: > As for lswi, lswx is supposed to cause an alignment exception in > little endian mode, but QEMU does not support it. So in case we do > not get an exception, this is an expected failure and we run the other > tests. > > Signed-off-by: Laurent Vivier <lvivier@redhat.com> > --- > v2: move report("partial",...) out of #if..#endif block > > powerpc/emulator.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/powerpc/emulator.c b/powerpc/emulator.c > index 4dc341f..0e5f7a3 100644 > --- a/powerpc/emulator.c > +++ b/powerpc/emulator.c > @@ -245,11 +245,18 @@ static void test_lswx(void) > "xer", "r11", "r12", "memory"); > > #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ > - report("alignment", alignment); > - return; > -#else > - report("partial", regs[0] == 0x01020300 && regs[1] == (uint64_t)-1); > + /* > + * lswx is supposed to cause an alignment exception in little endian > + * mode, but QEMU does not support it. So in case we do not get an > + * exception, this is an expected failure and we run the other tests > + */ > + report_xfail("alignment", !alignment, alignment); > + if (alignment) { > + report_prefix_pop(); > + return; > + } > #endif > + report("partial", regs[0] == 0x01020300 && regs[1] == (uint64_t)-1); > > /* check an old know bug: the number of bytes is used as > * the number of registers, so try 32 bytes. > Looks fine! Reviewed-by: Thomas Huth <thuth@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 20 Apr 2016 13:40:47 +0200 Laurent Vivier <lvivier@redhat.com> wrote: > As for lswi, lswx is supposed to cause an alignment exception in > little endian mode, but QEMU does not support it. So in case we do > not get an exception, this is an expected failure and we run the other > tests. > > Signed-off-by: Laurent Vivier <lvivier@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> > --- > v2: move report("partial",...) out of #if..#endif block > > powerpc/emulator.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/powerpc/emulator.c b/powerpc/emulator.c > index 4dc341f..0e5f7a3 100644 > --- a/powerpc/emulator.c > +++ b/powerpc/emulator.c > @@ -245,11 +245,18 @@ static void test_lswx(void) > "xer", "r11", "r12", "memory"); > > #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ > - report("alignment", alignment); > - return; > -#else > - report("partial", regs[0] == 0x01020300 && regs[1] == (uint64_t)-1); > + /* > + * lswx is supposed to cause an alignment exception in little endian > + * mode, but QEMU does not support it. So in case we do not get an > + * exception, this is an expected failure and we run the other tests > + */ > + report_xfail("alignment", !alignment, alignment); > + if (alignment) { > + report_prefix_pop(); > + return; > + } > #endif > + report("partial", regs[0] == 0x01020300 && regs[1] == (uint64_t)-1); > > /* check an old know bug: the number of bytes is used as > * the number of registers, so try 32 bytes. > -- > 2.5.5 >
diff --git a/powerpc/emulator.c b/powerpc/emulator.c index 4dc341f..0e5f7a3 100644 --- a/powerpc/emulator.c +++ b/powerpc/emulator.c @@ -245,11 +245,18 @@ static void test_lswx(void) "xer", "r11", "r12", "memory"); #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ - report("alignment", alignment); - return; -#else - report("partial", regs[0] == 0x01020300 && regs[1] == (uint64_t)-1); + /* + * lswx is supposed to cause an alignment exception in little endian + * mode, but QEMU does not support it. So in case we do not get an + * exception, this is an expected failure and we run the other tests + */ + report_xfail("alignment", !alignment, alignment); + if (alignment) { + report_prefix_pop(); + return; + } #endif + report("partial", regs[0] == 0x01020300 && regs[1] == (uint64_t)-1); /* check an old know bug: the number of bytes is used as * the number of registers, so try 32 bytes.
As for lswi, lswx is supposed to cause an alignment exception in little endian mode, but QEMU does not support it. So in case we do not get an exception, this is an expected failure and we run the other tests. Signed-off-by: Laurent Vivier <lvivier@redhat.com> --- v2: move report("partial",...) out of #if..#endif block powerpc/emulator.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)