Annotation of qemu/tests/cris/check_moveq.c, revision 1.1.1.1

1.1       root        1: #include <stdio.h>
                      2: #include <stdlib.h>
                      3: #include <stdint.h>
                      4: #include "sys.h"
                      5: #include "crisutils.h"
                      6: 
                      7: #define cris_moveq(dst, src) \
                      8:                asm volatile ("moveq %1, %0\n" : "=r" (dst) : "i" (src));
                      9: 
                     10: 
                     11: 
                     12: int main(void)
                     13: {
                     14:        int t;
                     15: 
                     16:        cris_tst_cc_init();
                     17:        asm volatile ("setf\tzvnc\n");
                     18:        cris_moveq(t, 10);
                     19:        cris_tst_cc(1, 1, 1, 1);
                     20:        if (t != 10)
                     21:                err();
                     22: 
                     23:        /* make sure moveq doesnt clobber the zflag.  */
                     24:        cris_tst_cc_init();
                     25:        asm volatile ("setf vnc\n");
                     26:        asm volatile ("clearf z\n");
                     27:        cris_moveq(t, 0);
                     28:        cris_tst_cc(1, 0, 1, 1);
                     29:        if (t != 0)
                     30:                err();
                     31: 
                     32:        /* make sure moveq doesnt clobber the nflag.
                     33:           Also check large immediates  */
                     34:        cris_tst_cc_init();
                     35:        asm volatile ("setf zvc\n");
                     36:        asm volatile ("clearf n\n");
                     37:        cris_moveq(t, -31);
                     38:        cris_tst_cc(0, 1, 1, 1);
                     39:        if (t != -31)
                     40:                err();
                     41: 
                     42:        cris_tst_cc_init();
                     43:        asm volatile ("setf nzvc\n");
                     44:        cris_moveq(t, 31);
                     45:        cris_tst_cc(1, 1, 1, 1);
                     46:        if (t != 31)
                     47:                err();
                     48: 
                     49:        pass();
                     50:        return 0;
                     51: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.