diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-08-09 18:23:14 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2014-08-09 18:23:14 +0200 |
commit | 30d4d8984bfc64e971bfbb3b913c37ed8a8da17b (patch) | |
tree | 5b5bd78a415cfcc3a8aa34ef06656b915041f500 /sys/src/cmd/5a | |
parent | 760063ab57aa42ea82f1bf5c9177c0cde206aeee (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.c | 3 |
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(); } |