summaryrefslogtreecommitdiff
path: root/other/burneye2/pack.c
blob: b59a0e29ebaa221f8d3b7d89b3a7ec5f54391884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/* pack.c - burneye2 object to stub conversion
 *
 * by scut
 */


typedef struct {
	unsigned int	branch_id;
	unsigned int	branch_data;
	unsigned int	branch_data_len;

	unsigned int	keytab_idx;
} brinfo;

typedef struct {
	brinfo		brtrue;		/* also: brtransfer */
	brinfo		brfalse;	/* also: brstay */

	/* 7654.3210, 7 = link, 6 = cond, 5432 = condflags, 0 = return
	 */
#define	BRENT_M_LINK	0x80
#define	BRENT_LINK(flags)	((flags) & BRENT_M_LINK)
#define	BRENT_S_LINK(val)	((val) << 7)

#define	BRENT_M_COND	0x40
#define	BRENT_COND(flags)	((flags) & BRENT_M_COND)
#define	BRENT_S_COND(val)	((val) << 6)

#define	BRENT_M_CONDFLAGS	0x3c
#define	BRENT_CONDFLAGS(flags)	(((flags) & BRENT_M_CONDFLAGS) >> 2)
#define	BRENT_S_CONDFLAGS(val)	((val) << 2)

#define	BRENT_M_RETURN	0x01
#define	BRENT_RETURN(flags)	((flags) & BRENT_M_RETURN)
#define	BRENT_S_RETURN(val)	(val)

	unsigned char	flags;
} brent;


unsigned int	cur_bid;