mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-09 18:46:07 +02:00
* fix m68k compile
This commit is contained in:
parent
7ff85f0779
commit
2bb32541be
@ -176,7 +176,6 @@ Implementation
|
||||
|
||||
var r:Tregister;
|
||||
rs:Tsuperregister;
|
||||
i:longint;
|
||||
|
||||
begin
|
||||
if unusedscratchregisters=[] then
|
||||
@ -201,12 +200,11 @@ Implementation
|
||||
|
||||
var r:Tregister;
|
||||
rs:Tsuperregister;
|
||||
i:longint;
|
||||
|
||||
begin
|
||||
if unusedscratchregisters=[] then
|
||||
internalerror(68996);
|
||||
|
||||
|
||||
if RS_A0 in unusedscratchregisters then
|
||||
rs:=RS_A0
|
||||
else if RS_A1 in unusedscratchregisters then
|
||||
@ -227,8 +225,6 @@ Implementation
|
||||
{****************************************************************************}
|
||||
function tcg68k.fixref(list: taasmoutput; var ref: treference): boolean;
|
||||
|
||||
var
|
||||
tmpreg: tregister;
|
||||
begin
|
||||
result := false;
|
||||
{ The Coldfire and MC68020+ have extended
|
||||
@ -1030,9 +1026,6 @@ Implementation
|
||||
reference_release(list,hp2);
|
||||
end;
|
||||
|
||||
{ loading SELF-reference again }
|
||||
g_maybe_loadself(list);
|
||||
|
||||
if delsource then
|
||||
tg.ungetiftemp(list,source);
|
||||
|
||||
@ -1048,9 +1041,9 @@ Implementation
|
||||
end;
|
||||
|
||||
procedure tcg68k.g_stackframe_entry(list : taasmoutput;localsize : longint);
|
||||
|
||||
|
||||
var r,r2,rsp:Tregister;
|
||||
|
||||
|
||||
begin
|
||||
r.enum:=frame_pointer_reg;
|
||||
rsp.enum:=stack_pointer_reg;
|
||||
@ -1072,9 +1065,9 @@ Implementation
|
||||
end;
|
||||
|
||||
procedure tcg68k.g_restore_frame_pointer(list : taasmoutput);
|
||||
|
||||
|
||||
var r:Tregister;
|
||||
|
||||
|
||||
begin
|
||||
r.enum:=frame_pointer_reg;
|
||||
list.concat(taicpu.op_reg(A_UNLK,S_NO,r));
|
||||
@ -1137,7 +1130,7 @@ Implementation
|
||||
|
||||
var tosave:Tsupregset;
|
||||
r:Tregister;
|
||||
|
||||
|
||||
begin
|
||||
tosave:=std_saved_registers;
|
||||
{ only save the registers which are not used and must be saved }
|
||||
@ -1344,7 +1337,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.18 2003-02-19 22:00:16 daniel
|
||||
Revision 1.19 2003-04-23 13:40:33 peter
|
||||
* fix m68k compile
|
||||
|
||||
Revision 1.18 2003/02/19 22:00:16 daniel
|
||||
* Code generator converted to new register notation
|
||||
- Horribily outdated todo.txt removed
|
||||
|
||||
|
@ -174,6 +174,9 @@ uses
|
||||
first_supreg = $01;
|
||||
last_supreg = $10;
|
||||
|
||||
first_imreg = $11;
|
||||
last_imreg = $ff;
|
||||
|
||||
{# First register in the tregister enumeration }
|
||||
firstreg = low(Toldregister);
|
||||
{# Last register in the tregister enumeration }
|
||||
@ -706,7 +709,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.19 2003-04-23 12:35:35 florian
|
||||
Revision 1.20 2003-04-23 13:40:33 peter
|
||||
* fix m68k compile
|
||||
|
||||
Revision 1.19 2003/04/23 12:35:35 florian
|
||||
* fixed several issues with powerpc
|
||||
+ applied a patch from Jonas for nested function calls (PowerPC only)
|
||||
* ...
|
||||
|
@ -164,7 +164,7 @@ implementation
|
||||
begin
|
||||
{ byte(boolean) or word(wordbool) or longint(longbool) must }
|
||||
{ be accepted for var parameters }
|
||||
if (nf_explizit in flags) and
|
||||
if (nf_explicit in flags) and
|
||||
(left.resulttype.def.size=resulttype.def.size) and
|
||||
(left.location.loc in [LOC_REFERENCE,LOC_CREFERENCE,LOC_CREGISTER]) then
|
||||
begin
|
||||
@ -296,7 +296,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.8 2003-02-19 22:00:16 daniel
|
||||
Revision 1.9 2003-04-23 13:40:33 peter
|
||||
* fix m68k compile
|
||||
|
||||
Revision 1.8 2003/02/19 22:00:16 daniel
|
||||
* Code generator converted to new register notation
|
||||
- Horribily outdated todo.txt removed
|
||||
|
||||
@ -326,4 +329,4 @@ end.
|
||||
* out of bound references should now be handled correctly
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -35,9 +35,6 @@ unit rgcpu;
|
||||
|
||||
type
|
||||
trgcpu = class(trgobj)
|
||||
unusedregsaddr,usableregsaddr:Tsupregset;
|
||||
countunusedregsaddr,
|
||||
countusableregsaddr : byte;
|
||||
procedure saveStateForInline(var state: pointer);override;
|
||||
procedure restoreStateAfterInline(var state: pointer);override;
|
||||
procedure saveUnusedState(var state: pointer);override;
|
||||
@ -78,11 +75,11 @@ unit rgcpu;
|
||||
usedintinproc,
|
||||
unusedregsint,
|
||||
countunusedregsint);
|
||||
|
||||
|
||||
end;
|
||||
|
||||
|
||||
function trgcpu.isaddressregister(reg: tregister): boolean;
|
||||
|
||||
|
||||
begin
|
||||
isaddressregister := reg.enum in addrregs;
|
||||
end;
|
||||
@ -215,7 +212,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.8 2003-04-22 10:09:35 daniel
|
||||
Revision 1.9 2003-04-23 13:40:33 peter
|
||||
* fix m68k compile
|
||||
|
||||
Revision 1.8 2003/04/22 10:09:35 daniel
|
||||
+ Implemented the actual register allocator
|
||||
+ Scratch registers unavailable when new register allocator used
|
||||
+ maybe_save/maybe_restore unavailable when new register allocator used
|
||||
|
Loading…
Reference in New Issue
Block a user