]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "liblink, cmd/5a: fix reglist parsing/printing after changing REG_R0 to 32"
authorRuss Cox <rsc@golang.org>
Thu, 5 Feb 2015 10:23:26 +0000 (10:23 +0000)
committerRuss Cox <rsc@golang.org>
Thu, 5 Feb 2015 10:23:35 +0000 (10:23 +0000)
This reverts commit da4abda2a1718c74b39134764ae6f694041a25e4.

Change-Id: Ifd09b3dae0af0c7cef5fbbc332c63e78dc90d6b1
Reviewed-on: https://go-review.googlesource.com/3960
Reviewed-by: Russ Cox <rsc@golang.org>
src/cmd/5a/a.y
src/cmd/5a/y.tab.c
src/cmd/5a/y.tab.h
src/liblink/asm5.c
src/liblink/list5.c

index fbf583def403a4fda7ec29c98a83bb19bf7fae69..429f7437c6e86d1a58fa215033efa313a49656f8 100644 (file)
@@ -38,7 +38,7 @@
 %union
 {
        Sym     *sym;
-       int64   lval;
+       int32   lval;
        double  dval;
        char    sval[8];
        Addr    addr;
@@ -460,20 +460,20 @@ fcon:
 reglist:
        spreg
        {
-               $$ = 1ULL << $1;
+               $$ = 1 << $1;
        }
 |      spreg '-' spreg
        {
                int i;
                $$=0;
                for(i=$1; i<=$3; i++)
-                       $$ |= 1ULL<<i;
+                       $$ |= 1<<i;
                for(i=$3; i<=$1; i++)
-                       $$ |= 1ULL<<i;
+                       $$ |= 1<<i;
        }
 |      spreg comma reglist
        {
-               $$ = (1ULL<<$1) | $3;
+               $$ = (1<<$1) | $3;
        }
 
 gen:
index 3db88a78052ece4d07ed8d37d5b9d4c3fd9c4753..d9af383d787109a44f6c9abd7ee5e8bb899248db 100644 (file)
@@ -204,7 +204,7 @@ typedef union YYSTYPE
 #line 39 "a.y"
 {
        Sym     *sym;
-       int64   lval;
+       int32   lval;
        double  dval;
        char    sval[8];
        Addr    addr;
@@ -2223,7 +2223,7 @@ yyreduce:
   case 64:
 #line 462 "a.y"
     {
-               (yyval.lval) = 1ULL << (yyvsp[(1) - (1)].lval);
+               (yyval.lval) = 1 << (yyvsp[(1) - (1)].lval);
        }
     break;
 
@@ -2233,16 +2233,16 @@ yyreduce:
                int i;
                (yyval.lval)=0;
                for(i=(yyvsp[(1) - (3)].lval); i<=(yyvsp[(3) - (3)].lval); i++)
-                       (yyval.lval) |= 1ULL<<i;
+                       (yyval.lval) |= 1<<i;
                for(i=(yyvsp[(3) - (3)].lval); i<=(yyvsp[(1) - (3)].lval); i++)
-                       (yyval.lval) |= 1ULL<<i;
+                       (yyval.lval) |= 1<<i;
        }
     break;
 
   case 66:
 #line 475 "a.y"
     {
-               (yyval.lval) = (1ULL<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval);
+               (yyval.lval) = (1<<(yyvsp[(1) - (3)].lval)) | (yyvsp[(3) - (3)].lval);
        }
     break;
 
index ef08534b1c077ed715e8fd2e0f57ba134f5a32c2..fbbdbef99b0e48bdcf1b9929dbf713dc6fc35b4f 100644 (file)
@@ -149,7 +149,7 @@ typedef union YYSTYPE
 #line 39 "a.y"
 {
        Sym     *sym;
-       int64   lval;
+       int32   lval;
        double  dval;
        char    sval[8];
        Addr    addr;
index 7a87abd0fd1d8568e681bdaeb12b343636e3329f..8d597750b71a2e0a4574299c132f51bef91a865f 100644 (file)
@@ -1820,14 +1820,14 @@ if(0 /*debug['G']*/) print("%ux: %s: arm %d\n", (uint32)(p->pc), p->from.sym->na
                switch(o->type) {
                case 38:        /* movm $con,oreg -> stm */
                        o1 = (0x4 << 25);
-                       o1 |= (p->from.offset >> REG_R0) & 0xffff;
+                       o1 |= p->from.offset & 0xffff;
                        o1 |= (p->to.reg&15) << 16;
                        aclass(ctxt, &p->to);
                        break;
        
                case 39:        /* movm oreg,$con -> ldm */
                        o1 = (0x4 << 25) | (1 << 20);
-                       o1 |= (p->to.offset >> REG_R0) & 0xffff;
+                       o1 |= p->to.offset & 0xffff;
                        o1 |= (p->from.reg&15) << 16;
                        aclass(ctxt, &p->from);
                        break;
index bce13c24fb28753006c70847e23aa4e4cd0fe148..3d3e8e7d122853ba91d3b833e73fd1f79fb87b26 100644 (file)
@@ -222,8 +222,7 @@ RAconv(Fmt *fp)
 {
        char str[STRINGSZ];
        Addr *a;
-       int i;
-       vlong v;
+       int i, v;
 
        a = va_arg(fp->args, Addr*);
        sprint(str, "GOK-reglist");
@@ -233,7 +232,7 @@ RAconv(Fmt *fp)
                        break;
                if(a->sym != nil)
                        break;
-               v = a->offset >> REG_R0;
+               v = a->offset;
                strcpy(str, "");
                for(i=0; i<NREG; i++) {
                        if(v & (1<<i)) {