diff options
Diffstat (limited to 'src/cmd/6c/peep.c')
-rw-r--r-- | src/cmd/6c/peep.c | 22 |
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; |