* some more tiny m68k hacks...

git-svn-id: trunk@2804 -
This commit is contained in:
Károly Balogh 2006-03-07 23:01:55 +00:00
parent cb807cb2af
commit 3b2fe2b622
7 changed files with 20 additions and 10 deletions

2
.gitattributes vendored
View File

@ -165,7 +165,7 @@ compiler/impdef.pas svneol=native#text/plain
compiler/import.pas svneol=native#text/plain compiler/import.pas svneol=native#text/plain
compiler/link.pas svneol=native#text/plain compiler/link.pas svneol=native#text/plain
compiler/m68k/aasmcpu.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/aoptcpu.pas svneol=native#text/plain
compiler/m68k/aoptcpub.pas svneol=native#text/plain compiler/m68k/aoptcpub.pas svneol=native#text/plain
compiler/m68k/aoptcpud.pas svneol=native#text/plain compiler/m68k/aoptcpud.pas svneol=native#text/plain

View File

@ -107,7 +107,7 @@ type
globtype; 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 const
gas_op2str:op2strtable= gas_op2str:op2strtable=
{ warning: CPU32 opcodes are not fully compatible with the MC68020. } { warning: CPU32 opcodes are not fully compatible with the MC68020. }

View File

@ -21,7 +21,7 @@
} }
{ This unit implements an asmoutput class for i386 AT&T syntax { This unit implements an asmoutput class for i386 AT&T syntax
} }
unit agcpugas; unit ag68kgas;
{$i fpcdefs.inc} {$i fpcdefs.inc}

View File

@ -417,11 +417,21 @@ implementation
cgsize2subreg:=R_SUBWHOLE; cgsize2subreg:=R_SUBWHOLE;
OS_64,OS_S64: OS_64,OS_S64:
begin begin
writeln('64bit regsize?'); // writeln('64bit regsize?');
cgsize2subreg:=R_SUBWHOLE; cgsize2subreg:=R_SUBWHOLE;
end; end;
OS_F32 :
cgsize2subreg:=R_SUBFS;
OS_F64 :
cgsize2subreg:=R_SUBFD;
{
begin
// is this correct? (KB)
cgsize2subreg:=R_SUBNONE;
end;
}
else begin else begin
writeln('hmm!?'); writeln('M68K: invalid register size');
// this supposed to be debug // this supposed to be debug
// p:=nil; dword(p^):=0; // p:=nil; dword(p^):=0;
// internalerror(200301231); // internalerror(200301231);
@ -438,7 +448,7 @@ implementation
R_INTREGISTER : R_INTREGISTER :
result:=OS_32; result:=OS_32;
R_FPUREGISTER : R_FPUREGISTER :
result:=OS_F32; result:=OS_F64;
else else
internalerror(200303181); internalerror(200303181);
end; end;

View File

@ -374,7 +374,7 @@ unit cpupara;
else if (loc = LOC_FPUREGISTER) and else if (loc = LOC_FPUREGISTER) and
(nextfloatreg <= RS_FP2) then (nextfloatreg <= RS_FP2) then
begin begin
writeln('loc fpuregister'); // writeln('loc fpuregister');
paraloc^.loc:=loc; paraloc^.loc:=loc;
paraloc^.size := paracgsize; paraloc^.size := paracgsize;
paraloc^.register:=newreg(R_FPUREGISTER,nextfloatreg,R_SUBWHOLE); paraloc^.register:=newreg(R_FPUREGISTER,nextfloatreg,R_SUBWHOLE);
@ -384,7 +384,7 @@ unit cpupara;
else { LOC_REFERENCE } else { LOC_REFERENCE }
} }
begin begin
writeln('loc reference'); // writeln('loc reference');
paraloc^.loc:=LOC_REFERENCE; paraloc^.loc:=LOC_REFERENCE;
paraloc^.size:=int_cgsize(paralen); paraloc^.size:=int_cgsize(paralen);
if (side = callerside) then if (side = callerside) then

View File

@ -55,7 +55,7 @@ implementation
Assemblers Assemblers
**************************************} **************************************}
,agcpugas ,ag68kgas
; ;
end. end.

View File

@ -105,7 +105,7 @@ Implementation
{ pass 1 } { pass 1 }
nbas, nbas,
{ parser } { parser }
scanner,agcpugas, scanner,ag68kgas,
itcpugas itcpugas
; ;