< prev index next >

src/share/vm/oops/typeArrayKlass.cpp

Print this page
rev 12906 : [mq]: gc_interface

@@ -39,10 +39,11 @@
 #include "oops/klass.inline.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "oops/oop.inline.hpp"
 #include "oops/typeArrayKlass.inline.hpp"
 #include "oops/typeArrayOop.inline.hpp"
+#include "runtime/access.inline.hpp"
 #include "runtime/handles.inline.hpp"
 #include "utilities/macros.hpp"
 
 bool TypeArrayKlass::compute_is_subtype_of(Klass* k) {
   if (!k->is_typeArray_klass()) {

@@ -350,5 +351,35 @@
 }
 
 PackageEntry* TypeArrayKlass::package() const {
   return NULL;
 }
+
+jbyte typeArrayOopDesc::byte_at(int which) const                  { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), byte_at_offset(which)); }
+void typeArrayOopDesc::byte_at_put(int which, jbyte contents)     { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), byte_at_offset(which), contents); }
+
+jboolean typeArrayOopDesc::bool_at(int which) const               { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), bool_at_offset(which)); }
+void typeArrayOopDesc::bool_at_put(int which, jboolean contents)  { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), bool_at_offset(which), (jboolean)(((jint)contents) & 1)); }
+
+jchar typeArrayOopDesc::char_at(int which) const                  { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), char_at_offset(which)); }
+void typeArrayOopDesc::char_at_put(int which, jchar contents)     { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), char_at_offset(which), contents); }
+
+jint typeArrayOopDesc::int_at(int which) const                    { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), int_at_offset(which)); }
+void typeArrayOopDesc::int_at_put(int which, jint contents)       { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), int_at_offset(which), contents); }
+
+jshort typeArrayOopDesc::short_at(int which) const                { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), short_at_offset(which)); }
+void typeArrayOopDesc::short_at_put(int which, jshort contents)   { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), short_at_offset(which), contents); }
+
+jushort typeArrayOopDesc::ushort_at(int which) const              { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), short_at_offset(which)); }
+void typeArrayOopDesc::ushort_at_put(int which, jushort contents) { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), short_at_offset(which), contents); }
+
+jlong typeArrayOopDesc::long_at(int which) const                  { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), long_at_offset(which)); }
+void typeArrayOopDesc::long_at_put(int which, jlong contents)     { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), long_at_offset(which), contents); }
+
+jfloat typeArrayOopDesc::float_at(int which) const                { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), float_at_offset(which)); }
+void typeArrayOopDesc::float_at_put(int which, jfloat contents)   { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), float_at_offset(which), contents); }
+
+jdouble typeArrayOopDesc::double_at(int which) const              { return HeapAccess<ACCESS_ON_ARRAY>::load_at(oop_base(), double_at_offset(which)); }
+void typeArrayOopDesc::double_at_put(int which, jdouble contents) { HeapAccess<ACCESS_ON_ARRAY>::store_at(oop_base(), double_at_offset(which), contents); }
+
+jbyte typeArrayOopDesc::byte_at_acquire(int which) const              { return HeapAccess<ACCESS_ON_ARRAY | MO_ACQUIRE>::load_at(oop_base(), byte_at_offset(which)); }
+void typeArrayOopDesc::release_byte_at_put(int which, jbyte contents) { HeapAccess<ACCESS_ON_ARRAY | MO_RELEASE>::store_at(oop_base(), byte_at_offset(which), contents); }
< prev index next >