Exemple #1
0
int
BtoR(long b)
{
	b &= 0x001fffffL;
	if(b == 0)
		return 0;
	return bitno(b) + REGMIN;
}
Exemple #2
0
int
BtoR(long b)
{
    b &= 0x01fcL;	// excluded R9 and R10 for extern registers
    if(b == 0)
        return 0;
    return bitno(b);
}
Exemple #3
0
int
BtoR(int32 b)
{
	b &= 0xffffL;
	if(b == 0)
		return 0;
	return bitno(b) + D_AX;
}
Exemple #4
0
int
BtoR(int32 b)
{
	b &= 0x3fffL;		// no R14 or R15
	if(b == 0)
		return 0;
	return bitno(b) + D_AX;
}
int
BtoR(int32 b)
{
	b &= 0x11fcL;	// excluded R9 and R10 for m and g, but not R12
	if(b == 0)
		return 0;
	return bitno(b);
}
Exemple #6
0
BtoR(long b)
{

	b &= 0x001fffffL;
	if(b == 0)
		return 0;
	return bitno(b) + 3;
}
Exemple #7
0
int
BtoF(long b)
{

    b &= 0xfc0000L;
    if(b == 0)
        return 0;
    return bitno(b) - 16;
}
int
BtoF(int32 b)
{

	b &= 0xfffc0000L;
	if(b == 0)
		return 0;
	return bitno(b) - 16;
}
Exemple #9
0
int
BtoF(int32_t b)
{

	b &= 0xffc00000L;
	if(b == 0)
		return 0;
	return bitno(b)*2 - 40;
}
Exemple #10
0
int
BtoF(long b)
{

    b &= 0xffc00000L;
    if(b == 0)
        return 0;
    return bitno(b)*2 - 40;
}
Exemple #11
0
int
BtoF(int32 b)
{

	b &= 0xFFFF0000L;
	if(b == 0)
		return 0;
	return bitno(b) - 16 + D_X0;
}
Exemple #12
0
Fichier : reg.c Projet : 8l/golang
int
BtoF(int32 b)
{

	b &= 0x70000L;
	if(b == 0)
		return 0;
	return bitno(b) - 16 + FREGMIN;
}
Exemple #13
0
int
BtoR(long b)
{

	b &= 0xffL;
	if(b == 0)
		return 0;
	return bitno(b) + D_AX;
}
Exemple #14
0
int
BtoF(long b)
{

	b &= 0xffc00000L;
	if(b == 0)
		return 0;
	return bitno(b) - 22 + FREGMIN;
}
Exemple #15
0
Fichier : reg.c Projet : 8l/golang
int
BtoR(int32 b)
{

	b &= 0xffffL;
	if(nacl)
		b &= ~((1<<(D_BP-D_AX)) | (1<<(D_R15-D_AX)));
	if(b == 0)
		return 0;
	return bitno(b) + D_AX;
}
Exemple #16
0
int
bnum(Bits a)
{
	int i;
	long b;

	for(i=0; i<BITS; i++)
		if(b = a.b[i])
			return 32*i + bitno(b);
	diag(Z, "bad in bnum");
	return 0;
}
Exemple #17
0
int
bnum(Bits a)
{
	int i;
	int32 b;

	for(i=0; i<BITS; i++)
		if(b = a.b[i])
			return 32*i + bitno(b);
	fatal("bad in bnum");
	return 0;
}
Exemple #18
0
int
BtoR(long b)
{
    int r;

    b &= 0x001fffffL;
    if(b == 0)
        return 0;
    r = bitno(b) + 9;
    if(r >= 14)
        r += 2;
    return r;
}
uint32
allreg(uint32 b, Rgn *r)
{
	Var *v;
	int i;

	v = var + r->varno;
	r->regno = 0;
	switch(v->etype) {

	default:
		fatal("unknown etype %d/%E", bitno(b), v->etype);
		break;

	case TINT8:
	case TUINT8:
	case TINT16:
	case TUINT16:
	case TINT32:
	case TUINT32:
	case TINT:
	case TUINT:
	case TUINTPTR:
	case TBOOL:
	case TPTR32:
		i = BtoR(~b);
		if(i && r->cost >= 0) {
			r->regno = i;
			return RtoB(i);
		}
		break;

	case TFLOAT32:
	case TFLOAT64:
		i = BtoF(~b);
		if(i && r->cost >= 0) {
			r->regno = i+NREG;
			return FtoB(i);
		}
		break;

	case TINT64:
	case TUINT64:
	case TPTR64:
	case TINTER:
	case TSTRUCT:
	case TARRAY:
		break;
	}
	return 0;
}
Exemple #20
0
Fichier : reg.c Projet : 8l/golang
uint32
allreg(uint32 b, Rgn *r)
{
	Var *v;
	int i;

	v = var + r->varno;
	r->regno = 0;
	switch(v->etype) {

	default:
		diag(Z, "unknown etype %d/%d", bitno(b), v->etype);
		break;

	case TCHAR:
	case TUCHAR:
	case TSHORT:
	case TUSHORT:
	case TINT:
	case TUINT:
	case TLONG:
	case TULONG:
	case TVLONG:
	case TUVLONG:
	case TIND:
	case TARRAY:
		i = BtoR(~b);
		if(i && r->cost > 0) {
			r->regno = i;
			return RtoB(i);
		}
		break;

	case TDOUBLE:
	case TFLOAT:
		i = BtoF(~b);
		if(i && r->cost > 0) {
			r->regno = i;
			return FtoB(i);
		}
		break;
	}
	return 0;
}
Exemple #21
0
void
powerinit(void)
{
	extern ulong power_magic;
	extern ulong power_code;
	extern ulong doze_code;
	ulong *p, *q, i;

	p = (ulong*)(((ulong)&power_magic + 0x1f) & ~0x1f);
	q = &power_code;
	for (i = 0; i < 8; i++)
		*p++ = *q++;
	p = (ulong*)(((ulong)doze + 0x3f) & ~0x1f);
	q = &doze_code;
	for (i = 0; i < 3; i++)
		*p++ = *q++;

	*resumeaddr = (ulong) power_resume;
	addclock0link(blanktimer, 1000/HZ);
	addclock0link(suspendtimer, 1000/HZ);
	intrenable(GPIOrising, bitno(GPIO_PWR_ON_i), onoffintr, nil, "on/off");
}