mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-11 09:56:29 +00:00
33 lines
1.5 KiB
C
33 lines
1.5 KiB
C
#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 */
|