On 02/26/03 Varga Zoltan wrote: > The problem is with the if (!cfg->share_code) statements in > the JIT, > which create some vtables at JIT compile time, instead of > creating it > the first time a static variable/method is accessed.
Oh, ok, I guess we'll have to add calls to init the vtable any time a static variable is used, possibly doing some of the same tricks we use with method calls to reduce to the minimum the overhead after the first call. I'll have to think about how best to integrate this in the JIT, since I'd like to have an optimization pass remove the calls if they are redundand. > The --noinline flag > is only needed because of a bug at x86.brg:1699: this code > pushes the > currently compiling method's image to the stack, instead of > the method > to which the LDSTR belongs (the two are not necessarily > equal due to inlining). Ok, this bug doesn't seem to be there in the new JIT. > BTW, here is a testcase for the type initialization problem: Thanks, I added it to the test suite. lupus -- ----------------------------------------------------------------- [EMAIL PROTECTED] debian/rules [EMAIL PROTECTED] Monkeys do it better _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
