[aarch64-port-dev ] AArch64: Why should we use rscratch1 instead of the temp register passed in?
dean.long at oracle.com
dean.long at oracle.com
Wed Sep 12 03:35:26 UTC 2018
Oops, I don't know what happened to the formatting. You can find
LIR_Assembler::emit_typecheck_helper() here:
http://hg.openjdk.java.net/jdk/jdk/file/bbc7157ad9c5/src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp#l1325
dl
On 9/11/18 8:30 PM, dean.long at oracle.com wrote:
> Isn't this the same problem LIR_Assembler::emit_typecheck_helper() is
> solving with this code:
>
> <mangled>
>
> (though the if-else and the select_different_registers appear to me to
> be doing the same thing here.)
>
> There's an input operand that isn't live after this instruction, so
> its register can be reused by the result or one of the temps. If it's
> a temp, find out which one and use the result register instead.
>
> dl
>
>
> On 9/11/18 6:00 PM, Pengfei Li (Arm Technology China) wrote:
>> Hi Roman,
>>
>>> .. the opr3 is marked as 'temp' (if it's assigned a valid value)
>>> which means it
>>> should be live for the lifetime of the instruction, but not before
>>> or after it.
>>> Maybe that comment is obsolete? Have you tried to use opr3/Rscratch ?
>>
>> Thanks for your reply.
>>
>> I've tried to use Rscratch and assertion failed at
>> http://hg.openjdk.java.net/jdk/jdk/file/bbc7157ad9c5/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp#l1774.
>> RA assigns the same register (rscratch) to Rdividend just as your
>> comment said. So that comment is not obsolete.
>>
>> --
>> Thanks,
>> Pengfei
>
More information about the aarch64-port-dev
mailing list