possible bug in x86 MacroAssembler::delayed_value_impl
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Fri May 15 10:53:29 PDT 2009
The delayed_value came after the assembler merge but it was probably
developed in a workspace predating the assembler merge. It's
definitely a bug though. I don't love the use of hlt() there since it
would fail somewhat mysteriously when it happened. Normally we'd use
something like stop("unexpected null") but maybe John didn't want to
expand the code so much?
tom
On May 15, 2009, at 5:30 AM, Christian Thalinger wrote:
> Hi!
>
> While looking at the code I found this one:
>
> diff --git a/src/cpu/x86/vm/assembler_x86.cpp b/src/cpu/x86/vm/
> assembler_x86.cpp
> --- a/src/cpu/x86/vm/assembler_x86.cpp
> +++ b/src/cpu/x86/vm/assembler_x86.cpp
> @@ -7644,7 +7644,7 @@ RegisterOrConstant MacroAssembler::delay
>
> #ifdef ASSERT
> Label L;
> - testl(tmp, tmp);
> + testptr(tmp, tmp);
> jccb(Assembler::notZero, L);
> hlt();
> bind(L);
>
> I think it's a bug since tmp is a pointer. Maybe an overlook during
> 32/64-bit merging?
>
> -- Christian
>
More information about the hotspot-compiler-dev
mailing list