How does FJit::compileCEE_NEWOBJ work?

Yuan Yu <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.rotor
Message-ID <LISTSERV%[email protected]>
I have been trying to understand how the newobj instruction is jitted. For
a simple class like

   class Foo { int x = 5; }

and an instruction

   newobj     instance void Foo

Rotor calls FJit::compileCEE_NEWOBJ, and goes to the "allocate normal
object" case where the first line is

  helper_ftn = jitInfo->getHelperFtn(jitInfo->getNewHelper(targetClass,
methodHandle));

The value of jitInfo->getNewHelper(targetClass, methodHandle) appears to
be CORINFO_HELP_NEWSFAST, and, according to the table hlpFuncTable, it
seems to map to JIT_NewFast. So, I thought the helper function helper_ftn
must have been JIT_NewFast. However, it does not seem to be the case. So,
what is the value of helper_ftn?

Thanks,
-Yuan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.