소스 검색

* always keep the WebAssembly stack frame aligned on 16 bytes

git-svn-id: trunk@49179 -
nickysn 4 년 전
부모
커밋
340a71d2bc
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      compiler/wasm32/cpupi.pas

+ 7 - 0
compiler/wasm32/cpupi.pas

@@ -36,6 +36,7 @@ interface
 
     tcpuprocinfo=class(tcgprocinfo)
     public
+      function calc_stackframe_size : longint;override;
       procedure setup_eh; override;
       procedure postprocess_code; override;
       procedure set_first_temp_offset;override;
@@ -77,6 +78,12 @@ implementation
                            tcpuprocinfo
 *****************************************************************************}
 
+    function tcpuprocinfo.calc_stackframe_size: longint;
+      begin
+        { the stack frame in WebAssembly should always have a 16-byte alignment }
+        Result:=Align(inherited calc_stackframe_size,16);
+      end;
+
     procedure tcpuprocinfo.setup_eh;
       begin
         cexceptionstatehandler:=twasmexceptionstatehandler;