daniel 145a9c682f * Some more work on the new symtable. il y a 25 ans
..
alpha e525797c51 * updated copyright to 2000 il y a 26 ans
i386 e525797c51 * updated copyright to 2000 il y a 26 ans
old 2449cd4148 * updated to use old firstpass il y a 25 ans
powerpc e525797c51 * updated copyright to 2000 il y a 26 ans
symtable 145a9c682f * Some more work on the new symtable. il y a 25 ans
Makefile d99fb799b3 * updated with updates from old compiler dir il y a 25 ans
Makefile.fpc d99fb799b3 * updated with updates from old compiler dir il y a 25 ans
README fa19f0aa09 - removed the hcodegen use in the new cg, use cgbase instead il y a 26 ans
TODO a184e5ff43 * well, more changes, especially parts of secondload ported il y a 27 ans
agatt.pas e525797c51 * updated copyright to 2000 il y a 26 ans
aopt.pas e525797c51 * updated copyright to 2000 il y a 26 ans
aoptbase.pas e525797c51 * updated copyright to 2000 il y a 26 ans
aoptcs.pas fb1a842118 * Current work of symtable integration committed. The symtable can be il y a 25 ans
aoptda.pas e525797c51 * updated copyright to 2000 il y a 26 ans
aoptobj.pas e525797c51 * updated copyright to 2000 il y a 26 ans
cgbase.pas fb1a842118 * Current work of symtable integration committed. The symtable can be il y a 25 ans
cgflw.pas e525797c51 * updated copyright to 2000 il y a 26 ans
cgobj.pas df41d1395c * newcg is compiling il y a 25 ans
convtree.pas e525797c51 * updated copyright to 2000 il y a 26 ans
ncon.pas e525797c51 * updated copyright to 2000 il y a 26 ans
nmem.pas e525797c51 * updated copyright to 2000 il y a 26 ans
node.inc bcabe43e0a * moved to new/ il y a 25 ans
nodeh.inc bcabe43e0a * moved to new/ il y a 25 ans
nstatmnt.pas e525797c51 * updated copyright to 2000 il y a 26 ans
pass_1.pas e525797c51 * updated copyright to 2000 il y a 26 ans
pass_2.pas df41d1395c * newcg is compiling il y a 25 ans
pp.pas e525797c51 * updated copyright to 2000 il y a 26 ans
tainst.pas e525797c51 * updated copyright to 2000 il y a 26 ans
temp_gen.pas e525797c51 * updated copyright to 2000 il y a 26 ans
tempgen.inc e525797c51 * updated copyright to 2000 il y a 26 ans
tgeni386.pas df41d1395c * newcg is compiling il y a 25 ans
tgobj.pas 2449cd4148 * updated to use old firstpass il y a 25 ans
transn.pas e525797c51 * updated copyright to 2000 il y a 26 ans

README

$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