From e44e3482bdb4d0ebde2d8b41830ac2cdb07948fb Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Fri, 28 Aug 2015 09:58:54 +0800 Subject: Add qemu 2.4.0 Change-Id: Ic99cbad4b61f8b127b7dc74d04576c0bcbaaf4f5 Signed-off-by: Yang Zhang --- qemu/tests/tcg/cris/check_moveq.c | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 qemu/tests/tcg/cris/check_moveq.c (limited to 'qemu/tests/tcg/cris/check_moveq.c') diff --git a/qemu/tests/tcg/cris/check_moveq.c b/qemu/tests/tcg/cris/check_moveq.c new file mode 100644 index 000000000..80f2dff6a --- /dev/null +++ b/qemu/tests/tcg/cris/check_moveq.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include "sys.h" +#include "crisutils.h" + +#define cris_moveq(dst, src) \ + asm volatile ("moveq %1, %0\n" : "=r" (dst) : "i" (src)); + + + +int main(void) +{ + int t; + + cris_tst_cc_init(); + asm volatile ("setf\tzvnc\n"); + cris_moveq(t, 10); + cris_tst_cc(1, 1, 1, 1); + if (t != 10) + err(); + + /* make sure moveq doesn't clobber the zflag. */ + cris_tst_cc_init(); + asm volatile ("setf vnc\n"); + asm volatile ("clearf z\n"); + cris_moveq(t, 0); + cris_tst_cc(1, 0, 1, 1); + if (t != 0) + err(); + + /* make sure moveq doesn't clobber the nflag. + Also check large immediates */ + cris_tst_cc_init(); + asm volatile ("setf zvc\n"); + asm volatile ("clearf n\n"); + cris_moveq(t, -31); + cris_tst_cc(0, 1, 1, 1); + if (t != -31) + err(); + + cris_tst_cc_init(); + asm volatile ("setf nzvc\n"); + cris_moveq(t, 31); + cris_tst_cc(1, 1, 1, 1); + if (t != 31) + err(); + + pass(); + return 0; +} -- cgit 1.2.3-korg