Browse Source

+ added validation for the base and index registers in taicpu.op_ref

git-svn-id: branches/wasm@47951 -
nickysn 4 years ago
parent
commit
017b7903cf
1 changed files with 10 additions and 0 deletions
  1. 10 0
      compiler/wasm32/aasmcpu.pas

+ 10 - 0
compiler/wasm32/aasmcpu.pas

@@ -203,6 +203,16 @@ implementation
         inherited create(op);
         ops:=1;
         loadref(0,_op1);
+        if op in [a_get_local,a_set_local,a_tee_local] then
+          begin
+            if (_op1.base<>NR_LOCAL_STACK_POINTER_REG) or (_op1.index<>NR_NO) then
+              internalerror(2021010201);
+          end
+        else
+          begin
+            if (_op1.base<>NR_NO) or (_op1.index<>NR_NO) then
+              internalerror(2021010201);
+          end;
       end;