#include "pass2.h"

// TODO: replace with file generated by ccom_mkext

static int op0[] = { -1 };
static int op1[] = { -1 };
static int op2[] = { -1 };
static int op3[] = { -1 };
static int op4[] = { -1 };
static int op5[] = { -1 };
static int op6[] = { -1 };
static int op7[] = { -1 };
static int op8[] = { -1 };
static int op9[] = { -1 };
static int op10[] = { -1 };
static int op11[] = { -1 };
static int op12[] = { -1 };
static int op13[] = { -1 };
static int op14[] = { -1 };
static int op15[] = { -1 };
static int op16[] = { -1 };
static int op17[] = { -1 };
static int op18[] = { -1 };
static int op19[] = { -1 };
static int op20[] = { -1 };
static int op21[] = { -1 };
static int op22[] = { -1 };
static int op23[] = { -1 };
static int op24[] = { -1 };
static int op25[] = { -1 };
static int op26[] = { -1 };
static int op27[] = { -1 };
static int op28[] = { -1 };
static int op29[] = { -1 };
static int op30[] = { -1 };
static int op31[] = { -1 };
static int op32[] = { -1 };
static int op33[] = { -1 };
static int op34[] = { -1 };
static int op35[] = { -1 };
static int op36[] = { -1 };
static int op37[] = { -1 };
static int op38[] = { -1 };
static int op39[] = { -1 };
static int op40[] = { -1 };
static int op41[] = { -1 };
static int op42[] = { -1 };
static int op43[] = { -1 };
static int op44[] = { -1 };
static int op45[] = { -1 };
static int op46[] = { -1 };
static int op47[] = { -1 };
static int op48[] = { -1 };
static int op49[] = { -1 };
static int op50[] = { -1 };
static int op51[] = { -1 };
static int op52[] = { -1 };
static int op53[] = { -1 };
static int op54[] = { -1 };
static int op55[] = { -1 };
static int op56[] = { -1 };
static int op57[] = { -1 };
static int op58[] = { -1 };

