changeset 9757:98308cb043ca

Implement barriers for some new intrinsics.
author rkennke
date Wed, 30 Sep 2015 22:24:06 +0200
parents cbd4cf7a1097
children daec938536a5
files src/share/vm/opto/library_call.cpp
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/opto/library_call.cpp	Wed Sep 30 22:24:04 2015 +0200
+++ b/src/share/vm/opto/library_call.cpp	Wed Sep 30 22:24:06 2015 +0200
@@ -5672,10 +5672,12 @@
   }
 
   // 'src_start' points to src array + scaled offset
+  src = shenandoah_read_barrier(src);
   Node* src_start = array_element_address(src, offset, src_elem);
 
   // static final int[] byteTable in class CRC32C
   Node* table = get_table_from_crc32c_class(callee()->holder());
+  table = shenandoah_read_barrier(table);
   Node* table_start = array_element_address(table, intcon(0), T_INT);
 
   // We assume that range check is done by caller.
@@ -5719,6 +5721,7 @@
 
   // static final int[] byteTable in class CRC32C
   Node* table = get_table_from_crc32c_class(callee()->holder());
+  table = shenandoah_read_barrier(table);
   Node* table_start = array_element_address(table, intcon(0), T_INT);
 
   // Call the stub.
@@ -5762,6 +5765,7 @@
   }
 
   // 'src_start' points to src array + scaled offset
+  src = shenandoah_read_barrier(src);
   Node* src_start = array_element_address(src, offset, src_elem);
 
   // We assume that range check is done by caller.