diff -r 23e3ab980622 -r 9b7b9f16dfd9 src/hotspot/cpu/x86/x86_64.ad --- a/src/hotspot/cpu/x86/x86_64.ad Tue Aug 20 10:46:23 2019 +0200 +++ b/src/hotspot/cpu/x86/x86_64.ad Tue Aug 20 10:11:53 2019 +0100 @@ -6565,6 +6565,47 @@ ins_pipe(pipe_slow); // XXX %} +instruct cacheWB(indirect addr) +%{ + predicate(VM_Version::supports_data_cache_line_flush()); + 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() +%{ + predicate(VM_Version::supports_data_cache_line_flush()); + match(CacheWBPreSync); + + ins_cost(100); + format %{"cache wb presync" %} + ins_encode %{ + __ cache_wbsync(true); + %} + ins_pipe(pipe_slow); // XXX +%} + +instruct cacheWBPostSync() +%{ + predicate(VM_Version::supports_data_cache_line_flush()); + match(CacheWBPostSync); + + ins_cost(100); + format %{"cache wb postsync" %} + ins_encode %{ + __ cache_wbsync(false); + %} + ins_pipe(pipe_slow); // XXX +%} + //----------BSWAP Instructions------------------------------------------------- instruct bytes_reverse_int(rRegI dst) %{ match(Set dst (ReverseBytesI dst));