Przeglądaj źródła

* fix go32v2 assembler parsing failure introduced in rev 16104

git-svn-id: trunk@16132 -
pierre 15 lat temu
rodzic
commit
586dd1ee49
1 zmienionych plików z 4 dodań i 6 usunięć
  1. 4 6
      compiler/x86/rax86int.pas

+ 4 - 6
compiler/x86/rax86int.pas

@@ -384,12 +384,12 @@ Unit Rax86int;
                        c:=current_scanner.asmgetchar;
                        c:=current_scanner.asmgetchar;
                      end;
                      end;
                   end;
                   end;
-                 if is_register(actasmpattern) then
-                  exit;
                  if is_asmdirective(actasmpattern) then
                  if is_asmdirective(actasmpattern) then
                   exit;
                   exit;
                  if is_asmoperator(actasmpattern) then
                  if is_asmoperator(actasmpattern) then
                   exit;
                   exit;
+                 if is_register(actasmpattern) then
+                  exit;
                  { allow spaces }
                  { allow spaces }
                  while (c in [' ',#9]) do
                  while (c in [' ',#9]) do
                    c:=current_scanner.asmgetchar;
                    c:=current_scanner.asmgetchar;
@@ -1629,7 +1629,7 @@ Unit Rax86int;
                     if (actasmtoken=AS_OFFSET) and
                     if (actasmtoken=AS_OFFSET) and
                        (cs_create_pic in current_settings.moduleswitches) then
                        (cs_create_pic in current_settings.moduleswitches) then
                       begin
                       begin
-                        Consume(AS_OFFSET); 
+                        Consume(AS_OFFSET);
                         oper.opr.ref.refaddr:=addr_pic;
                         oper.opr.ref.refaddr:=addr_pic;
                         BuildOperand(oper,false);
                         BuildOperand(oper,false);
                       end
                       end
@@ -1840,9 +1840,7 @@ Unit Rax86int;
                     BuildOperand(oper,true);
                     BuildOperand(oper,true);
                     Consume(AS_RPAREN);
                     Consume(AS_RPAREN);
                     oper.setsize(l,true);
                     oper.setsize(l,true);
-                  end
-                else if (actasmtoken = AS_REGISTER) then
-                  Message(asmr_e_syn_operand);
+                  end;
               end;
               end;
 
 
             AS_SEPARATOR,
             AS_SEPARATOR,