[9] RFR: 8044538: assert(which != imm_operand) failed: instruction is not a movq reg, imm64
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Jun 10 15:04:05 UTC 2014
Hi Chris,
> Your @run command uses the wrong class name:
>
> 28 * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -Xcomp -XX:+PrintRelocations Test8044538
> 35 public class TestPrintRelocations {
Thanks, I missed that while renaming. Should have tested it..
New webrev: http://cr.openjdk.java.net/~thartmann/8044538/webrev.04/
Best,
Tobias
>
> On Jun 9, 2014, at 11:10 PM, Tobias Hartmann
> <tobias.hartmann at oracle.com <mailto:tobias.hartmann at oracle.com>> wrote:
>
>>>>
>>>> Hi Chris,
>>>>
>>>>>> Hi Vladimir,
>>>>>>
>>>>>> thanks for the review.
>>>>>>
>>>>>>> Looks good. PrintRelocations flag is used very rare, that is why
>>>>>>> it rotted. Please, add jreg test (use
>>>>>>> -XX:+IgnoreUnrecognizedVMOptions).
>>>>>> I added a jtreg test to test/compiler/8044538/ that uses -Xcomp
>>>>>> and -XX:+PrintRecolations. It fails without my changes.
>>>>> We are trying to not use bug id directories anymore. Please move
>>>>> the test to a more meaningful directory with a meaningful name.
>>>> Okay, makes sense. I moved the test to
>>>> test/compiler/PrintRelocations/TestPrintRelocations.java
>>> Thanks but that’s too fine grained. I doubt there will be any other
>>> PrintRelocations tests. So maybe test/compiler/relocations/ makes
>>> more sense.
>>
>> Okay, I moved it to test/compiler/relocations.
>>
>> New webrev:http://cr.openjdk.java.net/~thartmann/8044538/webrev.03/
>> <http://cr.openjdk.java.net/%7Ethartmann/8044538/webrev.03/>
>>
>> Thanks,
>> Tobias
>>
>>>
>>>> New webrev:
>>>> http://cr.openjdk.java.net/~thartmann/8044538/webrev.02/
>>>> <http://cr.openjdk.java.net/%7Ethartmann/8044538/webrev.02/>
>>>>
>>>> Thanks,
>>>> Tobias
>>>>
>>>>>> New webrev:
>>>>>> http://cr.openjdk.java.net/~thartmann/8044538/webrev.01/
>>>>>> <http://cr.openjdk.java.net/%7Ethartmann/8044538/webrev.01/>
>>>>>>
>>>>>>> Since this debug flag almost never used backporting the fix only
>>>>>>> into 8u may be enough.
>>>>>> Okay.
>>>>>>
>>>>>> Thanks,
>>>>>> Tobias
>>>>>>
>>>>>>> Thanks,
>>>>>>> Vladimir
>>>>>>>
>>>>>>> On 6/4/14 1:30 AM, Tobias Hartmann wrote:
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> please review the following patch for bug 8044538.
>>>>>>>>
>>>>>>>> *Problem*
>>>>>>>> Executing a debug build of HotSpot with the flags
>>>>>>>> -XX:+PrintRelocations
>>>>>>>> -Xcomp hits a ShouldNotReachHere() or an assert in
>>>>>>>> Assembler::locate_operand(..) stating that the instruction for
>>>>>>>> which we
>>>>>>>> try to find the operand is not valid.
>>>>>>>>
>>>>>>>> The problem occurs while printing the relocation entries for a C2
>>>>>>>> compiled function. The C2 compiler adds internal_word_type
>>>>>>>> relocations
>>>>>>>> for the jump table entries in the constant section of a method (see
>>>>>>>> Compile::ConstantTable::fill_jump_table(...)). These
>>>>>>>> relocations are
>>>>>>>> processed by RelocIterator::print_current(...) and
>>>>>>>> internal_word_Relocation::target().
>>>>>>>> Relocation::pd_get_address_from_code() then tries to retrieve the
>>>>>>>> address from an instruction but fails because the relocation
>>>>>>>> points into
>>>>>>>> the constant section only containing the target address.
>>>>>>>>
>>>>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8044538
>>>>>>>>
>>>>>>>> *Solution*
>>>>>>>> The implementation of internal_word_Relocation::target() is
>>>>>>>> changed to
>>>>>>>> check if the relocation points into the constant section and if so
>>>>>>>> directly returns the target address instead of trying to
>>>>>>>> retrieve it
>>>>>>>> from an instruction. The same is already done in
>>>>>>>> internal_word_Relocation::fix_relocation_after_move(..).
>>>>>>>>
>>>>>>>> Webrev:
>>>>>>>> http://cr.openjdk.java.net/~thartmann/8044538/webrev.00/
>>>>>>>> <http://cr.openjdk.java.net/%7Ethartmann/8044538/webrev.00/>
>>>>>>>>
>>>>>>>> *Tests*
>>>>>>>> Failing configuration, JPRT
>>>>>>>>
>>>>>>>> Apparently this did not show up for any of our tests. Do we need an
>>>>>>>> additional test for this?
>>>>>>>> Since it already fails for JDK 7 and 8. Should we backport the
>>>>>>>> patch?
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Tobias
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140610/d8b60617/attachment-0001.html>
More information about the hotspot-compiler-dev
mailing list