fpc/compiler/new
1999-11-10 22:10:44 +00:00
..
alpha * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
i386 * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
powerpc * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
symtable * Fixed bugs. 1999-08-16 12:54:02 +00:00
agatt.pas * defined some necessary virtual helper methods 1999-09-03 13:08:36 +00:00
aopt.pas * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
aoptbase.pas * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
aoptcs.pas * changed pai386, paippc and paiapha (same for tai*) to paicpu (taicpu) 1999-08-25 11:59:32 +00:00
aoptda.pas * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
aoptobj.pas * compiles again both i386,alpha both with optimizer 1999-11-09 22:57:08 +00:00
cgbase.pas * some fixes to get the new cg compiling again 1999-11-05 13:15:00 +00:00
cgflw.pas + initial implementation 1999-11-03 14:13:59 +00:00
cgobj.pas * some fixes to get the new cg compiling again 1999-11-05 13:15:00 +00:00
convtree.pas * only small updates to work with the current compiler 1999-09-14 11:16:09 +00:00
Makefile * fpcmake updated 1999-11-10 22:10:44 +00:00
Makefile.fpc * fpcmake updated 1999-11-10 22:10:44 +00:00
ncon.pas * implemented some stuff for assignments 1999-08-06 18:05:52 +00:00
nmem.pas * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
nstatmnt.pas * some fixes for the floating point registers 1999-08-05 14:58:03 +00:00
pass_1.pas * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
pass_2.pas * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
pp.pas * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
README - removed the hcodegen use in the new cg, use cgbase instead 1999-10-14 14:57:51 +00:00
tainst.pas * some bug fixes (e.g. must_be_valid and procinfo.funcret_is_valid) 1999-09-10 18:48:00 +00:00
temp_gen.pas + dummy implementation 1999-08-02 17:15:43 +00:00
tempgen.inc * the alpha compiler can be compiled now 1999-08-03 17:09:34 +00:00
tgeni386.pas * the main branch psub.pas is now used for 1999-08-02 21:28:56 +00:00
tgobj.pas - removed the hcodegen use in the new cg, use cgbase instead 1999-10-14 14:57:51 +00:00
TODO * well, more changes, especially parts of secondload ported 1999-01-24 22:32:33 +00:00
transn.pas * new codegenerator compiles again 1999-10-12 21:20:41 +00:00
tree.pas * some fixes to get the new cg compiling again 1999-11-05 13:15:00 +00:00

$Id$

History
-------

13th oct 1999              remark about alignment added (FK)

CVS Log see at the end of that file

frame_pointer              contains the register used as frame pointer
stack_pointer              contains the register used as stack pointer
self_pointer               contains the register used as self pointer


unusedregsint              set of Currently available integer registers
unusedregsfpu              set of Currently available fpu registers
unusedregsmm               set of Currently available mm registers

availabletempregsint       set of maximally available integer registers
availabletempregsfpu       set of maximally available fpu registers
availabletempregsmm        set of maximally available mm registers

countusableregsint         count of currently available integer registers
countusableregsfpu         count of currently available fpu registers
countusableregsmm          count of currently available mm registers

c_countusableregsint       count of max. available int registers (in the current procedure)
c_countusableregsfpu       count of max. available fpu registers (in the current procedure)
c_countusableregsmm        count of max. available mm registers (in the current procedure)

intregs                    all!! available integer register
fpuregs                    all!! available fpu register
mmregs                     all!! available multimedia register

Intel specific
--------------
unusedregssse
availabletempregssse
countusableregssse

Jonas Maebe schrieb:
> 
> Hello,
> 
> Is there any difference between the localsize parameter of
> g_stackframe_entry and the parasize parameter of g_return_from_proc, or
> are they both the same value?

They are different, I think the value of g_return_from_proc doesn't matter
for the PowerPC. It's the size of parameters passed on the stack
and only important for the i386/m68k probably.

> 
> And for the PowerPC, what will they contain? Just the size of the local
> variables and parameters, or also the maximum needed size for parameters
> of any procedure called by the current one (the caller must reserve space
> for the callee's parameters on it's own stack because you can't push
> values on the stack in the middle of a procedure (no frame pointer))
>
> Jonas

the parameter passed to g_stackframe_entry contains the size of the all local space which is
needed
except
that one for saving registers: the set procinfo.registerstosave (not yet implemented,
I'll commit it soon) will contain
all registers which must be saved by the entry and restored by the exit code of a procedure
and you have to add extra space to do that.



Alignment
---------

The alignment is handled very easily: treference contains a field
alignment which describes the ensured alignment for the node, possible
values: 1,2,4,8,16 (1 means unligned). The code generator must update
that field at the appropriate places and take care of it when
generating the code


CVS Log
-------

$Log$
Revision 1.4  1999-10-14 14:57:54  florian
  - removed the hcodegen use in the new cg, use cgbase instead