--- old/src/hotspot/cpu/aarch64/aarch64.ad 2018-07-25 11:31:16.865886068 +0100 +++ new/src/hotspot/cpu/aarch64/aarch64.ad 2018-07-25 11:31:16.593885257 +0100 @@ -8962,6 +8962,44 @@ // ---------------- end of volatile loads and stores ---------------- +instruct cacheWB(indirect addr) +%{ + match(CacheWB addr); + + ins_cost(100); + format %{"cache wb $addr" %} + ins_encode %{ + assert($addr->index_position() < 0, "should be"); + assert($addr$$disp == 0, "should be"); + __ cache_wb(Address($addr$$base$$Register, 0)); + %} + ins_pipe(pipe_slow); // XXX +%} + +instruct cacheWBPreSync() +%{ + match(CacheWBPreSync); + + ins_cost(100); + format %{"cache wb presync" %} + ins_encode %{ + __ cache_wbsync(true); + %} + ins_pipe(pipe_slow); // XXX +%} + +instruct cacheWBPostSync() +%{ + match(CacheWBPostSync); + + ins_cost(100); + format %{"cache wb postsync" %} + ins_encode %{ + __ cache_wbsync(false); + %} + ins_pipe(pipe_slow); // XXX +%} + // ============================================================================ // BSWAP Instructions