Browse Source

+ RV64GCB CPU type

florian 5 months ago
parent
commit
8e45bb133d
2 changed files with 8 additions and 5 deletions
  1. 2 2
      compiler/riscv/agrvgas.pas
  2. 6 3
      compiler/riscv64/cpuinfo.pas

+ 2 - 2
compiler/riscv/agrvgas.pas

@@ -237,8 +237,8 @@ unit agrvgas;
           ('','rv32imafdc','rv32imafd','rv32imfd','rv32ifd','rv32efd','rv32imcfd','rv32imafdc','rv32imafd','rv32ecfd','rv32gc')
           ('','rv32imafdc','rv32imafd','rv32imfd','rv32ifd','rv32efd','rv32imcfd','rv32imafdc','rv32imafd','rv32ecfd','rv32gc')
 {$endif RISCV32}
 {$endif RISCV32}
 {$ifdef RISCV64}
 {$ifdef RISCV64}
-          ('','rv64imac','rv64ima','rv64im','rv64i','rv64imafdc','rv64imafd','rv64gc'),
-          ('','rv64imafdc','rv64imafd','rv64imfd','rv64ifd','rv64imafdc','rv64imafd','rv64gc')
+          ('','rv64imac','rv64ima','rv64im','rv64i','rv64imafdc','rv64imafd','rv64gc','rv64gcb'),
+          ('','rv64imafdc','rv64imafd','rv64imfd','rv64ifd','rv64imafdc','rv64imafd','rv64gc','rv64gcb')
 {$endif RISCV64}
 {$endif RISCV64}
         );
         );
       begin
       begin

+ 6 - 3
compiler/riscv64/cpuinfo.pas

@@ -40,7 +40,8 @@ type
     cpu_rv64i,
     cpu_rv64i,
     cpu_rv64imafdc,
     cpu_rv64imafdc,
     cpu_rv64imafd,
     cpu_rv64imafd,
-    cpu_rv64gc
+    cpu_rv64gc,
+    cpu_rv64gcb
   );
   );
 
 
   tfputype =
   tfputype =
@@ -96,7 +97,8 @@ Const
     'RV64I',
     'RV64I',
     'RV64IMAFDC',
     'RV64IMAFDC',
     'RV64IMAFD',
     'RV64IMAFD',
-    'RV64GC'
+    'RV64GC',
+    'RV64GCB'
     );
     );
 
 
   fputypestr: array[tfputype] of string[8] = (
   fputypestr: array[tfputype] of string[8] = (
@@ -157,7 +159,8 @@ Const
        { cpu_rv64i      } [],
        { cpu_rv64i      } [],
        { cpu_rv64imafdc } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_COMPACT,CPURV_HAS_F,CPURV_HAS_D],
        { cpu_rv64imafdc } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_COMPACT,CPURV_HAS_F,CPURV_HAS_D],
        { cpu_rv64imafd  } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_F,CPURV_HAS_D],
        { cpu_rv64imafd  } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_F,CPURV_HAS_D],
-       { cpu_rv64gc     } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_COMPACT,CPURV_HAS_CSR_INSTRUCTIONS,CPURV_HAS_FETCH_FENCE,CPURV_HAS_F,CPURV_HAS_D]
+       { cpu_rv64gc     } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_COMPACT,CPURV_HAS_CSR_INSTRUCTIONS,CPURV_HAS_FETCH_FENCE,CPURV_HAS_F,CPURV_HAS_D],
+       { cpu_rv64gcb    } [CPURV_HAS_MUL,CPURV_HAS_ATOMIC,CPURV_HAS_COMPACT,CPURV_HAS_CSR_INSTRUCTIONS,CPURV_HAS_FETCH_FENCE,CPURV_HAS_F,CPURV_HAS_D,CPURV_HAS_ZBA,CPURV_HAS_ZBB,CPURV_HAS_ZBS]
      );
      );
 
 
 implementation
 implementation