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