From: David Y. <dav...@in...> - 2011-05-13 16:54:43
|
Actually, it seems that the problem is that function parser_preparse_method() is not handling the corresponding mono code. After looking at the standard, the semantic of 'initobj <type>' is to initialize the object pointed by the address on the top of the stack. "To initialize" seems to mean "to set to zero". First I thought that it could be implemented with "memset". But since we are handling objects, may be we will flush any vtable at the start of the object. But wait... vtables in C? After discussing with Erven, we found that this instruction makes no sense in GCIL (at least if we only handle CLI-BE code). The only scenario is the one where 'varargs' is involved. The back-end emits CLI library code, including the argiterator (this is the variable to be initialized). But, what should we do with that, once we are in gcil going back to gimple? The idea is to (carefully) omit 'iniobj', and handle iterators as some kind of builtins, so that we can translate CIL-varargs code into stdarg-varargs code. Next monday, I will start working on it, but any clue about the current implementation (if any) would be welcome. Thanks, David ----- Mail original ----- > De: "David Yuste" <dav...@in...> > À: gcc...@li... > Envoyé: Vendredi 13 Mai 2011 17:57:35 > Objet: [Gcc4cli-devel] Unsupported feature 'intiobj' > Hi, > > I have problems to compile methods using varargs (the problem is not > in the call side, but in the implementation of the function with > varargs). > gcil fails to compile them and asserts "method 'whatever ()' not > compiled, unsupported feature 'initobj'." > > I am trying to verify that it is not a problem with my mono > configuration, but in the meantime, does anybody have any idea? > > Thanks, > David > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ > Gcc4cli-devel mailing list > Gcc...@li... > https://lists.sourceforge.net/lists/listinfo/gcc4cli-devel |