X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=riscasm.c;h=9ecc61da0b547fa7509b2718d707b26785cac778;hp=82caf808d463e07d6b4cbbce9ce7076c2b6d7ae7;hb=8f287ee72236774216a11a3062f9a26dc8dc66b6;hpb=4205233c8397c581b4d27ab36ab81ec896ef3dd0 diff --git a/riscasm.c b/riscasm.c index 82caf80..9ecc61d 100644 --- a/riscasm.c +++ b/riscasm.c @@ -229,7 +229,7 @@ int GenerateRISCCode(int state) int indexed; // Indexed register flag uint64_t eval; // Expression value - uint16_t eattr; // Expression attributes + uint16_t eattr; // Expression attributes SYM * esym; // External symbol involved in expr. TOKEN r_expr[EXPRSIZE]; // Expression token list @@ -325,8 +325,14 @@ int GenerateRISCCode(int state) } else { + if (esym && (esym->sattre & EQUATEDREG)) + return error("equated register seen for immediate value"); + + if (eattr & RISCREG) + return error("register seen for immediate value"); + if (((int)eval < reg1) || ((int)eval > reg2)) - return error("constant out of range (%d to %d", reg1, reg2); + return error("constant out of range (%d to %d)", reg1, reg2); if (parm & SUB32) reg1 = 32 - (int)eval;