소스 검색

* fixed WebAssembly code generation for 'if boolean64 then ... else ...'

Nikolay Nikolov 3 년 전
부모
커밋
2e5b895d70
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      compiler/wasm32/nwasmflw.pas

+ 7 - 0
compiler/wasm32/nwasmflw.pas

@@ -213,6 +213,13 @@ implementation
         secondpass(left); // condition exprssions
         thlcgwasm(hlcg).a_load_loc_stack(current_asmdata.CurrAsmList,left.resultdef,left.location);
 
+        if is_64bit(left.resultdef) then
+          begin
+            thlcgwasm(hlcg).a_load_const_stack(current_asmdata.CurrAsmList,left.resultdef,0,R_INTREGISTER);
+            current_asmdata.CurrAsmList.Concat(taicpu.op_none(a_i64_ne));
+            thlcgwasm(hlcg).decstack(current_asmdata.CurrAsmList,1);
+          end;
+
         current_asmdata.CurrAsmList.concat(taicpu.op_none(a_if));
         thlcgwasm(hlcg).incblock;
         thlcgwasm(hlcg).decstack(current_asmdata.CurrAsmList,1);