Oh now I understand - you want to do a compile time calculation of the address of the object containing the memory location because you don't have access to auxiliary data structures which would allow you to map a heap address to the address of the containing object. I think it would be possible(not easy) to generate code which would call writebarrier(objbase, value) at runtime, but it would impossible to make the actual call at the runtime. You would have to track the 'this' pointer from which the pointer to the field is generated and use it instead of the field address. For stfld, ldfld instructions it should be quite manageable since they take a 'this' pointer. For stind and stsfld it will be more difficult.
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 Archana Sent: Monday, January 12, 2004 10:57 PM To: [EMAIL PROTECTED] Subject: Re: [DOTNET-ROTOR] the write barrier On Mon, 12 Jan 2004, Vladimir Fedorov wrote: > I assume by dirty, you mean flip the bit in the card table corresponding > to the memory location in which a potential cross-generational pointer > is being stored. Correct. > Also when you refer to base I assume you mean the start > of the object containing the memory location. Yes. thats exactly what i was referring to > In this case you don't > need to do anything, GC will scan the whole object to update the > potential cross generational pointers even if the objects spans multiple > cards some of which are not flipped. The brick table is used to found > the start of the first object outside the card that has been flipped. The reason i am trying to fit in my own GC that requires the writebarrier(objbase, value) due to the algorithm functionality. and finding the object base at runtime would be too costly. Is there any way to do this in compile time? > > Regards, > Archana > =================================== 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