int *qtable[] = { 
	op0,
	op1,
	op2,
	op3,
	op4,
	op5,
	op6,
	op7,
	op8,
	op9,
	op10,
	op11,
	op12,
	op13,
	op14,
	op15,
	op16,
	op17,
	op18,
	op19,
	op20,
	op21,
	op22,
	op23,
	op24,
	op25,
	op26,
	op27,
	op28,
	op29,
	op30,
	op31,
	op32,
	op33,
	op34,
	op35,
	op36,
	op37,
	op38,
	op39,
	op40,
	op41,
	op42,
	op43,
	op44,
	op45,
	op46,
	op47,
	op48,
	op49,
	op50,
	op51,
	op52,
	op53,
	op54,
	op55,
	op56,
	op57,
	op58,
};
int tempregs[] = { -1 };
int permregs[] = { -1 };
bittype validregs[] = {
	0x7fffffffff,
};
static int amap[MAXREGS][NUMCLASS] = {
	/* 0 */{ 0x0,0x0,0x0,0x0 },
	/* 1 */{ 0x0,0x0,0x0,0x0 },
	/* 2 */{ 0x0,0x0,0x0,0x0 },
	/* 3 */{ 0x0,0x0,0x0,0x0 },
	/* 4 */{ 0x0,0x0,0x0,0x0 },
	/* 5 */{ 0x0,0x0,0x0,0x0 },
	/* 6 */{ 0x0,0x0,0x0,0x0 },
	/* 7 */{ 0x0,0x0,0x0,0x0 },
	/* 8 */{ 0x0,0x0,0x0,0x0 },
	/* 9 */{ 0x0,0x0,0x0,0x0 },
	/* 10 */{ 0x0,0x0,0x0,0x0 },
	/* 11 */{ 0x0,0x0,0x0,0x0 },
	/* 12 */{ 0x0,0x0,0x0,0x0 },
	/* 13 */{ 0x0,0x0,0x0,0x0 },
	/* 14 */{ 0x0,0x0,0x0,0x0 },
	/* 15 */{ 0x0,0x0,0x0,0x0 },
	/* 16 */{ 0x0,0x0,0x0,0x0 },
	/* 17 */{ 0x0,0x0,0x0,0x0 },
	/* 18 */{ 0x0,0x0,0x0,0x0 },
	/* 19 */{ 0x0,0x0,0x0,0x0 },
	/* 20 */{ 0x0,0x0,0x0,0x0 },
	/* 21 */{ 0x0,0x0,0x0,0x0 },
	/* 22 */{ 0x0,0x0,0x0,0x0 },
	/* 23 */{ 0x0,0x0,0x0,0x0 },
	/* 24 */{ 0x0,0x0,0x0,0x0 },
	/* 25 */{ 0x0,0x0,0x0,0x0 },
	/* 26 */{ 0x0,0x0,0x0,0x0 },
	/* 27 */{ 0x0,0x0,0x0,0x0 },
	/* 28 */{ 0x0,0x0,0x0,0x0 },
	/* 29 */{ 0x0,0x0,0x0,0x0 },
	/* 30 */{ 0x0,0x0,0x0,0x0 },
	/* 31 */{ 0x0,0x0,0x0,0x0 },
	/* 32 */{ 0x0,0x0,0x0,0x0 },
	/* 33 */{ 0x0,0x0,0x0,0x0 },
	/* 34 */{ 0x0,0x0,0x0,0x0 },
	/* 35 */{ 0x0,0x0,0x0,0x0 },
	/* 36 */{ 0x0,0x0,0x0,0x0 },
	/* 37 */{ 0x0,0x0,0x0,0x0 },
	/* 38 */{ 0x0,0x0,0x0,0x0 }
};
int
aliasmap(int class, int regnum)
{
	return amap[regnum][class-1];
}
static int rmap[NUMCLASS][15] = {
	{ 0, 1, 2, 3, 4, 5, },
	{ 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, },
};

int
color2reg(int color, int class)
{
	return rmap[class-1][color];
}
int regK[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
int
classmask(int class)
{
	if(class == CLASSA) return 0x0;
	if(class == CLASSB) return 0x0;
	if(class == CLASSC) return 0x0;
	if(class == CLASSD) return 0x0;
	if(class == CLASSE) return 0x0;
	if(class == CLASSF) return 0x0;
	return 0x0;
}
static bittype ovlarr[MAXREGS][1] = {
{ 0x1f0301,  },
{ 0x1e10c02,  },
{ 0xe223004,  },
{ 0x3244c008,  },
{ 0x54880010,  },
{ 0x69100020,  },
{ 0x40,  },
{ 0x80,  },
{ 0x1f0101,  },
{ 0x1f0201,  },
{ 0x1e10402,  },
{ 0x1e10802,  },
{ 0xe221004,  },
{ 0xe222004,  },
{ 0x32444008,  },
{ 0x32448008,  },
{ 0x1ff0f03,  },
{ 0xe3f3305,  },
{ 0x325fc309,  },
{ 0x549f0311,  },
{ 0x691f0321,  },
{ 0xfe33c06,  },
{ 0x33e5cc0a,  },
{ 0x55e90c12,  },
{ 0x69f10c22,  },
{ 0x3e66f00c,  },
{ 0x5eaa3014,  },
{ 0x6f323024,  },
{ 0x76ccc018,  },
{ 0x7b54c028,  },
{ 0x7d980030,  },
{ 0x80000000,  },
{ 0x1,  },
{ 0x2,  },
{ 0x4,  },
{ 0x8,  },
{ 0x10,  },
{ 0x20,  },
{ 0x40,  },
};
int
interferes(int reg1, int reg2)
{
return (TESTBIT(ovlarr[reg1], reg2)) != 0;
}
