]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/6c, cmd/8c: use signed char explicitly in mul.c
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Fri, 9 Nov 2012 20:06:45 +0000 (21:06 +0100)
committerRémy Oudompheng <oudomphe@phare.normalesup.org>
Fri, 9 Nov 2012 20:06:45 +0000 (21:06 +0100)
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

src/cmd/6c/mul.c
src/cmd/8c/mul.c

index ab6883e7aa2a1a56d698e804d3390deefaac1847..510edc05cf9210770228740d501756a55cdd31ee 100644 (file)
@@ -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;
 
index a0742807eafab5d862a5b6439f1c35ee4ad9baec..9955e762ff3ee376724951aa6009595e7791924c 100644 (file)
@@ -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;