Lines Matching refs:offset

94 // guarantee this.  The field offset values manipulated by the Java user
119 assert(p == NULL || field_offset >= oopDesc::header_size(), "offset must be outside of header");
122 assert(byte_offset >= 0 && byte_offset <= (jlong)MAX_OBJECT_SIZE, "sane offset");
129 assert(byte_offset < p_size, err_msg("Unsafe access: offset " INT64_FORMAT " > object's size " INT64_FORMAT, byte_offset, p_size));
156 #define GET_FIELD(obj, offset, type_name, v) \
158 type_name v = *(type_name*)index_oop_from_field_offset_long(p, offset)
160 #define SET_FIELD(obj, offset, type_name, x) \
162 *(type_name*)index_oop_from_field_offset_long(p, offset) = x
164 #define GET_FIELD_VOLATILE(obj, offset, type_name, v) \
166 volatile type_name v = OrderAccess::load_acquire((volatile type_name*)index_oop_from_field_offset_long(p, offset));
168 #define SET_FIELD_VOLATILE(obj, offset, type_name, x) \
170 OrderAccess::release_store_fence((volatile type_name*)index_oop_from_field_offset_long(p, offset), x);
174 #define GET_OOP_FIELD(obj, offset, v) \
178 narrowOop n = *(narrowOop*)index_oop_from_field_offset_long(p, offset); \
181 v = *(oop*)index_oop_from_field_offset_long(p, offset); \
187 // The xxx140 variants for backward compatibility do not allow a full-width offset.
188 UNSAFE_ENTRY(jobject, Unsafe_GetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint offset))
191 GET_OOP_FIELD(obj, offset, v)
201 if (offset == java_lang_ref_Reference::referent_offset) {
220 UNSAFE_ENTRY(void, Unsafe_SetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint offset, jobject x_h))
224 //SET_FIELD(obj, offset, oop, x);
229 oop_store((narrowOop*)index_oop_from_field_offset_long(p, offset), x);
232 *(narrowOop*)index_oop_from_field_offset_long(p, offset) = n;
237 oop_store((oop*)index_oop_from_field_offset_long(p, offset), x);
239 *(oop*)index_oop_from_field_offset_long(p, offset) = x;
245 // But if the base pointer is non-null, the offset should make some sense.
247 UNSAFE_ENTRY(jobject, Unsafe_GetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset))
249 GET_OOP_FIELD(obj, offset, v)
259 if (offset == java_lang_ref_Reference::referent_offset && obj != NULL) {
278 UNSAFE_ENTRY(void, Unsafe_SetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h))
283 oop_store((narrowOop*)index_oop_from_field_offset_long(p, offset), x);
285 oop_store((oop*)index_oop_from_field_offset_long(p, offset), x);
289 UNSAFE_ENTRY(jobject, Unsafe_GetObjectVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset))
292 void* addr = index_oop_from_field_offset_long(p, offset);
304 UNSAFE_ENTRY(void, Unsafe_SetObjectVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h))
308 void* addr = index_oop_from_field_offset_long(p, offset);
327 UNSAFE_ENTRY(jlong, Unsafe_GetLongVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset))
331 GET_FIELD_VOLATILE(obj, offset, jlong, v);
336 jlong* addr = (jlong*)(index_oop_from_field_offset_long(p(), offset));
344 UNSAFE_ENTRY(void, Unsafe_SetLongVolatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jlong x))
348 SET_FIELD_VOLATILE(obj, offset, jlong, x);
352 jlong* addr = (jlong*)(index_oop_from_field_offset_long(p(), offset));
363 UNSAFE_ENTRY(jboolean, Unsafe_Get##Boolean##140(JNIEnv *env, jobject unsafe, jobject obj, jint offset)) \
366 GET_FIELD(obj, offset, jboolean, v); \
370 UNSAFE_ENTRY(void, Unsafe_Set##Boolean##140(JNIEnv *env, jobject unsafe, jobject obj, jint offset, jboolean x)) \
373 SET_FIELD(obj, offset, jboolean, x); \
376 UNSAFE_ENTRY(jboolean, Unsafe_Get##Boolean(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) \
378 GET_FIELD(obj, offset, jboolean, v); \
382 UNSAFE_ENTRY(void, Unsafe_Set##Boolean(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jboolean x)) \
384 SET_FIELD(obj, offset, jboolean, x); \
402 UNSAFE_ENTRY(jboolean, Unsafe_Get##Boolean##Volatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset)) \
404 GET_FIELD_VOLATILE(obj, offset, jboolean, v); \
408 UNSAFE_ENTRY(void, Unsafe_Set##Boolean##Volatile(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jboolean x)) \
410 SET_FIELD_VOLATILE(obj, offset, jboolean, x); \
432 UNSAFE_ENTRY(void, Unsafe_SetOrderedInt(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jint x))
434 SET_FIELD_VOLATILE(obj, offset, jint, x);
437 UNSAFE_ENTRY(void, Unsafe_SetOrderedObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h))
441 void* addr = index_oop_from_field_offset_long(p, offset);
451 UNSAFE_ENTRY(void, Unsafe_SetOrderedLong(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jlong x))
455 SET_FIELD_VOLATILE(obj, offset, jlong, x);
460 SET_FIELD_VOLATILE(obj, offset, jlong, x);
464 jlong* addr = (jlong*)(index_oop_from_field_offset_long(p(), offset));
630 UNSAFE_ENTRY(void, Unsafe_SetMemory2(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jlong size, jbyte value))
637 void* p = index_oop_from_field_offset_long(base, offset);
712 int offset = instanceKlass::cast(k)->field_offset(slot);
713 return field_offset_from_byte_offset(offset);
729 // offset from the base of a a klass metaobject. Thus, the full dynamic
753 jlong offset = find_field_offset(field, -1, THREAD);
754 guarantee(offset == (jint)offset, "offset fits in 32 bits");
755 return (jint)offset;
842 // but requires it to be linear in byte offset.
856 static jclass Unsafe_DefineClass(JNIEnv *env, jstring name, jbyteArray data, int offset, int length, jobject loader, jobject pd) {
889 env->GetByteArrayRegion(data, offset, length, body);
927 UNSAFE_ENTRY(jclass, Unsafe_DefineClass0(JNIEnv *env, jobject unsafe, jstring name, jbyteArray data, int offset, int length))
937 return Unsafe_DefineClass(env, name, data, offset, length, loader, pd);
942 UNSAFE_ENTRY(jclass, Unsafe_DefineClass1(JNIEnv *env, jobject unsafe, jstring name, jbyteArray data, int offset, int length, jobject loader, jobject pd))
947 return Unsafe_DefineClass(env, name, data, offset, length, loader, pd);
1156 UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSwapObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject e_h, jobject x_h))
1161 HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset);
1174 UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSwapInt(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jint e, jint x))
1177 jint* addr = (jint *) index_oop_from_field_offset_long(p, offset);
1181 UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSwapLong(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jlong e, jlong x))
1184 jlong* addr = (jlong*)(index_oop_from_field_offset_long(p(), offset));
1288 UNSAFE_ENTRY(void, Unsafe_PrefetchRead(JNIEnv* env, jclass ignored, jobject obj, jlong offset))
1292 Prefetch::read(addr, (intx)offset);
1295 UNSAFE_ENTRY(void, Unsafe_PrefetchWrite(JNIEnv* env, jclass ignored, jobject obj, jlong offset))
1299 Prefetch::write(addr, (intx)offset);