瀏覽代碼

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

git-svn-id: branches/wasm@47951 -
nickysn 4 年之前
父節點
當前提交
017b7903cf
共有 1 個文件被更改,包括 10 次插入0 次删除
  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;