summaryrefslogtreecommitdiff
path: root/src/cmd/6c/peep.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/6c/peep.c')
-rw-r--r--src/cmd/6c/peep.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/cmd/6c/peep.c b/src/cmd/6c/peep.c
index 77c034b07..2800d58c2 100644
--- a/src/cmd/6c/peep.c
+++ b/src/cmd/6c/peep.c
@@ -377,6 +377,10 @@ subprop(Reg *r0)
case ACDQ:
case ACQO:
+ case ASTOSB:
+ case ASTOSL:
+ case ASTOSQ:
+ case AMOVSB:
case AMOVSL:
case AMOVSQ:
return 0;
@@ -755,11 +759,23 @@ copyu(Prog *p, Adr *v, Adr *s)
return 2;
goto caseread;
- case AMOVSL:
- case AMOVSQ:
case AREP:
case AREPN:
- if(v->type == D_CX || v->type == D_DI || v->type == D_SI)
+ if(v->type == D_CX)
+ return 2;
+ goto caseread;
+
+ case AMOVSB:
+ case AMOVSL:
+ case AMOVSQ:
+ if(v->type == D_DI || v->type == D_SI)
+ return 2;
+ goto caseread;
+
+ case ASTOSB:
+ case ASTOSL:
+ case ASTOSQ:
+ if(v->type == D_AX || v->type == D_DI)
return 2;
goto caseread;