Re: FJIT_hdrInfo questions

Vladimir Fedorov <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.rotor
Message-ID <B03C15E02DBE064B97200DE8A739ACE7D892DA@RED-MSG-32.redmond.corp.microsoft.com>
Hi Todd,

In general if you see a division by SIZE_STACK_SLOT the values are in
terms of stack slots, if you see a division by sizeof(void *) they are
in terms of machine sized words, otherwise they are in bytes. For
FJIT_hdrInfo:

methodSize - bytes
methodFrame - machine word
methodArgsSize - bytes
methodJitGeneratedLocalsSize - bytes
prologSize - bytes
epilogSize - bytes

Thanks,

Vladimir

This posting is provided "AS IS" with no warranties, and confers no
rights.

-----Original Message-----
From: Discussion of the Rotor Shared Source CLI implementation
[mailto:[email protected]] On Behalf Of Anderson, Todd A
Sent: Tuesday, November 18, 2003 1:37 PM
To: [email protected]
Subject: Re: [DOTNET-ROTOR] FJIT_hdrInfo questions

What are the units for each of the fields.  Which are bytes and which
are in terms of "stack slots?"

Todd

> -----Original Message-----
> From: Discussion of the Rotor Shared Source CLI implementation
> [mailto:[email protected]]On Behalf Of Vladimir Fedorov
> Sent: Tuesday, November 18, 2003 12:53 PM
> To: [email protected]
> Subject: Re: [DOTNET-ROTOR] FJIT_hdrInfo questions
> 
> 
> 
> Hi Todd,
> 
> Here is a list of the members of FJIT_hdrInfo with short summaries. I
> also attached a diagram which may help. It is actually a JPG 
> file but I
> had to change the extension to txt to get past the list filter.
> 
> size_t              methodSize;
> >> Size of the method - includes all of the code generated for the
> method
> 
> unsigned short      methodFrame; 
> >> Size of the whole local method frame. It includes:
> 
> 1) sizeof(prolog_data) (see IFJITCompiler.h)    
> 2) methodJitGeneratedLocalsSize(see below)
> 3) space for local variables
> 4) space for unaligned arguments
> 
> unsigned short      methodArgsSize; 
> >> size of the arguments to the method. Depending on the calling
> convention this amount may be popped of in the epilog.
> 
> unsigned short      methodJitGeneratedLocalsSize;
> >> This the space used for storing the stack pointers of exception
> handling frames. If there is no exception handling in the 
> function this
> space is just one dword for the sp if localloc (IL equivalent 
> of alloca)
> occurs. For more info see void FJit::setup()
>     
> unsigned char       prologSize;
> >> All the code related to setting up the frame and zeroing 
> the locals. 
> 
> unsigned char epilogSize;
> >> All the code related to tearing down the frame.
> 
> The invariant is - if the following two conditions are true than the
> code being executed maps to an IL opcode.
> 
> 1) [current IP] > [base IP] + prologSize
> 2) [current IP] < [base IP] + methodSize - epilogSize
> 
> Vladimir
> 
> This posting is provided "AS IS" with no warranties, and confers no
> rights.
> -----Original Message-----
> From: Discussion of the Rotor Shared Source CLI implementation
> [mailto:[email protected]] On Behalf Of 
> Anderson, Todd A
> Sent: Tuesday, November 18, 2003 11:20 AM
> To: [email protected]
> Subject: [DOTNET-ROTOR] FJIT_hdrInfo questions
> 
> In the FJIT_hdrInfo structure, what are methodFrame
> and methodJitGeneratedLocalsSize supposed to represent?
> Also, is prologSize the code size of the prolog code
> including reserving space for locals on the stack and
> zeroing out that memory?
> 
> thanks,
> 
> Todd
> 
> ===================================
> This list is hosted by DevelopMentor(r)  http://www.develop.com
> NEW! ASP.NET courses you may be interested in:
> 
> 2 Days of ASP.NET, 29 Sept 2003, in Redmond
> http://www.develop.com/courses/2daspdotnet
> 
> Guerrilla ASP.NET, 13 Oct 2003, in Boston
> http://www.develop.com/courses/gaspdotnet
> 
> View archives and manage your subscription(s) at
> http://discuss.develop.com
> 
> ===================================
> This list is hosted by DevelopMentor(r)  http://www.develop.com
> NEW! ASP.NET courses you may be interested in:
> 
> 2 Days of ASP.NET, 29 Sept 2003, in Redmond
> http://www.develop.com/courses/2daspdotnet
> 
> Guerrilla ASP.NET, 13 Oct 2003, in Boston
> http://www.develop.com/courses/gaspdotnet
> 
> View archives and manage your subscription(s) at 
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor(r)  http://www.develop.com
NEW! ASP.NET courses you may be interested in:

2 Days of ASP.NET, 29 Sept 2003, in Redmond
http://www.develop.com/courses/2daspdotnet

Guerrilla ASP.NET, 13 Oct 2003, in Boston
http://www.develop.com/courses/gaspdotnet

View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentor®  http://www.develop.com
NEW! ASP.NET courses you may be interested in:

2 Days of ASP.NET, 29 Sept 2003, in Redmond
http://www.develop.com/courses/2daspdotnet

Guerrilla ASP.NET, 13 Oct 2003, in Boston
http://www.develop.com/courses/gaspdotnet

View archives and manage your subscription(s) at http://discuss.develop.com
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.