Request for reviews (S): 6958254: -XX:+VerifyOops is broken on x86
vladimir.kozlov at oracle.com
Thu Jun 3 13:58:54 PDT 2010
Thank you, Tom
I update changes with your suggestions and I found that rax was actually restored, only r10 was missing. So I don't need to change stubGenerator_x86_32.cpp.
Tom Rodriguez wrote:
> Why didn't you ifdef _LP64 the rscratch1 pushes instead of using "if (rscratch1 != noreg)"? You could also restore the registers in the stub using loads instead of emitting pops at the call site which would keep the code size down. Turning on VerifyOops increases the code size quite a bit and adding pops will just make it worse.
> On Jun 3, 2010, at 10:37 AM, Vladimir Kozlov wrote:
>> Fixed 6958254: -XX:+VerifyOops is broken on x86
>> movptr() instruction in verify_oop() trashes r10 (rscratch1)
>> since the stub address is far. And rax is not restored.
More information about the hotspot-compiler-dev