Browse Source

* pseudo instructions for flag handling

florian 3 years ago
parent
commit
b29b81ae7b
2 changed files with 10 additions and 2 deletions
  1. 5 1
      compiler/riscv/itcpugas.pas
  2. 5 1
      compiler/riscv32/cpubase.pas

+ 5 - 1
compiler/riscv/itcpugas.pas

@@ -107,7 +107,11 @@ unit itcpugas;
         'wfi',
 
         { Supervisor mode }
-        'sfence.vm'
+        'sfence.vm',
+
+        { pseudo instructions for accessiong control and status registers }
+        'rdinstret','rdcycle','rdtime','csrr','csrw','csrs','csrc','csrwi',
+        'csrsi','csrci'
         );
 
     function gas_regnum_search(const s: string): Tregister;

+ 5 - 1
compiler/riscv32/cpubase.pas

@@ -88,7 +88,11 @@ uses
         A_WFI,
 
         { Supervisor }
-        A_SFENCE_VM
+        A_SFENCE_VM,
+
+        { pseudo instructions for accessiong control and status registers }
+        A_RDINSTRET,A_RDCYCLE,A_RDTIME,A_CSRR,A_CSRW,A_CSRS,A_CSRC,A_CSRWI,
+        A_CSRSI,A_CSRCI
         );
 
       TAsmOps = set of TAsmOp;