| #include <stdio.h> |
| #define get_cc() \ |
| ({ \ |
| char __cc; \ |
| /* dont use IPM to better test spechelpers */ \ |
| asm volatile( " brc 8,1f\n\t" \ |
| " brc 4,2f\n\t" \ |
| " brc 2,3f\n\t" \ |
| " brc 1,4f\n\t" \ |
| " mvi %0,4\n\t" \ |
| " j 0f\n\t" \ |
| "1: mvi %0,0\n\t" \ |
| " j 0f\n\t" \ |
| "2: mvi %0,1\n\t" \ |
| " j 0f\n\t" \ |
| "3: mvi %0,2\n\t" \ |
| " j 0f\n\t" \ |
| "4: mvi %0,3\n\t" \ |
| " j 0f\n\t" \ |
| "0: bcr 0,0 /*nop*/\n\t" \ |
| :"=m" (__cc)::"memory"); \ |
| __cc; \ |
| }) |
| |
| static inline void dump_field(void *field, int size) |
| { |
| int i; |
| for (i=0; i < size; i++) |
| printf("%2.2X ", ((char *) field)[i]); |
| } |