[aarch64-port-dev ] RFR 8233401: Shenandoah: Refactor/cleanup Shenandoah load barrier code
Zhengyu Gu
zgu at redhat.com
Mon Nov 4 14:08:42 UTC 2019
Hi Andrew,
Thanks for the review.
> void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
> Register dst, Address src, Register tmp1, Register tmp_thread) {
>
> tmp1 and tmp_thread are unused? It'd be a good idea, then, to say if they are
> safe to use or not. Or maybe even better do this if you want to keep the same
> arg list:
>
> void ShenandoahBarrierSetAssembler::load_at(MacroAssembler* masm, DecoratorSet decorators, BasicType type,
> Register dst, Address src, Register, Register) {
>
This is an overrode method. What you get for tmp1 and tmp_thread, is
really platform dependent.
On AArch64, you usually get noreg for tmp1 and tmp_thread. I can not
tell if you can safely use tmp1 if it is valid.
I don't use tmp1 here, since I don't think it is worth the trouble, as
we have spare scratch registers. I do use tmp1 in x86 through.
What do you suggest the comment should be?
Thanks,
-Zhengyu
> I guess it really isn't safe to use "tmp1" as a tmp, regardless of its name.
>
> If so, better pass it as noreg/
>
More information about the aarch64-port-dev
mailing list