I'm forwarding this question again, as I didn't get any reply for it and
it's important for the performance of my write barrier implementation.
---------- Forwarded message ----------
Date: Wed, 24 Jul 2002 09:36:47 +0300 (IDT)
From: Hezi Azatchi <[email protected]>
Reply-To: [email protected]
To: [email protected]
Subject: [Jikesrvm-researchers] subroutine call from IA32 assembler
I wrote a write barrier in IA32 assembler which looks similar to that:
(relatively length) PIECE OF CODE
My Problem: The whole above code is emitted in every aastore that appears
in the compiled code although only part of the cases need to execute the
relatively lengthy "PIECE OF CODE" (these cases will be known only in runtime
Can I save part of the code emission at compile time by using jump to
assembler subroutine construct?
How can I calculate the address of the bytecode I want to jump without
emitting it?, i.e., How can I calculate the immediate that represent the
address of the bytecode I should jump to.
(I saw the bTarget/mTarget construct in the VM_Compiler, but still didn't
understand how to use it).