From 3b2fe2b622b9c593553689c823cadd4665eb58e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A1roly=20Balogh?= <karoly@freepascal.org>
Date: Tue, 7 Mar 2006 23:01:55 +0000
Subject: [PATCH]  * some more tiny m68k hacks...

git-svn-id: trunk@2804 -
---
 .gitattributes                               |  2 +-
 compiler/m68k/aasmcpu.pas                    |  2 +-
 compiler/m68k/{agcpugas.pas => ag68kgas.pas} |  2 +-
 compiler/m68k/cpubase.pas                    | 16 +++++++++++++---
 compiler/m68k/cpupara.pas                    |  4 ++--
 compiler/m68k/cputarg.pas                    |  2 +-
 compiler/m68k/ra68kmot.pas                   |  2 +-
 7 files changed, 20 insertions(+), 10 deletions(-)
 rename compiler/m68k/{agcpugas.pas => ag68kgas.pas} (99%)

diff --git a/.gitattributes b/.gitattributes
index 59617fd11c..c5a214fe7a 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -165,7 +165,7 @@ compiler/impdef.pas svneol=native#text/plain
 compiler/import.pas svneol=native#text/plain
 compiler/link.pas svneol=native#text/plain
 compiler/m68k/aasmcpu.pas svneol=native#text/plain
-compiler/m68k/agcpugas.pas svneol=native#text/plain
+compiler/m68k/ag68kgas.pas svneol=native#text/plain
 compiler/m68k/aoptcpu.pas svneol=native#text/plain
 compiler/m68k/aoptcpub.pas svneol=native#text/plain
 compiler/m68k/aoptcpud.pas svneol=native#text/plain
diff --git a/compiler/m68k/aasmcpu.pas b/compiler/m68k/aasmcpu.pas
index 0dba0b889f..42e3b1b060 100644
--- a/compiler/m68k/aasmcpu.pas
+++ b/compiler/m68k/aasmcpu.pas
@@ -107,7 +107,7 @@ type
       globtype;
 
 
-{$WARNING FIX ME!! useful for debug, remove it, same table as in agcpugas }
+{$WARNING FIX ME!! useful for debug, remove it, same table as in ag68kgas }
     const
       gas_op2str:op2strtable=
     {  warning: CPU32 opcodes are not fully compatible with the MC68020. }
diff --git a/compiler/m68k/agcpugas.pas b/compiler/m68k/ag68kgas.pas
similarity index 99%
rename from compiler/m68k/agcpugas.pas
rename to compiler/m68k/ag68kgas.pas
index cda7126ddc..c4aca54fc3 100644
--- a/compiler/m68k/agcpugas.pas
+++ b/compiler/m68k/ag68kgas.pas
@@ -21,7 +21,7 @@
 }
 { This unit implements an asmoutput class for i386 AT&T syntax
 }
-unit agcpugas;
+unit ag68kgas;
 
 {$i fpcdefs.inc}
 
diff --git a/compiler/m68k/cpubase.pas b/compiler/m68k/cpubase.pas
index 90bf3eebbf..e0184bcf01 100644
--- a/compiler/m68k/cpubase.pas
+++ b/compiler/m68k/cpubase.pas
@@ -417,11 +417,21 @@ implementation
             cgsize2subreg:=R_SUBWHOLE;
           OS_64,OS_S64:
             begin
-             writeln('64bit regsize?');
+//             writeln('64bit regsize?');
              cgsize2subreg:=R_SUBWHOLE;
             end;
+          OS_F32 :
+            cgsize2subreg:=R_SUBFS;
+          OS_F64 :
+            cgsize2subreg:=R_SUBFD;
+{            
+            begin
+              // is this correct? (KB)
+              cgsize2subreg:=R_SUBNONE;
+            end;
+}
           else begin
-            writeln('hmm!?');
+            writeln('M68K: invalid register size');
     // this supposed to be debug
     //        p:=nil; dword(p^):=0;
     //        internalerror(200301231);
@@ -438,7 +448,7 @@ implementation
           R_INTREGISTER :
             result:=OS_32;
           R_FPUREGISTER :
-            result:=OS_F32;
+            result:=OS_F64;
           else
             internalerror(200303181);
         end;
diff --git a/compiler/m68k/cpupara.pas b/compiler/m68k/cpupara.pas
index 33d1b83dfd..57d7519188 100644
--- a/compiler/m68k/cpupara.pas
+++ b/compiler/m68k/cpupara.pas
@@ -374,7 +374,7 @@ unit cpupara;
                 else if (loc = LOC_FPUREGISTER) and
                         (nextfloatreg <= RS_FP2) then
                   begin
-		    writeln('loc fpuregister');
+//		    writeln('loc fpuregister');
                     paraloc^.loc:=loc;
                     paraloc^.size := paracgsize;
                     paraloc^.register:=newreg(R_FPUREGISTER,nextfloatreg,R_SUBWHOLE);
@@ -384,7 +384,7 @@ unit cpupara;
                 else { LOC_REFERENCE }
 }
                   begin
-		    writeln('loc reference');
+//		    writeln('loc reference');
                     paraloc^.loc:=LOC_REFERENCE;
                     paraloc^.size:=int_cgsize(paralen);
                     if (side = callerside) then
diff --git a/compiler/m68k/cputarg.pas b/compiler/m68k/cputarg.pas
index 891caac8c6..ad73f0f145 100644
--- a/compiler/m68k/cputarg.pas
+++ b/compiler/m68k/cputarg.pas
@@ -55,7 +55,7 @@ implementation
              Assemblers
 **************************************}
 
-      ,agcpugas
+      ,ag68kgas
       ;
 
 end.
diff --git a/compiler/m68k/ra68kmot.pas b/compiler/m68k/ra68kmot.pas
index d77b050f02..897930be04 100644
--- a/compiler/m68k/ra68kmot.pas
+++ b/compiler/m68k/ra68kmot.pas
@@ -105,7 +105,7 @@ Implementation
        { pass 1 }
        nbas,
        { parser }
-       scanner,agcpugas,
+       scanner,ag68kgas,
        itcpugas
        ;