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 | |
| parent | 760063ab57aa42ea82f1bf5c9177c0cde206aeee (diff) | |
| download | plan9front-30d4d8984bfc64e971bfbb3b913c37ed8a8da17b.tar.xz | |
5a: MOVM.IA.W.S ..., [R15] is exception return and needs to be allowed (thanks aiju)
| -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(); } |
