runtime: close TODO now that 8c bug is fixed
R=r
CC=golang-dev
https://golang.org/cl/183138
diff --git a/src/pkg/runtime/mgc0.c b/src/pkg/runtime/mgc0.c
index 9189827..f0eafe3 100644
--- a/src/pkg/runtime/mgc0.c
+++ b/src/pkg/runtime/mgc0.c
@@ -73,12 +73,8 @@
{
Stktop *stk;
byte *sp;
- // TODO(rsc): Change 8g not to assume that extern register
- // variables are directly addressable. Declaring the
- // local variable here works around the bug.
- G* gg = g;
- if(gp == gg)
+ if(gp == g)
sp = (byte*)&gp;
else
sp = gp->sched.sp;
@@ -93,11 +89,7 @@
static void
mark(void)
{
- G* gp;
- // TODO(rsc): Change 8g not to assume that extern register
- // variables are directly addressable. Declaring the
- // local variable here works around the bug.
- G* gg = g;
+ G *gp;
// mark data+bss.
// skip mheap itself, which has no interesting pointers
@@ -114,7 +106,7 @@
case Gdead:
break;
case Grunning:
- if(gp != gg)
+ if(gp != g)
throw("mark - world not stopped");
scanstack(gp);
break;
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c
index 8dc9243..6ac4090 100644
--- a/src/pkg/runtime/proc.c
+++ b/src/pkg/runtime/proc.c
@@ -388,12 +388,7 @@
void
mstart(void)
{
- // TODO(rsc): Change 8g not to assume that extern register
- // variables are directly addressable. Declaring the
- // local variable here works around the bug.
- G* gg = g;
-
- if(gg != m->g0)
+ if(g != m->g0)
throw("bad mstart");
if(m->mcache == nil)
m->mcache = allocmcache();
@@ -524,12 +519,7 @@
void
gosched(void)
{
- // TODO(rsc): Change 8g not to assume that extern register
- // variables are directly addressable. Declaring the
- // local variable here works around the bug.
- G* gg = g;
-
- if(gg == m->g0)
+ if(g == m->g0)
throw("gosched of g0");
if(gosave(&g->sched) == 0)
gogo(&m->sched, 1);