diff options
| -rw-r--r-- | sys/src/cmd/vl/sched.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/src/cmd/vl/sched.c b/sys/src/cmd/vl/sched.c index efa88a755..7537cf1c6 100644 --- a/sys/src/cmd/vl/sched.c +++ b/sys/src/cmd/vl/sched.c @@ -85,7 +85,7 @@ sched(Prog *p0, Prog *pe) for(t=s+1; t<=se; t++) { if(!(t->p.mark & LOAD)) continue; - if(t->p.mark & BRANCH) + if(t->p.mark & BRANCH || t->set.ireg & (1<<REGSP)) break; if(conflict(s, t)) break; @@ -102,7 +102,7 @@ sched(Prog *p0, Prog *pe) /* put schedule fodder above load */ for(t=s+1; t<=se; t++) { - if(t->p.mark & BRANCH) + if(t->p.mark & BRANCH || t->set.ireg & (1<<REGSP)) break; if(s > sch && conflict(s-1, t)) continue; @@ -634,7 +634,6 @@ offoverlap(Sch *sa, Sch *sb) int conflict(Sch *sa, Sch *sb) { - if(sa->set.ireg & sb->used.ireg) return 1; if(sa->set.freg & sb->used.freg) |
