summaryrefslogtreecommitdiff
path: root/src/cmd/5c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/5c')
-rw-r--r--src/cmd/5c/peep.c4
-rw-r--r--src/cmd/5c/txt.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/src/cmd/5c/peep.c b/src/cmd/5c/peep.c
index 8945ee732..c15bf0fc4 100644
--- a/src/cmd/5c/peep.c
+++ b/src/cmd/5c/peep.c
@@ -1100,7 +1100,7 @@ copyu(Prog *p, Adr *v, Adr *s)
if(v->type == D_REG) {
if(v->reg <= REGEXT && v->reg > exregoffset)
return 2;
- if(v->reg == REGARG)
+ if(v->reg == (uchar)REGARG)
return 2;
}
if(v->type == D_FREG)
@@ -1118,7 +1118,7 @@ copyu(Prog *p, Adr *v, Adr *s)
case ATEXT: /* funny */
if(v->type == D_REG)
- if(v->reg == REGARG)
+ if(v->reg == (uchar)REGARG)
return 3;
return 0;
}
diff --git a/src/cmd/5c/txt.c b/src/cmd/5c/txt.c
index f5619f800..4be1f6f62 100644
--- a/src/cmd/5c/txt.c
+++ b/src/cmd/5c/txt.c
@@ -400,6 +400,10 @@ regsalloc(Node *n, Node *nn)
void
regaalloc1(Node *n, Node *nn)
{
+ if(REGARG < 0) {
+ fatal(n, "regaalloc1 and REGARG<0");
+ return;
+ }
nodreg(n, nn, REGARG);
reg[REGARG]++;
curarg = align(curarg, nn->type, Aarg1, nil);