浏览代码

+ implemented thlcgwasm.g_unreachable, emits the 'unreachable' WebAssembly instruction

Nikolay Nikolov 3 年之前
父节点
当前提交
9526b939a2
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      compiler/wasm32/hlcgcpu.pas

+ 7 - 0
compiler/wasm32/hlcgcpu.pas

@@ -99,6 +99,8 @@ uses
       procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tdef; reg: tregister; const ref: treference); override;
       procedure a_loadfpu_reg_reg(list: TAsmList; fromsize, tosize: tdef; reg1, reg2: tregister); override;
 
+      procedure g_unreachable(list: TAsmList); override;
+
       procedure g_concatcopy(list : TAsmList;size: tdef; const source,dest : treference); override;
 
       procedure g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean); override;
@@ -1682,6 +1684,11 @@ implementation
       a_load_stack_reg(list,tosize,reg2);
     end;
 
+  procedure thlcgwasm.g_unreachable(list: TAsmList);
+    begin
+      list.Concat(taicpu.op_none(a_unreachable));
+    end;
+
   procedure thlcgwasm.g_concatcopy(list: TAsmList; size: tdef; const source, dest: treference);
     var
       pd: tprocdef;