Expand shenandoah write barrier as C2 IR

Andrew Haley aph at redhat.com
Fri Oct 28 14:12:37 UTC 2016


On 25/10/16 17:16, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/shenandoah/wb2ir/webrev.00/
> 
> This expands the write barrier to c2 IR after most optimizations are
> over. It also takes care of finding a dominating null check and reshapes
> the graph to enable implicit null checks.

I'm slightly baffled by all the


+      if (!c_abi) {
+        __ mov(rscratch1, obj);
+        __ pop_call_clobbered_registers();
+        __ mov(obj, rscratch1);
+      } else {
+        __ pop_call_clobbered_fp_registers();
+      }

stuff.  What has the C ABI to do with this?  And why does the C ABI
only save floating-point registers?

Andrew.



More information about the shenandoah-dev mailing list