1b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#include <stdio.h> 2b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov#define get_cc() \ 3b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov({ \ 4b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov char __cc; \ 5b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov /* dont use IPM to better test spechelpers */ \ 6b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov asm volatile( " brc 8,1f\n\t" \ 7b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " brc 4,2f\n\t" \ 8b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " brc 2,3f\n\t" \ 9b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " brc 1,4f\n\t" \ 10b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " mvi %0,4\n\t" \ 11b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " j 0f\n\t" \ 12b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "1: mvi %0,0\n\t" \ 13b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " j 0f\n\t" \ 14b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "2: mvi %0,1\n\t" \ 15b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " j 0f\n\t" \ 16b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "3: mvi %0,2\n\t" \ 17b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " j 0f\n\t" \ 18b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "4: mvi %0,3\n\t" \ 19b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov " j 0f\n\t" \ 20b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov "0: bcr 0,0 /*nop*/\n\t" \ 21b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov :"=m" (__cc)::"memory"); \ 22b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov __cc; \ 23b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov}) 24b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov 25b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanovstatic inline void dump_field(void *field, int size) 26b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov{ 27b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov int i; 28b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov for (i=0; i < size; i++) 29b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov printf("%2.2X ", ((char *) field)[i]); 30b32f58018498ea2225959b0ba11c18f0c433deefEvgeniy Stepanov} 31