mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-10 21:49:14 +02:00
* aasm.pas: pai_align instead of pai_align_abstract if cpu <> i386
+ systems.pas: info for macos/ppc * new/cgobj.pas: compiles again without newst define * new/powerpc/cgcpu: generate different entry/exit code depending on whether target_os is MacOs or Linux
This commit is contained in:
parent
490769db7d
commit
57e41f9053
@ -195,8 +195,13 @@ unit aasm;
|
|||||||
|
|
||||||
{ alignment for operator }
|
{ alignment for operator }
|
||||||
|
|
||||||
|
{$ifdef i386}
|
||||||
pai_align_abstract = ^tai_align_abstract;
|
pai_align_abstract = ^tai_align_abstract;
|
||||||
tai_align_abstract = object(tai)
|
tai_align_abstract = object(tai)
|
||||||
|
{$else i386}
|
||||||
|
pai_align = ^tai_align;
|
||||||
|
tai_align = object(tai)
|
||||||
|
{$endif i386}
|
||||||
buf : array[0..63] of char; { buf used for fill }
|
buf : array[0..63] of char; { buf used for fill }
|
||||||
aligntype : byte; { 1 = no align, 2 = word align, 4 = dword align }
|
aligntype : byte; { 1 = no align, 2 = word align, 4 = dword align }
|
||||||
fillsize : byte; { real size to fill }
|
fillsize : byte; { real size to fill }
|
||||||
@ -715,7 +720,11 @@ uses
|
|||||||
TAI_ALIGN
|
TAI_ALIGN
|
||||||
****************************************************************************}
|
****************************************************************************}
|
||||||
|
|
||||||
|
{$ifdef i386}
|
||||||
constructor tai_align_abstract.init(b: byte);
|
constructor tai_align_abstract.init(b: byte);
|
||||||
|
{$else i386}
|
||||||
|
constructor tai_align.init(b: byte);
|
||||||
|
{$endif i386}
|
||||||
begin
|
begin
|
||||||
inherited init;
|
inherited init;
|
||||||
typ:=ait_align;
|
typ:=ait_align;
|
||||||
@ -729,7 +738,11 @@ uses
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{$ifdef i386}
|
||||||
constructor tai_align_abstract.init_op(b: byte; _op: byte);
|
constructor tai_align_abstract.init_op(b: byte; _op: byte);
|
||||||
|
{$else i386}
|
||||||
|
constructor tai_align.init_op(b: byte; _op: byte);
|
||||||
|
{$endif i386}
|
||||||
begin
|
begin
|
||||||
inherited init;
|
inherited init;
|
||||||
typ:=ait_align;
|
typ:=ait_align;
|
||||||
@ -744,7 +757,11 @@ uses
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{$ifdef i386}
|
||||||
function tai_align_abstract.getfillbuf:pchar;
|
function tai_align_abstract.getfillbuf:pchar;
|
||||||
|
{$else i386}
|
||||||
|
function tai_align.getfillbuf:pchar;
|
||||||
|
{$endif i386}
|
||||||
begin
|
begin
|
||||||
getfillbuf:=@buf;
|
getfillbuf:=@buf;
|
||||||
end;
|
end;
|
||||||
@ -1050,7 +1067,14 @@ uses
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.81 2000-04-10 12:21:33 jonas
|
Revision 1.82 2000-04-22 14:25:03 jonas
|
||||||
|
* aasm.pas: pai_align instead of pai_align_abstract if cpu <> i386
|
||||||
|
+ systems.pas: info for macos/ppc
|
||||||
|
* new/cgobj.pas: compiles again without newst define
|
||||||
|
* new/powerpc/cgcpu: generate different entry/exit code depending on
|
||||||
|
whether target_os is MacOs or Linux
|
||||||
|
|
||||||
|
Revision 1.81 2000/04/10 12:21:33 jonas
|
||||||
* added ait_symbol_end to SkipInstr
|
* added ait_symbol_end to SkipInstr
|
||||||
|
|
||||||
Revision 1.80 2000/02/29 23:55:53 pierre
|
Revision 1.80 2000/02/29 23:55:53 pierre
|
||||||
|
@ -759,7 +759,7 @@ unit cgobj;
|
|||||||
else
|
else
|
||||||
parasize:=aktprocdef^.localst^.paramdatasize+procinfo^.para_offset-pointersize;
|
parasize:=aktprocdef^.localst^.paramdatasize+procinfo^.para_offset-pointersize;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
if (aktproc^.proctypeoption in [potype_unitinit,potype_proginit,potype_unitfinalize]) then
|
if (aktprocsym^.definition^.proctypeoption in [potype_unitinit,potype_proginit,potype_unitfinalize]) then
|
||||||
parasize:=0
|
parasize:=0
|
||||||
else
|
else
|
||||||
parasize:=aktprocsym^.definition^.parast^.datasize+procinfo^.para_offset-pointersize;
|
parasize:=aktprocsym^.definition^.parast^.datasize+procinfo^.para_offset-pointersize;
|
||||||
@ -773,7 +773,7 @@ unit cgobj;
|
|||||||
else
|
else
|
||||||
parasize:=aktprocdef^.localst^.paramdatasize+procinfo^.para_offset-pointersize*2;
|
parasize:=aktprocdef^.localst^.paramdatasize+procinfo^.para_offset-pointersize*2;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
if (aktprocdef^.proctypeoption in [potype_unitinit,potype_proginit,potype_unitfinalize]) then
|
if (aktprocsym^.definition^.proctypeoption in [potype_unitinit,potype_proginit,potype_unitfinalize]) then
|
||||||
parasize:=0
|
parasize:=0
|
||||||
else
|
else
|
||||||
parasize:=aktprocsym^.definition^.parast^.datasize+procinfo^.para_offset-pointersize*2;
|
parasize:=aktprocsym^.definition^.parast^.datasize+procinfo^.para_offset-pointersize*2;
|
||||||
@ -783,7 +783,7 @@ unit cgobj;
|
|||||||
if (pointerrupt in aktprocdef^.options) then
|
if (pointerrupt in aktprocdef^.options) then
|
||||||
g_interrupt_stackframe_entry(list);
|
g_interrupt_stackframe_entry(list);
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
if (po_interrupt in aktprocdef^.procoptions) then
|
if (po_interrupt in aktprocsym^.definition^.procoptions) then
|
||||||
g_interrupt_stackframe_entry(list);
|
g_interrupt_stackframe_entry(list);
|
||||||
{$ENDIF NEWST}
|
{$ENDIF NEWST}
|
||||||
|
|
||||||
@ -1020,7 +1020,7 @@ unit cgobj;
|
|||||||
|
|
||||||
{$IFNDEF NEWST}
|
{$IFNDEF NEWST}
|
||||||
{ finalize paras data }
|
{ finalize paras data }
|
||||||
if assigned(aktprocdef^.parast) then
|
if assigned(aktprocsym^.definition^.parast) then
|
||||||
aktprocsym^.definition^.parast^.foreach({$ifndef TP}@{$endif}_finalize_data);
|
aktprocsym^.definition^.parast^.foreach({$ifndef TP}@{$endif}_finalize_data);
|
||||||
{$ENDIF NEWST}
|
{$ENDIF NEWST}
|
||||||
|
|
||||||
@ -1329,7 +1329,14 @@ unit cgobj;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.36 2000-03-11 21:11:24 daniel
|
Revision 1.37 2000-04-22 14:25:03 jonas
|
||||||
|
* aasm.pas: pai_align instead of pai_align_abstract if cpu <> i386
|
||||||
|
+ systems.pas: info for macos/ppc
|
||||||
|
* new/cgobj.pas: compiles again without newst define
|
||||||
|
* new/powerpc/cgcpu: generate different entry/exit code depending on
|
||||||
|
whether target_os is MacOs or Linux
|
||||||
|
|
||||||
|
Revision 1.36 2000/03/11 21:11:24 daniel
|
||||||
* Ported hcgdata to new symtable.
|
* Ported hcgdata to new symtable.
|
||||||
* Alignment code changed as suggested by Peter
|
* Alignment code changed as suggested by Peter
|
||||||
+ Usage of my is operator replacement, is_object
|
+ Usage of my is operator replacement, is_object
|
||||||
|
@ -62,11 +62,11 @@ unit cgcpu;
|
|||||||
|
|
||||||
procedure g_stackframe_entry_sysv(list : paasmoutput;localsize : longint);
|
procedure g_stackframe_entry_sysv(list : paasmoutput;localsize : longint);
|
||||||
procedure g_stackframe_entry_mac(list : paasmoutput;localsize : longint);
|
procedure g_stackframe_entry_mac(list : paasmoutput;localsize : longint);
|
||||||
{ procedure g_stackframe_entry(list : paasmoutput;localsize : longint);virtual;}
|
procedure g_stackframe_entry(list : paasmoutput;localsize : longint);virtual;
|
||||||
procedure g_restore_frame_pointer(list : paasmoutput);virtual;
|
procedure g_restore_frame_pointer(list : paasmoutput);virtual;
|
||||||
{ procedure g_return_from_proc(list : paasmoutput;parasize : aword); virtual;}
|
procedure g_return_from_proc(list : paasmoutput;parasize : aword); virtual;
|
||||||
procedure g_return_from_proc_sysv(list : paasmoutput;parasize : aword); virtual;
|
procedure g_return_from_proc_sysv(list : paasmoutput;parasize : aword);
|
||||||
procedure g_return_from_proc_mac(list : paasmoutput;parasize : aword); virtual;
|
procedure g_return_from_proc_mac(list : paasmoutput;parasize : aword);
|
||||||
|
|
||||||
procedure a_loadaddress_ref_reg(list : paasmoutput;const ref2 : treference;r : tregister);virtual;
|
procedure a_loadaddress_ref_reg(list : paasmoutput;const ref2 : treference;r : tregister);virtual;
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ const
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
globtype,globals,verbose;
|
globtype,globals,verbose,systems;
|
||||||
|
|
||||||
{ parameter passing... Still needs extra support from the processor }
|
{ parameter passing... Still needs extra support from the processor }
|
||||||
{ independent code generator }
|
{ independent code generator }
|
||||||
@ -365,6 +365,19 @@ const
|
|||||||
|
|
||||||
{ *********** entry/exit code and address loading ************ }
|
{ *********** entry/exit code and address loading ************ }
|
||||||
|
|
||||||
|
procedure tcgppc.g_stackframe_entry(list : paasmoutput;localsize : longint);
|
||||||
|
begin
|
||||||
|
case target_os.id of
|
||||||
|
os_powerpc_macos:
|
||||||
|
g_stackframe_entry_mac(list,localsize);
|
||||||
|
os_powerpc_linux:
|
||||||
|
g_stackframe_entry_sysv(list,localsize)
|
||||||
|
else
|
||||||
|
internalerror(2204001);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgppc.g_stackframe_entry_sysv(list : paasmoutput;localsize : longint);
|
procedure tcgppc.g_stackframe_entry_sysv(list : paasmoutput;localsize : longint);
|
||||||
{ generated the entry code of a procedure/function. Note: localsize is the }
|
{ generated the entry code of a procedure/function. Note: localsize is the }
|
||||||
{ sum of the size necessary for local variables and the maximum possible }
|
{ sum of the size necessary for local variables and the maximum possible }
|
||||||
@ -481,6 +494,19 @@ const
|
|||||||
{ no frame pointer on the PowerPC (maybe there is one in the SystemV ABI?)}
|
{ no frame pointer on the PowerPC (maybe there is one in the SystemV ABI?)}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure tcgppc.g_return_from_proc(list : paasmoutput;parasize : aword);
|
||||||
|
begin
|
||||||
|
case target_os.id of
|
||||||
|
os_powerpc_macos:
|
||||||
|
g_return_from_proc_mac(list,parasize);
|
||||||
|
os_powerpc_linux:
|
||||||
|
g_return_from_proc_sysv(list,parasize)
|
||||||
|
else
|
||||||
|
internalerror(2204001);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure tcgppc.g_return_from_proc_sysv(list : paasmoutput;parasize : aword);
|
procedure tcgppc.g_return_from_proc_sysv(list : paasmoutput;parasize : aword);
|
||||||
|
|
||||||
var regcounter: TRegister;
|
var regcounter: TRegister;
|
||||||
@ -491,7 +517,7 @@ const
|
|||||||
a_reg_dealloc(list,regcounter);
|
a_reg_dealloc(list,regcounter);
|
||||||
{ AltiVec context restore, not yet implemented !!! }
|
{ AltiVec context restore, not yet implemented !!! }
|
||||||
|
|
||||||
{ address if gpr save area to r11 }
|
{ address of gpr save area to r11 }
|
||||||
list^.concat(new(paicpu,op_reg_reg_const(A_ADDI,R_11,R_31,-144)));
|
list^.concat(new(paicpu,op_reg_reg_const(A_ADDI,R_11,R_31,-144)));
|
||||||
{ restore gprs }
|
{ restore gprs }
|
||||||
list^.concat(new(paicpu,op_sym_ofs(A_BL,newasmsymbol('_restgpr_14'),0)));
|
list^.concat(new(paicpu,op_sym_ofs(A_BL,newasmsymbol('_restgpr_14'),0)));
|
||||||
@ -719,7 +745,14 @@ const
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.11 2000-01-07 01:14:57 peter
|
Revision 1.12 2000-04-22 14:25:04 jonas
|
||||||
|
* aasm.pas: pai_align instead of pai_align_abstract if cpu <> i386
|
||||||
|
+ systems.pas: info for macos/ppc
|
||||||
|
* new/cgobj.pas: compiles again without newst define
|
||||||
|
* new/powerpc/cgcpu: generate different entry/exit code depending on
|
||||||
|
whether target_os is MacOs or Linux
|
||||||
|
|
||||||
|
Revision 1.11 2000/01/07 01:14:57 peter
|
||||||
* updated copyright to 2000
|
* updated copyright to 2000
|
||||||
|
|
||||||
Revision 1.10 1999/12/24 22:48:10 jonas
|
Revision 1.10 1999/12/24 22:48:10 jonas
|
||||||
|
@ -61,7 +61,7 @@ unit systems;
|
|||||||
target_i386_OS2,target_i386_Win32
|
target_i386_OS2,target_i386_Win32
|
||||||
,target_m68k_Amiga,target_m68k_Atari,target_m68k_Mac,
|
,target_m68k_Amiga,target_m68k_Atari,target_m68k_Mac,
|
||||||
target_m68k_linux,target_m68k_PalmOS,target_alpha_linux,
|
target_m68k_linux,target_m68k_PalmOS,target_alpha_linux,
|
||||||
target_powerpc_linux
|
target_powerpc_linux,target_powerpc_macos
|
||||||
);
|
);
|
||||||
|
|
||||||
ttargetflags = (tf_none,
|
ttargetflags = (tf_none,
|
||||||
@ -72,7 +72,7 @@ unit systems;
|
|||||||
{$ifdef i386} i386targetcnt=5; {$else} i386targetcnt=0; {$endif}
|
{$ifdef i386} i386targetcnt=5; {$else} i386targetcnt=0; {$endif}
|
||||||
{$ifdef m68k} m68ktargetcnt=5; {$else} m68ktargetcnt=0; {$endif}
|
{$ifdef m68k} m68ktargetcnt=5; {$else} m68ktargetcnt=0; {$endif}
|
||||||
{$ifdef alpha} alphatargetcnt=1; {$else} alphatargetcnt=0; {$endif}
|
{$ifdef alpha} alphatargetcnt=1; {$else} alphatargetcnt=0; {$endif}
|
||||||
{$ifdef powerpc} powerpctargetcnt=1; {$else} powerpctargetcnt=0; {$endif}
|
{$ifdef powerpc} powerpctargetcnt=2; {$else} powerpctargetcnt=0; {$endif}
|
||||||
targetcnt=i386targetcnt+m68ktargetcnt+alphatargetcnt+powerpctargetcnt+1;
|
targetcnt=i386targetcnt+m68ktargetcnt+alphatargetcnt+powerpctargetcnt+1;
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -83,14 +83,14 @@ unit systems;
|
|||||||
as_i386_tasm,as_i386_masm,
|
as_i386_tasm,as_i386_masm,
|
||||||
as_i386_dbg,as_i386_coff,as_i386_pecoff
|
as_i386_dbg,as_i386_coff,as_i386_pecoff
|
||||||
,as_m68k_as,as_m68k_gas,as_m68k_mit,as_m68k_mot,as_m68k_mpw,
|
,as_m68k_as,as_m68k_gas,as_m68k_mit,as_m68k_mot,as_m68k_mpw,
|
||||||
as_alpha_as,as_powerpc_as
|
as_alpha_as,as_powerpc_as,as_powerpc_mpw
|
||||||
);
|
);
|
||||||
{ binary assembler writers, needed to test for -a }
|
{ binary assembler writers, needed to test for -a }
|
||||||
const
|
const
|
||||||
{$ifdef i386} i386asmcnt=12; {$else} i386asmcnt=0; {$endif}
|
{$ifdef i386} i386asmcnt=12; {$else} i386asmcnt=0; {$endif}
|
||||||
{$ifdef m68k} m68kasmcnt=5; {$else} m68kasmcnt=0; {$endif}
|
{$ifdef m68k} m68kasmcnt=5; {$else} m68kasmcnt=0; {$endif}
|
||||||
{$ifdef alpha} alphaasmcnt=1; {$else} alphaasmcnt=0; {$endif}
|
{$ifdef alpha} alphaasmcnt=1; {$else} alphaasmcnt=0; {$endif}
|
||||||
{$ifdef powerpc} powerpcasmcnt=1; {$else} powerpcasmcnt=0; {$endif}
|
{$ifdef powerpc} powerpcasmcnt=2; {$else} powerpcasmcnt=0; {$endif}
|
||||||
asmcnt=i386asmcnt+m68kasmcnt+alphaasmcnt+powerpcasmcnt+1;
|
asmcnt=i386asmcnt+m68kasmcnt+alphaasmcnt+powerpcasmcnt+1;
|
||||||
|
|
||||||
binassem : set of tasm = [
|
binassem : set of tasm = [
|
||||||
@ -111,13 +111,13 @@ unit systems;
|
|||||||
|
|
||||||
type
|
type
|
||||||
tres = (res_none
|
tres = (res_none
|
||||||
,res_i386_windres
|
,res_i386_windres,res_m68k_mpw,res_powerpc_mpw
|
||||||
);
|
);
|
||||||
const
|
const
|
||||||
{$ifdef i386} i386rescnt=1; {$else} i386rescnt=0; {$endif}
|
{$ifdef i386} i386rescnt=1; {$else} i386rescnt=0; {$endif}
|
||||||
{$ifdef m68k} m68krescnt=0; {$else} m68krescnt=0; {$endif}
|
{$ifdef m68k} m68krescnt=1; {$else} m68krescnt=0; {$endif}
|
||||||
{$ifdef alpha} alpharescnt=0; {$else} alpharescnt=0; {$endif}
|
{$ifdef alpha} alpharescnt=0; {$else} alpharescnt=0; {$endif}
|
||||||
{$ifdef powerpc} powerpcrescnt=0; {$else} powerpcrescnt=0; {$endif}
|
{$ifdef powerpc} powerpcrescnt=1; {$else} powerpcrescnt=0; {$endif}
|
||||||
rescnt=i386rescnt+m68krescnt+alpharescnt+powerpcrescnt+1;
|
rescnt=i386rescnt+m68krescnt+alpharescnt+powerpcrescnt+1;
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -125,13 +125,13 @@ unit systems;
|
|||||||
os_i386_GO32V1,os_i386_GO32V2,os_i386_Linux,os_i386_OS2,
|
os_i386_GO32V1,os_i386_GO32V2,os_i386_Linux,os_i386_OS2,
|
||||||
os_i386_Win32,
|
os_i386_Win32,
|
||||||
os_m68k_Amiga,os_m68k_Atari,os_m68k_Mac,os_m68k_Linux,
|
os_m68k_Amiga,os_m68k_Atari,os_m68k_Mac,os_m68k_Linux,
|
||||||
os_m68k_PalmOS,os_alpha_linux,os_powerpc_linux
|
os_m68k_PalmOS,os_alpha_linux,os_powerpc_linux,os_powerpc_macos
|
||||||
);
|
);
|
||||||
const
|
const
|
||||||
i386oscnt=5;
|
i386oscnt=5;
|
||||||
m68koscnt=5;
|
m68koscnt=5;
|
||||||
alphaoscnt=1;
|
alphaoscnt=1;
|
||||||
powerpcoscnt=1;
|
powerpcoscnt=2;
|
||||||
oscnt=i386oscnt+m68koscnt+alphaoscnt+powerpcoscnt+1;
|
oscnt=i386oscnt+m68koscnt+alphaoscnt+powerpcoscnt+1;
|
||||||
|
|
||||||
type
|
type
|
||||||
@ -398,11 +398,11 @@ implementation
|
|||||||
id : os_m68k_mac;
|
id : os_m68k_mac;
|
||||||
name : 'Macintosh m68k';
|
name : 'Macintosh m68k';
|
||||||
shortname : 'mac';
|
shortname : 'mac';
|
||||||
sharedlibext : '.dll';
|
sharedlibext : 'Lib';
|
||||||
staticlibext : '.a';
|
staticlibext : 'Lib';
|
||||||
sourceext : '.pp';
|
sourceext : '.pp';
|
||||||
pasext : '.pas';
|
pasext : '.pas';
|
||||||
exeext : '.tpp';
|
exeext : '';
|
||||||
defext : '';
|
defext : '';
|
||||||
scriptext : '';
|
scriptext : '';
|
||||||
libprefix : '';
|
libprefix : '';
|
||||||
@ -483,7 +483,7 @@ implementation
|
|||||||
name : 'Linux for PowerPC';
|
name : 'Linux for PowerPC';
|
||||||
shortname : 'linuxppc';
|
shortname : 'linuxppc';
|
||||||
sharedlibext : '.so';
|
sharedlibext : '.so';
|
||||||
staticlibext : '.a';
|
staticlibext : '.s';
|
||||||
sourceext : '.pp';
|
sourceext : '.pp';
|
||||||
pasext : '.pas';
|
pasext : '.pas';
|
||||||
exeext : '';
|
exeext : '';
|
||||||
@ -498,6 +498,27 @@ implementation
|
|||||||
size_of_longint : 4;
|
size_of_longint : 4;
|
||||||
use_bound_instruction : false;
|
use_bound_instruction : false;
|
||||||
use_function_relative_addresses : true
|
use_function_relative_addresses : true
|
||||||
|
),
|
||||||
|
(
|
||||||
|
id : os_powerpc_macos;
|
||||||
|
name : 'MacOs (PowerPC)';
|
||||||
|
shortname : 'MacOs/PPC';
|
||||||
|
sharedlibext : 'Lib';
|
||||||
|
staticlibext : 'Lib';
|
||||||
|
sourceext : '.pp';
|
||||||
|
pasext : '.pas';
|
||||||
|
exeext : '';
|
||||||
|
defext : '';
|
||||||
|
scriptext : '';
|
||||||
|
libprefix : '';
|
||||||
|
Cprefix : '';
|
||||||
|
newline : #13;
|
||||||
|
endian : endian_big;
|
||||||
|
stackalignment : 8;
|
||||||
|
size_of_pointer : 4;
|
||||||
|
size_of_longint : 4;
|
||||||
|
use_bound_instruction : false;
|
||||||
|
use_function_relative_addresses : true
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -764,7 +785,7 @@ implementation
|
|||||||
externals : false;
|
externals : false;
|
||||||
needar : true;
|
needar : true;
|
||||||
labelprefix : '__L';
|
labelprefix : '__L';
|
||||||
comment : '| ';
|
comment : '* ';
|
||||||
secnames : ('',
|
secnames : ('',
|
||||||
'.text','.data','.bss',
|
'.text','.data','.bss',
|
||||||
'.idata$2','.idata$4','.idata$5','.idata$6','.idata$7','.edata',
|
'.idata$2','.idata$4','.idata$5','.idata$6','.idata$7','.edata',
|
||||||
@ -804,6 +825,21 @@ implementation
|
|||||||
'','','','','','',
|
'','','','','','',
|
||||||
'.stab','.stabstr')
|
'.stab','.stabstr')
|
||||||
)
|
)
|
||||||
|
,(
|
||||||
|
id : as_powerpc_mpw;
|
||||||
|
idtxt : 'PPCAsm';
|
||||||
|
asmbin : 'PPCAsm';
|
||||||
|
asmcmd : '-o $OBJ $ASM';
|
||||||
|
allowdirect : true;
|
||||||
|
externals : false;
|
||||||
|
needar : true;
|
||||||
|
labelprefix : '.L';
|
||||||
|
comment : '; ';
|
||||||
|
secnames : ('',
|
||||||
|
'.text','.data','.bss',
|
||||||
|
'','','','','','',
|
||||||
|
'.stab','.stabstr')
|
||||||
|
)
|
||||||
{$endif}
|
{$endif}
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -860,6 +896,20 @@ implementation
|
|||||||
rescmd : '--include $INC -O coff -o $OBJ $RES'
|
rescmd : '--include $INC -O coff -o $OBJ $RES'
|
||||||
)
|
)
|
||||||
{$endif i386}
|
{$endif i386}
|
||||||
|
{$ifdef m68k}
|
||||||
|
,(
|
||||||
|
id : res_m68k_mpw;
|
||||||
|
resbin : 'rez';
|
||||||
|
rescmd : '-i $INC -o $OBJ $RES'
|
||||||
|
)
|
||||||
|
{$endif m68}
|
||||||
|
{$ifdef powerpc}
|
||||||
|
,(
|
||||||
|
id : res_powerpc_mpw;
|
||||||
|
resbin : 'rez';
|
||||||
|
rescmd : '-i $INC -o $OBJ $RES'
|
||||||
|
)
|
||||||
|
{$endif powerpc}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -1147,9 +1197,9 @@ implementation
|
|||||||
,(
|
,(
|
||||||
target : target_powerpc_LINUX;
|
target : target_powerpc_LINUX;
|
||||||
flags : [];
|
flags : [];
|
||||||
cpu : alpha;
|
cpu : powerpc;
|
||||||
short_name : 'LINUX';
|
short_name : 'LINUX';
|
||||||
unit_env : 'LINUXUNITS';
|
unit_env : '';
|
||||||
system_unit : 'syslinux';
|
system_unit : 'syslinux';
|
||||||
smartext : '.sl';
|
smartext : '.sl';
|
||||||
unitext : '.ppu';
|
unitext : '.ppu';
|
||||||
@ -1167,6 +1217,30 @@ implementation
|
|||||||
heapsize : 256*1024;
|
heapsize : 256*1024;
|
||||||
maxheapsize : 32768*1024;
|
maxheapsize : 32768*1024;
|
||||||
stacksize : 8192
|
stacksize : 8192
|
||||||
|
),
|
||||||
|
(
|
||||||
|
target : target_powerpc_MACOS;
|
||||||
|
flags : [];
|
||||||
|
cpu : powerpc;
|
||||||
|
short_name : 'MACOS';
|
||||||
|
unit_env : '';
|
||||||
|
system_unit : 'sysmac';
|
||||||
|
smartext : '.sl';
|
||||||
|
unitext : '.ppt';
|
||||||
|
unitlibext : '.ppl';
|
||||||
|
asmext : '.a';
|
||||||
|
objext : '.o';
|
||||||
|
resext : '.res';
|
||||||
|
resobjext : '.or';
|
||||||
|
exeext : '';
|
||||||
|
os : os_powerpc_macos;
|
||||||
|
assem : as_powerpc_mpw;
|
||||||
|
assemsrc : as_powerpc_mpw;
|
||||||
|
ar : ar_powerpc_ar;
|
||||||
|
res : res_powerpc_mpw;
|
||||||
|
heapsize : 256*1024;
|
||||||
|
maxheapsize : 32768*1024;
|
||||||
|
stacksize : 8192
|
||||||
)
|
)
|
||||||
{$endif}
|
{$endif}
|
||||||
);
|
);
|
||||||
@ -1525,7 +1599,14 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.101 2000-04-04 14:18:15 pierre
|
Revision 1.102 2000-04-22 14:25:03 jonas
|
||||||
|
* aasm.pas: pai_align instead of pai_align_abstract if cpu <> i386
|
||||||
|
+ systems.pas: info for macos/ppc
|
||||||
|
* new/cgobj.pas: compiles again without newst define
|
||||||
|
* new/powerpc/cgcpu: generate different entry/exit code depending on
|
||||||
|
whether target_os is MacOs or Linux
|
||||||
|
|
||||||
|
Revision 1.101 2000/04/04 14:18:15 pierre
|
||||||
* nasmwin32 is 9 chars long, idtxt changed accordingly
|
* nasmwin32 is 9 chars long, idtxt changed accordingly
|
||||||
|
|
||||||
Revision 1.100 2000/04/04 13:54:58 pierre
|
Revision 1.100 2000/04/04 13:54:58 pierre
|
||||||
|
Loading…
Reference in New Issue
Block a user