mirror of
https://github.com/golang/go.git
synced 2025-05-18 22:04:38 +00:00
merge first pass into main loop in span calculation.
having one copy will cut nacl changes in half. R=ken OCL=34815 CL=34815
This commit is contained in:
parent
46e392e01c
commit
c64986f706
@ -65,56 +65,37 @@ span(void)
|
||||
}
|
||||
}
|
||||
n = 0;
|
||||
|
||||
start:
|
||||
if(debug['v'])
|
||||
Bprint(&bso, "%5.2f span\n", cputime());
|
||||
Bflush(&bso);
|
||||
c = INITTEXT;
|
||||
for(p = firstp; p != P; p = p->link) {
|
||||
if(p->as == ATEXT)
|
||||
curtext = p;
|
||||
if(p->to.type == D_BRANCH)
|
||||
if(p->back)
|
||||
p->pc = c;
|
||||
asmins(p);
|
||||
p->pc = c;
|
||||
m = andptr-and;
|
||||
p->mark = m;
|
||||
c += m;
|
||||
}
|
||||
|
||||
loop:
|
||||
n++;
|
||||
if(debug['v'])
|
||||
Bprint(&bso, "%5.2f span %d\n", cputime(), n);
|
||||
Bflush(&bso);
|
||||
if(n > 50) {
|
||||
print("span must be looping\n");
|
||||
errorexit();
|
||||
}
|
||||
again = 0;
|
||||
c = INITTEXT;
|
||||
for(p = firstp; p != P; p = p->link) {
|
||||
if(p->as == ATEXT)
|
||||
curtext = p;
|
||||
if(p->to.type == D_BRANCH) {
|
||||
if(p->back)
|
||||
p->pc = c;
|
||||
asmins(p);
|
||||
m = andptr-and;
|
||||
if(m != p->mark) {
|
||||
p->mark = m;
|
||||
again++;
|
||||
}
|
||||
do{
|
||||
again = 0;
|
||||
if(debug['v'])
|
||||
Bprint(&bso, "%5.2f span %d\n", cputime(), n);
|
||||
Bflush(&bso);
|
||||
if(n > 50) {
|
||||
print("span must be looping\n");
|
||||
errorexit();
|
||||
}
|
||||
c = INITTEXT;
|
||||
for(p = firstp; p != P; p = p->link) {
|
||||
if(p->as == ATEXT)
|
||||
curtext = p;
|
||||
if(p->to.type == D_BRANCH)
|
||||
if(p->back)
|
||||
p->pc = c;
|
||||
if(n == 0 || p->to.type == D_BRANCH) {
|
||||
asmins(p);
|
||||
m = andptr-and;
|
||||
p->mark = m;
|
||||
}
|
||||
if(c != p->pc)
|
||||
again = 1;
|
||||
p->pc = c;
|
||||
c += p->mark;
|
||||
}
|
||||
p->pc = c;
|
||||
c += p->mark;
|
||||
}
|
||||
if(again) {
|
||||
textsize = c;
|
||||
goto loop;
|
||||
}
|
||||
n++;
|
||||
}while(again);
|
||||
|
||||
if(INITRND) {
|
||||
INITDAT = rnd(c, INITRND);
|
||||
if(INITDAT != idat) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user