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