ソースを参照

m68k: generate MUL helpers for CPUs without 32bit MUL already in pass 1

git-svn-id: trunk@36348 -
Károly Balogh 8 年 前
コミット
b3157aa5ea
2 ファイル変更7 行追加0 行削除
  1. 1 0
      compiler/fpcdefs.inc
  2. 6 0
      compiler/m68k/n68kadd.pas

+ 1 - 0
compiler/fpcdefs.inc

@@ -166,6 +166,7 @@
   {$define cpufpemu}
   {$define cpurefshaveindexreg}
   {$define cpucapabilities}
+  {$define cpuneedsmulhelper}
   {$define cpuneedsdivhelper}
   {$define cpu_uses_separate_address_registers}
 {$endif m68k}

+ 6 - 0
compiler/m68k/n68kadd.pas

@@ -38,6 +38,7 @@ interface
        protected
           function use_generic_mul64bit: boolean; override;
           function use_generic_mul32to64: boolean; override;
+          function use_mul_helper: boolean; override;
           procedure second_addfloat;override;
           procedure second_cmpfloat;override;
           procedure second_addordinal;override;
@@ -359,6 +360,11 @@ implementation
                                 Ordinals
 *****************************************************************************}
 
+    function t68kaddnode.use_mul_helper: boolean;
+      begin
+        result:=(nodetype=muln) and not (CPUM68K_HAS_32BITMUL in cpu_capabilities[current_settings.cputype]);
+      end;
+
     procedure t68kaddnode.second_addordinal;
       const
         mul_op_signed: array[boolean] of tasmop = ( A_MULU, A_MULS );