Selaa lähdekoodia

* m68k: spilling read, write, and replace is now bound to CPU capabilities instead of CPU family. This probably fixes some issues on 68000, where spilling replacement was not respecting CPU displacement handling boundaries, leading to assembler errors.

Karoly Balogh 3 vuotta sitten
vanhempi
commit
0600287c63
1 muutettua tiedostoa jossa 3 lisäystä ja 3 poistoa
  1. 3 3
      compiler/m68k/rgcpu.pas

+ 3 - 3
compiler/m68k/rgcpu.pas

@@ -60,7 +60,7 @@ unit rgcpu;
         helplist : tasmlist;
         helplist : tasmlist;
         hreg     : tregister;
         hreg     : tregister;
       begin
       begin
-        if (abs(spilltemp.offset)>32767) and (current_settings.cputype in (cpu_coldfire + [cpu_mc68000])) then
+        if (abs(spilltemp.offset)>32767) and not (CPUM68K_HAS_BASEDISP in cpu_capabilities[current_settings.cputype]) then
           begin
           begin
             helplist:=tasmlist.create;
             helplist:=tasmlist.create;
 
 
@@ -92,7 +92,7 @@ unit rgcpu;
         helplist : tasmlist;
         helplist : tasmlist;
         hreg     : tregister;
         hreg     : tregister;
       begin
       begin
-        if (abs(spilltemp.offset)>32767) and (current_settings.cputype in (cpu_coldfire + [cpu_mc68000])) then
+        if (abs(spilltemp.offset)>32767) and not (CPUM68K_HAS_BASEDISP in cpu_capabilities[current_settings.cputype]) then
           begin
           begin
             helplist:=tasmlist.create;
             helplist:=tasmlist.create;
 
 
@@ -126,7 +126,7 @@ unit rgcpu;
       begin
       begin
         result:=false;
         result:=false;
         opidx:=-1;
         opidx:=-1;
-        if (abs(spilltemp.offset)>32767) and (current_settings.cputype in cpu_coldfire) then
+        if (abs(spilltemp.offset)>32767) and not (CPUM68K_HAS_BASEDISP in cpu_capabilities[current_settings.cputype]) then
           exit;
           exit;
         case instr.ops of
         case instr.ops of
           1:
           1: