#ifndef DFP_UTILS_H #define DFP_UTILS_H #include <stddef.h> /* size_t */ #include <stdio.h> /* printf */ /* convinience macros to print DFP values to avoid linking libdfp to DFP testcases */ #define DFP_VAL_PRINT(op, type) \ { \ size_t n = sizeof(type); \ if (n == 4) \ printf("%x", *((unsigned int *) &op)); \ else if (n == 8) \ printf("%lx", *((unsigned long *) &op)); \ else \ printf("%lx%08lx", *((unsigned long *) &op), \ *(((unsigned long *) &op) + 1)); \ } #define DFP_BINOP_PRINT(op1, op2, result, type, op, cc) \ { \ DFP_VAL_PRINT(op1, type); \ printf(" "op" "); \ DFP_VAL_PRINT(op2, type); \ printf(" = "); \ DFP_VAL_PRINT(result, type); \ printf(" cc = %d\n", cc); \ } #endif /* DFP_UTILS_H */