RFR (XS): 8044071: Print format/argument warnings

Mikael Vidstedt mikael.vidstedt at oracle.com
Thu May 29 01:03:30 UTC 2014


I think you're right. The only use appears to be in the unit test code 
itself. I just tried #if 0'ing out everything related to 
NativeMovRegMemPatching and it builds just fine.

I filed an RFE to cover the removal of the class: 
https://bugs.openjdk.java.net/browse/JDK-8044242

Cheers,
Mikael

On 2014-05-28 16:15, Dean Long wrote:
> NativeMovRegMemPatching might be dead code.  I can't find where it's 
> used.
>
> dl
>
> On 5/28/2014 12:48 PM, Christian Thalinger wrote:
>> This made me curious because I was expecting a cast too:
>>    void NativeMovRegMemPatching::print() {
>>      if (is_immediate()) {
>> !     tty->print_cr(INTPTR_FORMAT ": mov reg, [reg + %x]", 
>> instruction_address(), offset());
>> !     tty->print_cr(INTPTR_FORMAT ": mov reg, [reg + %d]", 
>> p2i(instruction_address()), offset());
>> Turns out that NativeMovConstRegPatching::data()  returns an int:
>>
>> int NativeMovConstRegPatching::data() const {
>> #ifdef _LP64
>>    return data64(addr_at(sethi_offset), long_at(add_offset));
>> #else
>>    return data32(long_at(sethi_offset), long_at(add_offset));
>> #endif
>> }
>>
>> but on 64-bit we truncate an intptr_t:
>>
>>    static intptr_t data64( address pc, int arith_insn ) {
>>
>> That’s odd because in NativeMovRegMem we use intptr_t for offset 
>> exactly because of the non-immediate case.
>>
>> On May 27, 2014, at 3:22 PM, Mikael Vidstedt 
>> <mikael.vidstedt at oracle.com> wrote:
>>
>>> Please review the below change which addresses a number of print 
>>> format/argument mismatches when compiling linux/sparc using gcc.
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8044071
>>> Webrev: 
>>> http://cr.openjdk.java.net/~mikael/webrevs/8044071/webrev.00/webrev/
>>>
>>> Most of these are straightforward changes to INTPTR_FORMAT & adding 
>>> p2i. A couple of changes worth bringing up:
>>>
>>> * nativeInst_sparc.cpp
>>>
>>> I changed the format of the offset in mov related prints (two 
>>> occurrences) to %d, since it's really a signed decimal int. This 
>>> will hopefully reduce confusion when the offset is negative, where 
>>> previously it would have looked like a relatively large positive 
>>> offset.
>>>
>>> * macroAssembler_sparc.cpp
>>>
>>> The new code is in line with other similar patterns in the same 
>>> file, but the ugly cast should IMHO really be rewritten to cast 
>>> through a union. RFE?
>>>
>>> Cheers,
>>> Mikael
>>>
>



More information about the hotspot-dev mailing list