[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