Kaynağa Gözat

+ completed identifiers for RiscV ABIs

florian 2 yıl önce
ebeveyn
işleme
87ec3d6fad

+ 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';
           );