Browse Source

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

Nikolay Nikolov 3 năm trước cách đây
mục cha
commit
2e5b895d70
1 tập tin đã thay đổi với 7 bổ sung0 xóa
  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);