Index: vm/gc_gen/src/jni/java_natives.cpp =================================================================== --- vm/gc_gen/src/jni/java_natives.cpp (revision 601653) +++ vm/gc_gen/src/jni/java_natives.cpp (working copy) @@ -58,21 +58,56 @@ GCHelper_clss = *vm_class_ptr; } +#ifndef _IPF_ + +JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getZeroingSize(JNIEnv *e, jclass c) +{ + return (jint)ZEROING_SIZE; +} + JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getPrefetchDist(JNIEnv *e, jclass c) { return (jint)PREFETCH_DISTANCE; } +JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getPrefetchStride(JNIEnv *e, jclass c) +{ + return (jint)PREFETCH_STRIDE; +} + +JNIEXPORT jboolean JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_isPrefetchEnabled(JNIEnv *, jclass) { + return (jboolean) PREFETCH_ENABLED; +} + +#else /* _IPF_ is defined*/ +/* + Alloc prefetch is disabled in GC code by default. Moreover, allocation helpers are not enabled as well. + So return zeroes for prefetch distance, prefetch stride and zeroing size here. + Also isPrefetchEnabled returns JNI_FALSE. These defaults should be taken into account + when enabling helpers on IPF. +*/ + JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getZeroingSize(JNIEnv *e, jclass c) { - return (jint)ZEROING_SIZE; + return 0; } +JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getPrefetchDist(JNIEnv *e, jclass c) +{ + return 0; +} + JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getPrefetchStride(JNIEnv *e, jclass c) { - return (jint)PREFETCH_STRIDE; + return 0; } +JNIEXPORT jboolean JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_isPrefetchEnabled(JNIEnv *, jclass) { + return (jboolean) JNI_FALSE; +} +#endif /* _IPF_ */ + + JNIEXPORT jint JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_getTlaFreeOffset(JNIEnv *, jclass) { Allocator allocator; return (jint) ((POINTER_SIZE_INT)&allocator.free - (POINTER_SIZE_INT)&allocator); @@ -96,10 +131,6 @@ return (jint) GC_OBJ_SIZE_THRESHOLD; } -JNIEXPORT jboolean JNICALL Java_org_apache_harmony_drlvm_gc_1gen_GCHelper_isPrefetchEnabled(JNIEnv *, jclass) { - return (jboolean) PREFETCH_ENABLED; -} - #ifdef __cplusplus } #endif