|
|
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_abs(int n) { ! 8: int r; ! 9: asm ("abs\t%1, %0\n" : "=r" (r) : "r" (n)); ! 10: return r; ! 11: } ! 12: ! 13: extern inline void ! 14: verify_abs(int val, int res, ! 15: const int n, const int z, const int v, const int c) ! 16: { ! 17: int r; ! 18: ! 19: cris_tst_cc_init(); ! 20: r = cris_abs(val); ! 21: cris_tst_cc(n, z, v, c); ! 22: if (r != res) ! 23: err(); ! 24: } ! 25: ! 26: int main(void) ! 27: { ! 28: verify_abs(-1, 1, 0, 0, 0, 0); ! 29: verify_abs(0x80000000, 0x80000000, 1, 0, 0, 0); ! 30: verify_abs(0x7fffffff, 0x7fffffff, 0, 0, 0, 0); ! 31: verify_abs(42, 42, 0, 0, 0, 0); ! 32: verify_abs(1, 1, 0, 0, 0, 0); ! 33: verify_abs(0xffff, 0xffff, 0, 0, 0, 0); ! 34: verify_abs(0xffff, 0xffff, 0, 0, 0, 0); ! 35: verify_abs(-31, 0x1f, 0, 0, 0, 0); ! 36: verify_abs(0, 0, 0, 1, 0, 0); ! 37: pass(); ! 38: return 0; ! 39: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.