Annotation of qemu/tests/cris/check_addoq.c, revision 1.1.1.2

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: /* this would be better to do in asm, it's an orgy in GCC inline asm now.  */
                      8: 
                      9: /* ACR will be clobbered.  */
                     10: #define cris_addoq(o, v) \
                     11:        asm volatile ("addoq\t%1, %0, $acr\n" : : "r" (v), "i" (o) : "acr");
                     12: 
                     13: 
                     14: int main(void)
                     15: {
                     16:        int x[3] = {0x55aa77ff, 0xccff2244, 0x88ccee19};
                     17:        int *p, *t = x + 1;
                     18: 
                     19:        cris_tst_cc_init();
                     20:        asm volatile ("setf\tzvnc\n");
                     21:        cris_addoq(0, t);
                     22:        cris_tst_cc(1, 1, 1, 1);
                     23:        asm volatile ("move.d\t$acr, %0\n" : "=r" (p));
                     24:        if (*p != 0xccff2244)
                     25:                err();
                     26: 
                     27:        cris_tst_cc_init();
                     28:        asm volatile ("setf\tzvnc\n");
                     29:        cris_addoq(4, t);
1.1.1.2 ! root       30:        cris_tst_cc(0, 0, 0, 0);
1.1       root       31:        asm volatile ("move.d\t$acr, %0\n" : "=r" (p));
                     32:        if (*p != 0x88ccee19)
                     33:                err();
                     34: 
                     35:        cris_tst_cc_init();
                     36:        asm volatile ("clearf\tzvnc\n");
                     37:        cris_addoq(-8, t + 1);
                     38:        cris_tst_cc(0, 0, 0, 0);
                     39:        asm volatile ("move.d\t$acr, %0\n" : "=r" (p));
                     40:        if (*p != 0x55aa77ff)
                     41:                err();
                     42:        pass();
                     43:        return 0;
                     44: }

unix.superglobalmegacorp.com

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