Annotation of qemu/tests/cris/check_moveq.c, revision 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.