Преглед изворни кода

* Better fix for atomic operations on wasm

Michaël Van Canneyt пре 8 месеци
родитељ
комит
3f0593b554
3 измењених фајлова са 7 додато и 7 уклоњено
  1. 1 1
      compiler/fpcdefs.inc
  2. 1 1
      compiler/ncginl.pas
  3. 5 5
      rtl/inc/systemh.inc

+ 1 - 1
compiler/fpcdefs.inc

@@ -437,7 +437,7 @@
 {$ifdef wasm32}
 {$ifdef wasm32}
   {$define wasm}
   {$define wasm}
   {$define cpu32bit}
   {$define cpu32bit}
-  {$define cpu64bitalu}
+  {$define cpu32bitalu}
   {$define cpu32bitaddr}
   {$define cpu32bitaddr}
   {$define cpuhighleveltarget}
   {$define cpuhighleveltarget}
   {$define cpurox}
   {$define cpurox}

+ 1 - 1
compiler/ncginl.pas

@@ -632,7 +632,7 @@ implementation
 
 
           location_reset(location,LOC_VOID,OS_NO);
           location_reset(location,LOC_VOID,OS_NO);
 
 
-{$ifndef cpu64bitalu}
+{$if not defined(cpu64bitalu) and not defined(cpuhighleveltarget)}
           if (def_cgsize(left.resultdef) in [OS_64,OS_S64]) and (left.location.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_REFERENCE,LOC_CREFERENCE]) then
           if (def_cgsize(left.resultdef) in [OS_64,OS_S64]) and (left.location.loc in [LOC_REGISTER,LOC_CREGISTER,LOC_REFERENCE,LOC_CREFERENCE]) then
             cg64.a_op64_loc(current_asmdata.CurrAsmList,negnotop[inlinenumber],def_cgsize(left.resultdef),left.location)
             cg64.a_op64_loc(current_asmdata.CurrAsmList,negnotop[inlinenumber],def_cgsize(left.resultdef),left.location)
           else
           else

+ 5 - 5
rtl/inc/systemh.inc

@@ -500,19 +500,19 @@ Type
   TExitCode = Word;
   TExitCode = Word;
 {$endif CPU16}
 {$endif CPU16}
 
 
-{$if defined(CPU8)}
+{$if defined(CPUINT8)}
   ALUSInt = ShortInt;
   ALUSInt = ShortInt;
   ALUUInt = Byte;
   ALUUInt = Byte;
-{$elseif defined(CPU16)}
+{$elseif defined(CPUINT16)}
   ALUSInt = SmallInt;
   ALUSInt = SmallInt;
   ALUUInt = Word;
   ALUUInt = Word;
-{$elseif defined(CPU32)}
+{$elseif defined(CPUINT32)}
   ALUSInt = Longint;
   ALUSInt = Longint;
   ALUUInt = DWord;
   ALUUInt = DWord;
-{$elseif defined(CPU64)}
+{$elseif defined(CPUINT64)}
   ALUSInt = Int64;
   ALUSInt = Int64;
   ALUUInt = QWord;
   ALUUInt = QWord;
-{$endif defined(CPU64)}
+{$endif defined(CPUINT64)}
 
 
   { NativeInt and NativeUInt are Delphi compatibility types. Even though Delphi
   { NativeInt and NativeUInt are Delphi compatibility types. Even though Delphi
     has IntPtr and UIntPtr, the Delphi documentation for NativeInt states that
     has IntPtr and UIntPtr, the Delphi documentation for NativeInt states that