diff options
author | Ken Thompson <ken@golang.org> | 2010-10-21 18:15:00 -0700 |
---|---|---|
committer | Ken Thompson <ken@golang.org> | 2010-10-21 18:15:00 -0700 |
commit | e5bd12ea90bd5a5727f51ade05c87962ca390670 (patch) | |
tree | 68e6933119bff182ed7983f4accfbec3fa639a39 | |
parent | a89b0ed7e4b7feaca9828b1f2256fedb9df0191e (diff) | |
download | go-e5bd12ea90bd5a5727f51ade05c87962ca390670.tar.gz go-e5bd12ea90bd5a5727f51ade05c87962ca390670.zip |
bug right shifting 64 bits
by a variable that equals 32
R=rsc
CC=golang-dev
https://golang.org/cl/2645042
-rw-r--r-- | src/cmd/5g/cgen64.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cmd/5g/cgen64.c b/src/cmd/5g/cgen64.c index a22f4a548c..716ec5ed5b 100644 --- a/src/cmd/5g/cgen64.c +++ b/src/cmd/5g/cgen64.c @@ -439,12 +439,12 @@ olsh_break: p3 = gbranch(ABLO, T); // shift == 32 + p1 = gins(AMOVW, &bh, &al); + p1->scond = C_SCOND_EQ; if(bh.type->etype == TINT32) p1 = gshift(AMOVW, &bh, SHIFT_AR, 31, &ah); else - p1 = gins(AEOR, &al, &al); - p1->scond = C_SCOND_EQ; - p1 = gins(AMOVW, &bh, &al); + p1 = gins(AEOR, &ah, &ah); p1->scond = C_SCOND_EQ; p4 = gbranch(ABEQ, T); |