Przeglądaj źródła

+ use optimize_op_const in thlcgwasm.a_op_const_reg_reg

Nikolay Nikolov 8 godzin temu
rodzic
commit
03e21a8ca4
1 zmienionych plików z 14 dodań i 3 usunięć
  1. 14 3
      compiler/wasm32/hlcgcpu.pas

+ 14 - 3
compiler/wasm32/hlcgcpu.pas

@@ -1803,9 +1803,20 @@ implementation
 
   procedure thlcgwasm.a_op_const_reg_reg(list: TAsmList; op: TOpCg; size: tdef; a: tcgint; src, dst: tregister);
     begin
-      a_load_reg_stack(list,size,src);
-      a_op_const_stack(list,op,size,a);
-      a_load_stack_reg(list,size,dst);
+      optimize_op_const(size,op,a);
+
+      case op of
+        OP_NONE:
+          a_load_reg_reg(list,size,size,src,dst);
+        OP_MOVE:
+          a_load_const_reg(list,size,a,dst);
+        else
+          begin
+            a_load_reg_stack(list,size,src);
+            a_op_const_stack(list,op,size,a);
+            a_load_stack_reg(list,size,dst);
+          end;
+      end;
     end;
 
   procedure thlcgwasm.a_op_const_ref(list: TAsmList; Op: TOpCG; size: tdef; a: tcgint; const ref: TReference);