| #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 */ |