diff options
Diffstat (limited to 'riscv_new/compiler/riscv/aasmcpu.pas')
-rw-r--r-- | riscv_new/compiler/riscv/aasmcpu.pas | 15 |
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; |