changeset in /hg/icedtea: 2007-11-15 Gary Benson <gbenson at redh...

Gary Benson gbenson at redhat.com
Thu Nov 15 05:33:48 PST 2007


Detailed changelogs are all very well, but sometimes the meaning of
the change gets lost.  The point of this one is that the x86 code has
loads of places where the method pointer register is reloaded from
memory after function calls.  I assumed it was because it was volatile
and didn't reload because this is ppc: I have non-volatile registers
coming out of my ears.  But it turns out it was nothing to do with
that; the reloads were because the method pointer is an oop and can
thus change after safepoints.  Rather than fill my code with
uncommented reloads that I'll forget about I made a new assembler
macro, fixup_after_potential_safepoint, and used that instead.
And that's the point of this commit.

Cheers,
Gary

Gary Benson wrote:
> changeset 3e77d6bcbb20 in /hg/icedtea
> details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3e77d6bcbb20
> description:
> 	2007-11-15  Gary Benson  <gbenson at redhat.com>
> 
> 		* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.hpp
> 		(Rstate): Moved declaration from assembler_ppc.hpp.
> 		(STATE): Moved definition from cppInterpreter_ppc.cpp.
> 		* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp
> 		(Rstate): Moved definition from register_definitions_ppc.cpp.
> 		* ports/hotspot/src/cpu/ppc/vm/assembler_ppc.hpp
> 		(Rstate): Moved declaration to interp_masm_ppc.hpp.
> 		* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
> 		(STATE): Moved definition to interp_masm_ppc.hpp.
> 		* ports/hotspot/src/cpu/ppc/vm/register_definitions_ppc.cpp
> 		(Rstate): Moved definition to interp_masm_ppc.cpp.
> 
> 		* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.hpp
> 		(fixup_after_potential_safepoint): New method.
> 		* ports/hotspot/src/cpu/ppc/vm/interp_masm_ppc.cpp
> 		(fixup_after_potential_safepoint): Likewise.
> 		* ports/hotspot/src/cpu/ppc/vm/cppInterpreter_ppc.cpp
> 		(generate_normal_entry, generate_native_entry):
> 		Replace method pointer reloads with calls to the above
> 		to make what is happening more obvious.
> 		(generate_native_entry): Add an extra fixup.
> 		* ports/hotspot/src/cpu/ppc/vm/interpreter_ppc.cpp
> 		(generate_slow_signature_handler): Add an extra fixup.



More information about the distro-pkg-dev mailing list