[M3devel] cost of opaque types

Jay K jay.krell at cornell.edu
Wed Apr 3 10:46:10 CEST 2013


cost of opaque types


fyi:

    PutI(cstr("Public.F1.a.c"), a.c);


PutI == put_adr
L_22_L_23 the string
L_26_L_27 == a
8 is the "public offset" of c
M_Public_L_19 globals for Public.m3


everything else is the computation of the "public base" of a from the base of a


actual C backend output cm3/m3-sys/m3tests/src/p2/p253/AMD64_DARWIN/Public.m3.c


put_adr(((ADDRESS)(L_22_L_23)),((ADDRESS)(((8)+(ADDRESS)(((ADDRESS)((((ADDRESS)(L_26_L_27))+(1* /* cast_removed2: INT64 */ *((INT64*)(M3_INT64(112)+((ADDRESS)(*((ADDRESS * )(M3_INT64(176)+((ADDRESS)((ADDRESS)&M_Public_L_19)))))))))))))))));


simplify slightly (how I wish it got printed...):

put_adr(L_22_L_23,8 + L_26_L_27 + *(INT64*)(112 + *(ADDRESS*)(176 + (ADDRESS)&M_Public_L_19)));



I still have to track down the whole "recompile again now that offsets are known" path.



 - Jay
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20130403/ea047637/attachment-0001.html>


More information about the M3devel mailing list