mirror of
https://github.com/golang/go
synced 2024-11-20 05:44:44 -07:00
5g: fix optimizer bug
same as in issue below, never fixed on ARM changeset: 5498:3fa1372ca694 user: Ken Thompson <ken@golang.org> date: Thu May 20 17:31:28 2010 -0700 description: fix issue 798 cannot allocate an audomatic temp while real registers are allocated. there is a chance that the automatic will be allocated to one of the allocated registers. the fix is to not registerize such variables. R=rsc CC=golang-dev https://golang.org/cl/1202042 R=ken2 CC=golang-dev https://golang.org/cl/4226042
This commit is contained in:
parent
9fc0f159c3
commit
63c24081a0
@ -27,6 +27,7 @@ struct Addr
|
||||
uchar type;
|
||||
char name;
|
||||
char reg;
|
||||
char pun;
|
||||
uchar etype;
|
||||
};
|
||||
#define A ((Addr*)0)
|
||||
|
@ -1168,6 +1168,7 @@ naddr(Node *n, Addr *a, int canemitcode)
|
||||
a->etype = simtype[n->type->etype];
|
||||
a->width = n->type->width;
|
||||
}
|
||||
a->pun = n->pun;
|
||||
a->offset = n->xoffset;
|
||||
a->sym = n->sym;
|
||||
if(a->sym == S)
|
||||
|
@ -697,8 +697,8 @@ mkvar(Reg *r, Adr *a)
|
||||
n = D_NONE;
|
||||
|
||||
flag = 0;
|
||||
// if(a->pun)
|
||||
// flag = 1;
|
||||
if(a->pun)
|
||||
flag = 1;
|
||||
|
||||
switch(t) {
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user