Explorar o código

Add conversion from "$" to "." for i386-watcom target and avoid iteration if no char modification is wanted in ApplyAsmSymbolRestrictions function

git-svn-id: trunk@47012 -
pierre %!s(int64=4) %!d(string=hai) anos
pai
achega
64da07da48
Modificáronse 1 ficheiros con 9 adicións e 4 borrados
  1. 9 4
      compiler/aasmbase.pas

+ 9 - 4
compiler/aasmbase.pas

@@ -291,15 +291,20 @@ implementation
     function ApplyAsmSymbolRestrictions(const s: ansistring): ansistring;
     function ApplyAsmSymbolRestrictions(const s: ansistring): ansistring;
       var
       var
         i : longint;
         i : longint;
-        rchar: char;
+        rchar, ochar: char;
         crc: Cardinal;
         crc: Cardinal;
         charstoremove: integer;
         charstoremove: integer;
       begin
       begin
         Result:=s;
         Result:=s;
         rchar:=target_asm.dollarsign;
         rchar:=target_asm.dollarsign;
-        for i:=1 to Length(Result) do
-          if Result[i]='$' then
-            Result[i]:=rchar;
+        if target_asm.id=as_i386_wasm then
+          ochar:='.'
+        else
+          ochar:='$';
+        if (ochar<>rchar) then
+          for  i:=1 to Length(Result) do
+            if Result[i]=ochar then
+              Result[i]:=rchar;
         if (target_asm.labelmaxlen<>-1) and (Length(Result)>target_asm.labelmaxlen) then
         if (target_asm.labelmaxlen<>-1) and (Length(Result)>target_asm.labelmaxlen) then
           begin
           begin
             crc:=0;
             crc:=0;