#ifdef COLOUR_GRAPH
# include "globals.h"
# include "global_registers.h"
# include "gts_stack.c"

	.data
	.align	4
previous_colour_combinations:
	.long 	0

# define N_LB_ENTRIES		8			// n entries = 2 ^ N_LB_ENTRIES_EXP
# define N_LB_ENTRIES_EXP	3
# define LB_ENTRY_BSIZE		4			// entry size = 2 ^ LB_ENTRY_BSIZE_EXP (in bytes)
# define LB_ENTRY_BSIZE_EXP	2			
# define MAKE_ID(x)			x##_CT
# define MAKE_ID_UCT(x)		x##_unfixed_CT
# define MAKE_ID_FCT(x)		x##_fixed_CT
# define BOTH_FIXEDNESS
# define MAKE_ID_CT(x)		x##_CT

# include "LinkedBlock.c"

// Format: CT
// During colouring:
// word	0: colour table index i.e. colour combination number
//
// During copying:
// word 0 (1234):
//			- 12 is the entry counter initialized at zero
//			- 34 without two least significant bits the block number
//			- the rest is reserved

	.text
	.align	4
init_colour_table:
	movl	$ 0,previous_colour_combinations
	call	MAKE_ID_UCT(lb_init)

// wordt aangeroepen vlak na begin maar de root is al veranderd.
	pushl	%ecx
	call	MAKE_ID_UCT(lb_alloc_entry)
	movl	$ 0,(%ecx)					// reset colour entry, array has size 1
	popl	%ecx
	
	ret
#endif