RFR: Refactor asm acmp
Roman Kennke
rkennke at redhat.com
Tue Jul 18 14:18:04 UTC 2017
This bugs me since a while. Wherever we do compare objects in assembly
code (i.e. interpreter and C1), we use to write something like:
__ cmpptr(o1, o2)
oopDesc::bs()->asm_acmp_barrier(o1, o2)
where the asm_acmp_barrier() would *expect* to be preceded by cmpptr,
and pick up its condition flags, etc, and produce the same condition flags.
It all seems brittle and not very obvious.
I propose to change that to:
__ cmp_objects(o1, o2);
and call the acmp barrier from there. This makes consuming code much
more obvious, and the call to the barrier set more contained.
http://cr.openjdk.java.net/~rkennke/refactor-acmp/webrev.00/
<http://cr.openjdk.java.net/%7Erkennke/refactor-acmp/webrev.00/>
Testing: hotspot_gc_shenandoah
Ok?
More information about the shenandoah-dev
mailing list