diff options
Diffstat (limited to 'src/cmd/5c/reg.c')
-rw-r--r-- | src/cmd/5c/reg.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cmd/5c/reg.c b/src/cmd/5c/reg.c index 42c5193de..3d67872b4 100644 --- a/src/cmd/5c/reg.c +++ b/src/cmd/5c/reg.c @@ -112,6 +112,7 @@ regopt(Prog *p) case AGLOBL: case ANAME: case ASIGNAME: + case AFUNCDATA: continue; } r = rega(); @@ -174,8 +175,10 @@ regopt(Prog *p) */ case ANOP: case AMOVB: + case AMOVBS: case AMOVBU: case AMOVH: + case AMOVHS: case AMOVHU: case AMOVW: case AMOVF: @@ -460,6 +463,7 @@ brk: case AGLOBL: case ANAME: case ASIGNAME: + case AFUNCDATA: break; } } @@ -555,9 +559,9 @@ addmove(Reg *r, int bn, int rn, int f) p1->as = AMOVW; if(v->etype == TCHAR || v->etype == TUCHAR) - p1->as = AMOVB; + p1->as = AMOVBS; if(v->etype == TSHORT || v->etype == TUSHORT) - p1->as = AMOVH; + p1->as = AMOVHS; if(v->etype == TFLOAT) p1->as = AMOVF; if(v->etype == TDOUBLE) |