[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [DotGNU]method calls and extra indirection
From: |
Gomi Kapoor |
Subject: |
Re: [DotGNU]method calls and extra indirection |
Date: |
Thu, 1 Apr 2004 16:23:13 +0100 (BST) |
Hi Rhys,
> The "call_extern" opcode hasn't been used since pnet
> 0.3.6 (released in May
> 2002). What version are you looking at? In version
> 0.3.8, "call" and
> "call_extern" were collapsed into a single opcode
> named "call" and the
> instruction was streamlined to reduce its overhead.
I am using the current release 0.6.4
I read the pnet/engine/HACKING file and then tried to
look for the same in the code.
<snip>
The second instruction, "call", is handled in a
similar manner. The CVMCoder_CallMethod function
(cvmc_call.c) outputs a CVM "call_extern" instruction
for the "Console.WriteLine" method. This CVM
instruction means "call an external method that we may
not have translated yet".
.....
.....
When execution reaches the "call_extern" instruction
(cvm_call.c), the engine notices that
"Console.WriteLine" has not yet been translated. So
it calls out to "_ILConvertMethod" and creates the CVM
verion of that method. And so on.
.....
.....
</snip>
> I think I did this because of threading: there is no
> thread-safe way to
> back-patch a "call_extern" to turn it into "call",
> without running the risk
> that another thread will get a corrupted instruction
> during the modification.
> I have since avoided back-patching as a solution.
OK, so can we say there is an always an indirection
overhead for every method call?
> There are a number of IDE's and graphical debuggers
> around (search on freshmeat.net). Every pnet
> developer uses a
> different one, so I suggest that
> you try a few and see which one suits you best. The
> file
> "pnet/engine/HACKING" also contains some tips on
> debugging the engine.
Currently I am using "gvim" for the editor, "grep" for
searching the relavent portions of code and "gdb" for
the debugging.
Regards,
Gomi Kapoor
________________________________________________________________________
Yahoo! India Insurance Special: Be informed on the best policies, services,
tools and more.
Go to: http://in.insurance.yahoo.com/licspecial/index.html
- Re: [DotGNU]method calls and extra indirection,
Gomi Kapoor <=