mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 21:29:26 +02:00
+ more documentation
This commit is contained in:
parent
f504aab788
commit
021a0670c2
@ -20,6 +20,12 @@
|
||||
|
||||
****************************************************************************
|
||||
}
|
||||
{# @abstract(This unit implements an abstract asm output class for all processor types)
|
||||
This unit implements an abstract assembler output class for all processors, these
|
||||
are then overriden for each assembler writer to actually write the data in these
|
||||
classes to an assembler file.
|
||||
}
|
||||
|
||||
unit aasm;
|
||||
|
||||
{$i defines.inc}
|
||||
@ -1131,7 +1137,10 @@ uses
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.21 2002-04-07 10:17:40 carl
|
||||
Revision 1.22 2002-04-07 13:18:19 carl
|
||||
+ more documentation
|
||||
|
||||
Revision 1.21 2002/04/07 10:17:40 carl
|
||||
- remove packenumfixed (requires version 1.0.2 or later to compile now!)
|
||||
+ changing some comments so its commented automatically
|
||||
|
||||
|
@ -20,6 +20,11 @@
|
||||
|
||||
****************************************************************************
|
||||
}
|
||||
{# @abstract(This unit handles the assembler file write and assembler calls of FPC)
|
||||
Handles the calls to the actual external assemblers, as well as the generation
|
||||
of object files for smart linking. Also contains the base class for writing
|
||||
the assembler statements to file.
|
||||
}
|
||||
unit assemble;
|
||||
|
||||
{$i defines.inc}
|
||||
@ -60,6 +65,10 @@ interface
|
||||
procedure MakeObject;virtual;abstract;
|
||||
end;
|
||||
|
||||
{# This is the base class which should be overriden for each each
|
||||
assembler writer. It is used to actually assembler a file,
|
||||
and write the output to the assembler file.
|
||||
}
|
||||
TExternalAssembler=class(TAssembler)
|
||||
private
|
||||
procedure CreateSmartLinkPath(const s:string);
|
||||
@ -71,19 +80,39 @@ interface
|
||||
outbuf : array[0..AsmOutSize-1] of char;
|
||||
outfile : file;
|
||||
public
|
||||
{# Returns the complete path and executable name of the assembler program.
|
||||
|
||||
It first tries looking in the UTIL directory if specified, otherwise
|
||||
it searches in the free pascal binary directory, in the current
|
||||
working directory and the in the directories in the $PATH environment.
|
||||
}
|
||||
Function FindAssembler:string;
|
||||
{# Actually does the call to the assembler file. Returns false
|
||||
if the assembling of the file failed.
|
||||
}
|
||||
Function CallAssembler(const command,para:string):Boolean;
|
||||
Function DoAssemble:boolean;virtual;
|
||||
Procedure RemoveAsm;
|
||||
Procedure AsmFlush;
|
||||
Procedure AsmClear;
|
||||
{# Write a string to the assembler file }
|
||||
Procedure AsmWrite(const s:string);
|
||||
{# Write a string to the assembler file }
|
||||
Procedure AsmWritePChar(p:pchar);
|
||||
{# Write a string to the assembler file followed by a new line }
|
||||
Procedure AsmWriteLn(const s:string);
|
||||
{# Write a new line to the assembler file }
|
||||
Procedure AsmLn;
|
||||
procedure AsmCreate(Aplace:tcutplace);
|
||||
procedure AsmClose;
|
||||
{# This routine should be overriden for each assembler, it is used
|
||||
to actually write the abstract assembler stream to file.
|
||||
}
|
||||
procedure WriteTree(p:TAAsmoutput);virtual;
|
||||
{# This routine should be overriden for each assembler, it is used
|
||||
to actually write all the different abstract assembler streams
|
||||
by calling for each stream type, the @var(WriteTree) method.
|
||||
}
|
||||
procedure WriteAsmList;virtual;
|
||||
public
|
||||
Constructor Create(smart:boolean);override;
|
||||
@ -1552,7 +1581,10 @@ Implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.31 2002-04-04 19:05:54 peter
|
||||
Revision 1.32 2002-04-07 13:19:14 carl
|
||||
+ more documentation
|
||||
|
||||
Revision 1.31 2002/04/04 19:05:54 peter
|
||||
* removed unused units
|
||||
* use tlocation.size in cg.a_*loc*() routines
|
||||
|
||||
|
@ -22,7 +22,10 @@
|
||||
|
||||
****************************************************************************
|
||||
}
|
||||
|
||||
{# This unit implements the code generation for 64 bit int arithmethics on
|
||||
32 bit processors. All 32-bit processors should use this class as
|
||||
the base code generator class instead of tcg.
|
||||
}
|
||||
unit cg64f32;
|
||||
|
||||
{$i defines.inc}
|
||||
@ -36,6 +39,10 @@ unit cg64f32;
|
||||
node,symtype;
|
||||
|
||||
type
|
||||
{# Defines all the methods required on 32-bit processors
|
||||
to handle 64-bit integers. All 32-bit processors should
|
||||
create derive a class of this type instead of @var(tcg).
|
||||
}
|
||||
tcg64f32 = class(tcg)
|
||||
procedure a_load64_const_ref(list : taasmoutput;valuelo, valuehi : AWord;const ref : treference);
|
||||
procedure a_load64_reg_ref(list : taasmoutput;reglo, reghi : tregister;const ref : treference);
|
||||
@ -584,7 +591,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.6 2002-04-03 10:41:35 jonas
|
||||
Revision 1.7 2002-04-07 13:21:18 carl
|
||||
+ more documentation
|
||||
|
||||
Revision 1.6 2002/04/03 10:41:35 jonas
|
||||
+ a_load64_const_loc method
|
||||
|
||||
Revision 1.5 2002/04/02 17:11:27 peter
|
||||
|
@ -21,7 +21,10 @@
|
||||
|
||||
****************************************************************************
|
||||
}
|
||||
{# @abstract(Abstract code generator unit) }
|
||||
{# @abstract(Abstract code generator unit)
|
||||
Abstreact code generator unit. This contains the base class
|
||||
to implement for all new supported processors.
|
||||
}
|
||||
unit cgobj;
|
||||
|
||||
{$i defines.inc}
|
||||
@ -42,7 +45,8 @@ unit cgobj;
|
||||
This class implements an abstract instruction generator. Some of
|
||||
the methods of this class are generic, while others must
|
||||
be overriden for all new processors which will be supported
|
||||
by Free Pascal.
|
||||
by Free Pascal. For 32-bit processors, the base class
|
||||
sould be @link(tcg64f32) and not @var(tcg).
|
||||
}
|
||||
tcg = class
|
||||
scratch_register_array_pointer : aword;
|
||||
@ -1656,7 +1660,10 @@ finalization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.12 2002-04-07 09:12:46 carl
|
||||
Revision 1.13 2002-04-07 13:22:11 carl
|
||||
+ more documentation
|
||||
|
||||
Revision 1.12 2002/04/07 09:12:46 carl
|
||||
+ documentation
|
||||
|
||||
Revision 1.11 2002/04/06 18:10:42 jonas
|
||||
|
Loading…
Reference in New Issue
Block a user