示例#1
0
int get_reg_usage (char *r)
{
	int id, usage;
	if (reg_is_param (r))
		return 1;

	id = get_reg_number (r);
	usage = cur_reg->reg_usage[id];
	assert (usage >= 0);

	return usage;
}
示例#2
0
//-------------------------------------------------------------------
unsigned int parse_reg ( unsigned int ra )
{
    unsigned int rb;

    for(;newline[ra];ra++) if(newline[ra]!=0x20) break;
    rb=0;
    for(;newline[ra];ra++)
    {
        if(newline[ra]==',') break;
        if(newline[ra]==0x20) break;
        cstring[rb++]=newline[ra];
    }
    cstring[rb]=0;
    if(get_reg_number(cstring,&rx))
    {
        printf("<%u> Error: not a register\n",line);
        return(0);
    }
    for(;newline[ra];ra++) if(newline[ra]!=0x20) break;
    return(ra);
}
示例#3
0
void increg(char* r) {
	int nr = get_reg_number(r);
	reg_usage[nr]++;
}
示例#4
0
void freereg(char* r) {
	int nr = get_reg_number(r);
	reg_usage[nr]--;
}
示例#5
0
void freereg (char *r)
{
	int nr = get_reg_number(r);
	cur_reg->reg_usage[nr]--;
	printf ("#freereg %s\n", r);
}
示例#6
0
void clear_var_reg (char *r)
{
	cur_reg->reg_var[get_reg_number (r)] = 0;
}
示例#7
0
void set_var_reg (char *r)
{
	cur_reg->reg_var[get_reg_number (r)] = 1;
}