Browse Source

+ added thlcgwasm.a_load_subsetref_stack, not implemented yet

Nikolay Nikolov 3 years ago
parent
commit
ba9a8ab069
1 changed files with 9 additions and 0 deletions
  1. 9 0
      compiler/wasm32/hlcgcpu.pas

+ 9 - 0
compiler/wasm32/hlcgcpu.pas

@@ -139,6 +139,7 @@ uses
         will be removed by the load operation }
         will be removed by the load operation }
       procedure a_load_ref_stack(list : TAsmList;size: tdef;const ref: treference;extra_slots: longint);
       procedure a_load_ref_stack(list : TAsmList;size: tdef;const ref: treference;extra_slots: longint);
       procedure a_load_const_stack(list : TAsmList;size: tdef;a :tcgint; typ: TRegisterType);
       procedure a_load_const_stack(list : TAsmList;size: tdef;a :tcgint; typ: TRegisterType);
+      procedure a_load_subsetref_stack(list : TAsmList;size: tdef; const sref: tsubsetreference);
       procedure a_loadaddr_ref_stack(list : TAsmList;fromsize, tosize : tdef;const ref : treference);
       procedure a_loadaddr_ref_stack(list : TAsmList;fromsize, tosize : tdef;const ref : treference);
 
 
       procedure a_load_stack_loc(list : TAsmList;size: tdef;const loc: tlocation);
       procedure a_load_stack_loc(list : TAsmList;size: tdef;const loc: tlocation);
@@ -462,6 +463,8 @@ implementation
           end;
           end;
         LOC_CONSTANT:
         LOC_CONSTANT:
           a_load_const_stack(list,size,loc.value,def2regtyp(size));
           a_load_const_stack(list,size,loc.value,def2regtyp(size));
+        LOC_SUBSETREF,LOC_CSUBSETREF:
+          a_load_subsetref_stack(list,size,loc.sref);
         else
         else
           internalerror(2011010401);
           internalerror(2011010401);
       end;
       end;
@@ -1863,6 +1866,12 @@ implementation
       //  gen_typecheck(list,a_checkcast,size);
       //  gen_typecheck(list,a_checkcast,size);
     end;
     end;
 
 
+  procedure thlcgwasm.a_load_subsetref_stack(list : TAsmList;size: tdef; const sref: tsubsetreference);
+    begin
+      { todo: implement }
+      internalerror(2021080901);
+    end;
+
   function thlcgwasm.loadstoreopcref(def: tdef; isload: boolean; const ref: treference; out finishandval: tcgint): tasmop;
   function thlcgwasm.loadstoreopcref(def: tdef; isload: boolean; const ref: treference; out finishandval: tcgint): tasmop;
     const
     const
                           {iisload} {issigned}
                           {iisload} {issigned}