summaryrefslogtreecommitdiff
path: root/riscv_new/compiler/riscv/aasmcpu.pas
diff options
context:
space:
mode:
Diffstat (limited to 'riscv_new/compiler/riscv/aasmcpu.pas')
-rw-r--r--riscv_new/compiler/riscv/aasmcpu.pas15
1 files changed, 15 insertions, 0 deletions
diff --git a/riscv_new/compiler/riscv/aasmcpu.pas b/riscv_new/compiler/riscv/aasmcpu.pas
index 30acbaa154..c110dc1690 100644
--- a/riscv_new/compiler/riscv/aasmcpu.pas
+++ b/riscv_new/compiler/riscv/aasmcpu.pas
@@ -39,6 +39,7 @@ uses
type
taicpu = class(tai_cpu_abstract_sym)
+ memoryordering: TMemoryOrdering;
constructor op_none(op : tasmop);
constructor op_reg(op : tasmop;_op1 : tregister);
@@ -81,6 +82,7 @@ uses
constructor op_reg_sym_ofs(op : tasmop;_op1 : tregister;_op2:tasmsymbol;_op2ofs : aint);
constructor op_sym_ofs_ref(op : tasmop;_op1 : tasmsymbol;_op1ofs:aint;const _op2 : treference);
+ procedure loadfenceflags(opidx:aint;_flags:TFenceFlags);
procedure loadbool(opidx:aint;_b:boolean);
function is_same_reg_move(regtype: Tregistertype):boolean; override;
@@ -386,6 +388,19 @@ uses cutils, cclasses;
end;
+ procedure taicpu.loadfenceflags(opidx: aint; _flags: TFenceFlags);
+ begin
+ allocate_oper(opidx+1);
+ with oper[opidx]^ do
+ begin
+ if typ<>top_fenceflags then
+ clearop(opidx);
+ fenceflags:=_flags;
+ typ:=top_fenceflags;
+ end;
+ end;
+
+
{ ****************************** newra stuff *************************** }
function taicpu.is_same_reg_move(regtype: Tregistertype):boolean;