Przeglądaj źródła

+ completed identifiers for RiscV ABIs

florian 2 lat temu
rodzic
commit
c8b5dd7da8
3 zmienionych plików z 13 dodań i 1 usunięć
  1. 6 0
      compiler/systems.inc
  2. 6 0
      compiler/systems.pas
  3. 1 1
      compiler/systems/i_freertos.pas

+ 6 - 0
compiler/systems.inc

@@ -371,6 +371,12 @@
             ,abi_old_win32_gnu
             ,abi_aarch64_darwin
             ,abi_riscv_hf
+            ,abi_riscv_ilp32
+            ,abi_riscv_ilp32f
+            ,abi_riscv_ilp32d
+            ,abi_riscv_lp64
+            ,abi_riscv_lp64f
+            ,abi_riscv_lp64d
             { stack is aligned and all room for parameters is reserved on
               entry, but depending on the calling convention, the parameters
               may still be removed by the callee (and then the stack needs to

+ 6 - 0
compiler/systems.pas

@@ -488,6 +488,12 @@ interface
          (name: 'OLDWIN32GNU'; supported:{$ifdef I386}true{$else}false{$endif}),
          (name: 'AARCH64IOS'; supported:{$ifdef aarch64}true{$else}false{$endif}),
          (name: 'RISCVHF'; supported:{$if defined(riscv32) or defined(riscv64)}true{$else}false{$endif}),
+         (name: 'RISCV32ILP'; supported:{$if defined(riscv32)}true{$else}false{$endif}),
+         (name: 'RISCV32ILPF'; supported:{$if defined(riscv32)}true{$else}false{$endif}),
+         (name: 'RISCV32ILPD'; supported:{$if defined(riscv32)}true{$else}false{$endif}),
+         (name: 'RISCV64LP'; supported:{$if defined(riscv64)}true{$else}false{$endif}),
+         (name: 'RISCV64LPF'; supported:{$if defined(riscv64)}true{$else}false{$endif}),
+         (name: 'RISCV64LPD'; supported:{$if defined(riscv64)}true{$else}false{$endif}),
          (name: 'LINUX386_SYSV'; supported:{$if defined(i386)}true{$else}false{$endif}),
          (name: 'WINDOWED'; supported:{$if defined(xtensa)}true{$else}false{$endif}),
          (name: 'CALL0'; supported:{$if defined(xtensa)}true{$else}false{$endif})

+ 1 - 1
compiler/systems/i_freertos.pas

@@ -849,7 +849,7 @@ unit i_freertos;
             first_parm_offset : 8;
             stacksize    : 65536;
             stackalign   : 16;
-            abi : abi_xtensa_windowed;
+            abi : abi_riscv_ilp32;
             llvmdatalayout : 'e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S32';
           );