[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Fri Aug 27 12:43:03 CEST 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/08/27 12:43:03
Modified files:
cm3/m3-sys/m3back/src/: M3x86.m3
cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c
cm3/m3-sys/m3front/src/misc/: CG.m3
cm3/m3-sys/m3front/src/values/: Formal.m3
cm3/m3-sys/m3middle/src/: M3CG.m3 M3CG_BinRd.m3 M3CG_BinWr.m3
M3CG_Check.m3 M3CG_Ops.i3 M3CG_Rd.m3
M3CG_Wr.m3
Log message:
Give accurate type information passing and receiving records by value.
This should improve debugging with stack gdb.
Presently only for records passed by value.
VAR records not yet. VAR anything maybe not yet.
This should fix SPARC64_SOLARIS (test case p247).
This should provide for more efficient passing of
some record types on some platforms, e.g. AMD64_DARWIN,
probably all AMD64, e.g. some will be passed
in registers now.
This is a breaking change in the cm3<=>cm3cg interface.
Therefore bootstrap MUST be performed in the usual correct careful order.
Old cm3cg goes with old cm3.
New cm3cg goes with new cm3.
You first build new cm3 against old m3core/libm3/cm3/cm3cg.
Then build new cm3cg.
Then rebuild m3core/m3core/cm3.
Then rebuild everything.
upgrade.py and presumably upgrade.sh that it
was based on do this correctly.
I grant that M3CG didn't absolutely have to change here.
No type information is needed for passing parameters, given
that whatever function we are going to call has had its
type declared. But then, neither did we need size/alignment.
The information is readily at hand in m3front.
More information about the M3commit
mailing list