Annotation of qemu/tests/cris/check_addc.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: extern inline int cris_addc(int a, const int b) {
                      8:        asm ("addc\t%1, %0\n" : "+r" (a) : "r" (b));
                      9:        return a;
                     10: }
                     11: 
                     12: #define verify_addc(a, b, res, n, z, v, c)  \
                     13: {                                           \
                     14:        int r;                              \
                     15:        r = cris_addc((a), (b));            \
                     16:        cris_tst_cc((n), (z), (v), (c));    \
                     17:        if (r != (res))                     \
                     18:                err();                      \
                     19: }
                     20: 
                     21: int main(void)
                     22: {
                     23:        cris_tst_cc_init();
                     24:        asm volatile ("clearf cz");
                     25:        verify_addc(0, 0, 0, 0, 0, 0, 0);
                     26: 
                     27:        cris_tst_cc_init();
                     28:        asm volatile ("setf z");
                     29:        verify_addc(0, 0, 0, 0, 1, 0, 0);
                     30: 
                     31:        cris_tst_cc_init();
                     32:        asm volatile ("setf cz");
                     33:        verify_addc(0, 0, 1, 0, 0, 0, 0);
                     34:        cris_tst_cc_init();
                     35:        asm volatile ("clearf c");
                     36:        verify_addc(-1, 2, 1, 0, 0, 0, 1);
                     37: 
                     38:        cris_tst_cc_init();
                     39:        asm volatile ("clearf nzv");
                     40:        asm volatile ("setf c");
                     41:        verify_addc(-1, 2, 2, 0, 0, 0, 1);
                     42: 
                     43:        cris_tst_cc_init();
                     44:        asm volatile ("setf c");
                     45:        verify_addc(0xffff, 0xffff, 0x1ffff, 0, 0, 0, 0);
                     46: 
                     47:        cris_tst_cc_init();
                     48:        asm volatile ("clearf nzvc");
                     49:        verify_addc(-1, -1, 0xfffffffe, 1, 0, 0, 1);
                     50: 
                     51:        cris_tst_cc_init();
                     52:        asm volatile ("setf c");
                     53:        verify_addc(0x78134452, 0x5432f789, 0xcc463bdc, 1, 0, 1, 0);
                     54: 
                     55:        pass();
                     56:        return 0;
                     57: }

unix.superglobalmegacorp.com

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