From: Rémy Oudompheng Date: Fri, 9 Nov 2012 20:06:45 +0000 (+0100) Subject: cmd/6c, cmd/8c: use signed char explicitly in mul.c X-Git-Tag: go1.1rc2~1907 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=cc224c004d0f389efcbb54251840bbb264ea4826;p=gostls13.git cmd/6c, cmd/8c: use signed char explicitly in mul.c On ARM, char is unsigned, and the code generation for multiplication gets totally broken. Fixes #4354. R=golang-dev, dave, minux.ma, rsc CC=golang-dev https://golang.org/cl/6826079 --- diff --git a/src/cmd/6c/mul.c b/src/cmd/6c/mul.c index ab6883e7aa..510edc05cf 100644 --- a/src/cmd/6c/mul.c +++ b/src/cmd/6c/mul.c @@ -35,17 +35,17 @@ typedef struct Mparam Mparam; struct Malg { - char vals[10]; + schar vals[10]; }; struct Mparam { uint32 value; - char alg; + schar alg; char neg; char shift; char arg; - char off; + schar off; }; static Mparam multab[32]; @@ -101,7 +101,7 @@ mulparam(uint32 m, Mparam *mp) { int c, i, j, n, o, q, s; int bc, bi, bn, bo, bq, bs, bt; - char *p; + schar *p; int32 u; uint32 t; diff --git a/src/cmd/8c/mul.c b/src/cmd/8c/mul.c index a0742807ea..9955e762ff 100644 --- a/src/cmd/8c/mul.c +++ b/src/cmd/8c/mul.c @@ -35,17 +35,17 @@ typedef struct Mparam Mparam; struct Malg { - char vals[10]; + schar vals[10]; }; struct Mparam { uint32 value; - char alg; + schar alg; char neg; char shift; char arg; - char off; + schar off; }; static Mparam multab[32]; @@ -101,7 +101,7 @@ mulparam(uint32 m, Mparam *mp) { int c, i, j, n, o, q, s; int bc, bi, bn, bo, bq, bs, bt; - char *p; + schar *p; int32 u; uint32 t;