Request for review(XS): 7012766: assert(false) failed: DEBUG MESSAGE in MacroAssembler::debug32

Igor Veresov igor.veresov at oracle.com
Tue Jan 18 17:23:50 PST 2011


On 1/18/11 4:06 PM, Tom Rodriguez wrote:
> There are four calls to profile_method in x86 code but I only see two fixed.  Don't the other need fixed?
No, in other cases it's not required.

>  Actually set_method_data_pointer_for_bc seems strangely coded to me.
>
> void InterpreterMacroAssembler::set_method_data_pointer_for_bcp() {
>    assert(ProfileInterpreter, "must be profiling interpreter");
>    Label set_mdp;
>    push(rax);
>    push(rbx);
>
>    get_method(rbx);
>
> Why couldn't it either assume it was valid or correctly set it up?

We can do it the following way:

http://cr.openjdk.java.net/~iveresov/7012766/webrev.01/

It still have redundant push/pop of rbx at two other call sites, we can 
get rid of them but I feel uneasy about killing registers in template 
generating methods. Or we can have an optional "bool save_method_in" 
parameter?

igor

>
> tom
>
> On Jan 18, 2011, at 3:45 PM, Igor Veresov wrote:
>
>> Interpreter expects to see methodOop in rbx on method entry, which needs to be restored after call to profile_method.
>>
>> Webrev: http://cr.openjdk.java.net/~iveresov/7012766/webrev.00
>>
>> Tested: failing nightly
>>
>> Thanks,
>> igor
>



More information about the hotspot-compiler-dev mailing list