summaryrefslogtreecommitdiff
path: root/sys/src/cmd/5a
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-08-09 18:23:14 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-08-09 18:23:14 +0200
commit30d4d8984bfc64e971bfbb3b913c37ed8a8da17b (patch)
tree5b5bd78a415cfcc3a8aa34ef06656b915041f500 /sys/src/cmd/5a
parent760063ab57aa42ea82f1bf5c9177c0cde206aeee (diff)
5a: MOVM.IA.W.S ..., [R15] is exception return and needs to be allowed (thanks aiju)
Diffstat (limited to 'sys/src/cmd/5a')
-rw-r--r--sys/src/cmd/5a/lex.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/src/cmd/5a/lex.c b/sys/src/cmd/5a/lex.c
index 89ff6661c..7880aa780 100644
--- a/sys/src/cmd/5a/lex.c
+++ b/sys/src/cmd/5a/lex.c
@@ -564,7 +564,8 @@ outcode(int a, int scond, Gen *g1, int reg, Gen *g2)
}
if(a == AMOVM){
- if((scond & (C_SBIT|C_WBIT)) == (C_SBIT|C_WBIT)){
+ if((scond & (C_SBIT|C_WBIT)) == (C_SBIT|C_WBIT))
+ if(g2->type != D_CONST || (g2->offset & (1<<15)) == 0){
yyerror("MOVM .S and .W are exclusive");
errorexit();
}