[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