]> Shamusworld >> Repos - rmac/blobdiff - riscasm.c
Fix for bug #34 (equated reg in 1st operand of MOVEI).
[rmac] / riscasm.c
index 37e29224a99d78a172044102beb277e0eaf661f1..23faaee7120df76cc71cc95dadce3de262f4cf1c 100644 (file)
--- a/riscasm.c
+++ b/riscasm.c
@@ -323,6 +323,15 @@ int GenerateRISCCode(int state)
                tok++;
                riscImmTokenSeen = 1;
 
+               // Check for equated register after # and return error if so
+               if (*tok == SYMBOL)
+               {
+                       sy = lookup(string[tok[1]], LABEL, 0);
+
+                       if (sy->sattre & EQUATEDREG)
+                               return error("equated register in 1st operand of MOVEI instruction");
+               }
+
                if (expr(r_expr, &eval, &eattr, &esym) != OK)
                        return MalformedOpcode(0x04);