Commit 9d4c2148 by Bryce McKinlay Committed by Bryce McKinlay

natClass.cc (isInstance): Use __builtin_expect.

2000-05-05  Bryce McKinlay  <bryce@albatross.co.nz>

	* java/lang/natClass.cc (isInstance): Use __builtin_expect.
	(_Jv_IsAssignableFrom): Ditto.
	(_Jv_IsInstanceOf): Ditto.
	(_Jv_CheckCast): Ditto.
	(_Jv_CheckArrayStore): Ditto.
	* java/lang/Class.h (_Jv_InitClass): Ditto.
	* java/lang/natObject.cc (_Jv_MonitorEnter): __builtin_expect `false',
	not `0'.
	(notify): Ditto.
	(notifyAll): Ditto.
	(wait): Ditto.
	(_Jv_MonitorExit): Ditto.
	* boehm.cc (_Jv_MarkObj): Ditto.
	(_Jv_MarkObj): Ditto.
	(_Jv_MarkArray): Ditto.
	* prims.cc (_Jv_AllocObject): Ditto.
	(_Jv_NewObjectArray): Ditto.
	(_Jv_NewPrimArray): Ditto.
	(_Jv_Malloc): Ditto.
	(_Jv_Realloc): Ditto.
	(_Jv_MallocUnchecked): Ditto.
	(_Jv_divI): Ditto.
	(_Jv_remI): Ditto.
	(_Jv_divJ): Ditto.
	(_Jv_remJ): Ditto.

From-SVN: r33698
parent 59b30ca6
2000-05-05 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/natClass.cc (isInstance): Use __builtin_expect.
(_Jv_IsAssignableFrom): Ditto.
(_Jv_IsInstanceOf): Ditto.
(_Jv_CheckCast): Ditto.
(_Jv_CheckArrayStore): Ditto.
* java/lang/Class.h (_Jv_InitClass): Ditto.
* java/lang/natObject.cc (_Jv_MonitorEnter): __builtin_expect `false',
not `0'.
(notify): Ditto.
(notifyAll): Ditto.
(wait): Ditto.
(_Jv_MonitorExit): Ditto.
* boehm.cc (_Jv_MarkObj): Ditto.
(_Jv_MarkObj): Ditto.
(_Jv_MarkArray): Ditto.
* prims.cc (_Jv_AllocObject): Ditto.
(_Jv_NewObjectArray): Ditto.
(_Jv_NewPrimArray): Ditto.
(_Jv_Malloc): Ditto.
(_Jv_Realloc): Ditto.
(_Jv_MallocUnchecked): Ditto.
(_Jv_divI): Ditto.
(_Jv_remI): Ditto.
(_Jv_divJ): Ditto.
(_Jv_remJ): Ditto.
2000-05-04 Tom Tromey <tromey@cygnus.com> 2000-05-04 Tom Tromey <tromey@cygnus.com>
* java/util/Locale.java (Locale): Don't explicitly check for * java/util/Locale.java (Locale): Don't explicitly check for
......
...@@ -203,7 +203,7 @@ private: ...@@ -203,7 +203,7 @@ private:
inline friend void inline friend void
_Jv_InitClass (jclass klass) _Jv_InitClass (jclass klass)
{ {
if (klass->state != JV_STATE_DONE) if (__builtin_expect (klass->state != JV_STATE_DONE, false))
klass->initializeClass (); klass->initializeClass ();
} }
......
...@@ -622,7 +622,7 @@ java::lang::Class::isAssignableFrom (jclass klass) ...@@ -622,7 +622,7 @@ java::lang::Class::isAssignableFrom (jclass klass)
inline jboolean inline jboolean
java::lang::Class::isInstance (jobject obj) java::lang::Class::isInstance (jobject obj)
{ {
if (! obj || isPrimitive ()) if (__builtin_expect (! obj || isPrimitive (), false))
return false; return false;
_Jv_InitClass (this); _Jv_InitClass (this);
return _Jv_IsAssignableFrom (this, JV_CLASS (obj)); return _Jv_IsAssignableFrom (this, JV_CLASS (obj));
...@@ -923,7 +923,7 @@ _Jv_IsAssignableFrom (jclass target, jclass source) ...@@ -923,7 +923,7 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
{ {
_Jv_IDispatchTable *cl_idt = source->idt; _Jv_IDispatchTable *cl_idt = source->idt;
_Jv_IDispatchTable *if_idt = target->idt; _Jv_IDispatchTable *if_idt = target->idt;
if (if_idt == NULL) if (__builtin_expect ((if_idt == NULL), false))
return false; // No class implementing TARGET has been loaded. return false; // No class implementing TARGET has been loaded.
jshort cl_iindex = cl_idt->cls.iindex; jshort cl_iindex = cl_idt->cls.iindex;
if (cl_iindex <= if_idt->iface.ioffsets[0]) if (cl_iindex <= if_idt->iface.ioffsets[0])
...@@ -941,13 +941,16 @@ _Jv_IsAssignableFrom (jclass target, jclass source) ...@@ -941,13 +941,16 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
jboolean jboolean
_Jv_IsInstanceOf(jobject obj, jclass cl) _Jv_IsInstanceOf(jobject obj, jclass cl)
{ {
return (obj ? _Jv_IsAssignableFrom (cl, JV_CLASS (obj)) : false); if (__builtin_expect (!obj, false))
return false;
return (_Jv_IsAssignableFrom (cl, JV_CLASS (obj)));
} }
void * void *
_Jv_CheckCast (jclass c, jobject obj) _Jv_CheckCast (jclass c, jobject obj)
{ {
if (obj != NULL && ! _Jv_IsAssignableFrom(c, JV_CLASS (obj))) if (__builtin_expect
(obj != NULL && ! _Jv_IsAssignableFrom(c, JV_CLASS (obj)), false))
JvThrow (new java::lang::ClassCastException); JvThrow (new java::lang::ClassCastException);
return obj; return obj;
} }
...@@ -960,7 +963,8 @@ _Jv_CheckArrayStore (jobject arr, jobject obj) ...@@ -960,7 +963,8 @@ _Jv_CheckArrayStore (jobject arr, jobject obj)
JvAssert (arr != NULL); JvAssert (arr != NULL);
jclass elt_class = (JV_CLASS (arr))->getComponentType(); jclass elt_class = (JV_CLASS (arr))->getComponentType();
jclass obj_class = JV_CLASS (obj); jclass obj_class = JV_CLASS (obj);
if (! _Jv_IsAssignableFrom (elt_class, obj_class)) if (__builtin_expect
(! _Jv_IsAssignableFrom (elt_class, obj_class), false))
JvThrow (new java::lang::ArrayStoreException); JvThrow (new java::lang::ArrayStoreException);
} }
} }
......
...@@ -172,10 +172,10 @@ java::lang::Object::sync_init (void) ...@@ -172,10 +172,10 @@ java::lang::Object::sync_init (void)
void void
java::lang::Object::notify (void) java::lang::Object::notify (void)
{ {
if (__builtin_expect (INIT_NEEDED (this), 0)) if (__builtin_expect (INIT_NEEDED (this), false))
sync_init (); sync_init ();
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
if (__builtin_expect (_Jv_CondNotify (&si->condition, &si->mutex), 0)) if (__builtin_expect (_Jv_CondNotify (&si->condition, &si->mutex), false))
JvThrow (new IllegalMonitorStateException(JvNewStringLatin1 JvThrow (new IllegalMonitorStateException(JvNewStringLatin1
("current thread not owner"))); ("current thread not owner")));
} }
...@@ -183,10 +183,10 @@ java::lang::Object::notify (void) ...@@ -183,10 +183,10 @@ java::lang::Object::notify (void)
void void
java::lang::Object::notifyAll (void) java::lang::Object::notifyAll (void)
{ {
if (__builtin_expect (INIT_NEEDED (this), 0)) if (__builtin_expect (INIT_NEEDED (this), false))
sync_init (); sync_init ();
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
if (__builtin_expect (_Jv_CondNotifyAll (&si->condition, &si->mutex), 0)) if (__builtin_expect (_Jv_CondNotifyAll (&si->condition, &si->mutex), false))
JvThrow (new IllegalMonitorStateException(JvNewStringLatin1 JvThrow (new IllegalMonitorStateException(JvNewStringLatin1
("current thread not owner"))); ("current thread not owner")));
} }
...@@ -194,9 +194,9 @@ java::lang::Object::notifyAll (void) ...@@ -194,9 +194,9 @@ java::lang::Object::notifyAll (void)
void void
java::lang::Object::wait (jlong timeout, jint nanos) java::lang::Object::wait (jlong timeout, jint nanos)
{ {
if (__builtin_expect (INIT_NEEDED (this), 0)) if (__builtin_expect (INIT_NEEDED (this), false))
sync_init (); sync_init ();
if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, 0)) if (__builtin_expect (timeout < 0 || nanos < 0 || nanos > 999999, false))
JvThrow (new IllegalArgumentException); JvThrow (new IllegalArgumentException);
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos)) switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos))
...@@ -226,10 +226,10 @@ jint ...@@ -226,10 +226,10 @@ jint
_Jv_MonitorEnter (jobject obj) _Jv_MonitorEnter (jobject obj)
{ {
#ifndef HANDLE_SEGV #ifndef HANDLE_SEGV
if (__builtin_expect (! obj, 0)) if (__builtin_expect (! obj, false))
JvThrow (new java::lang::NullPointerException); JvThrow (new java::lang::NullPointerException);
#endif #endif
if (__builtin_expect (INIT_NEEDED (obj), 0)) if (__builtin_expect (INIT_NEEDED (obj), false))
obj->sync_init (); obj->sync_init ();
_Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
return _Jv_MutexLock (&si->mutex); return _Jv_MutexLock (&si->mutex);
...@@ -241,7 +241,7 @@ _Jv_MonitorExit (jobject obj) ...@@ -241,7 +241,7 @@ _Jv_MonitorExit (jobject obj)
JvAssert (obj); JvAssert (obj);
JvAssert (! INIT_NEEDED (obj)); JvAssert (! INIT_NEEDED (obj));
_Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info; _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
if (__builtin_expect (_Jv_MutexUnlock (&si->mutex), 0)) if (__builtin_expect (_Jv_MutexUnlock (&si->mutex), false))
JvThrow (new java::lang::IllegalMonitorStateException); JvThrow (new java::lang::IllegalMonitorStateException);
return 0; return 0;
} }
......
...@@ -328,7 +328,7 @@ _Jv_AllocObject (jclass c, jint size) ...@@ -328,7 +328,7 @@ _Jv_AllocObject (jclass c, jint size)
_Jv_InitClass (c); _Jv_InitClass (c);
jobject obj = (jobject) _Jv_AllocObj (size); jobject obj = (jobject) _Jv_AllocObj (size);
if (__builtin_expect (! obj, 0)) if (__builtin_expect (! obj, false))
JvThrow (no_memory); JvThrow (no_memory);
*((_Jv_VTable **) obj) = c->vtable; *((_Jv_VTable **) obj) = c->vtable;
...@@ -345,7 +345,7 @@ _Jv_AllocObject (jclass c, jint size) ...@@ -345,7 +345,7 @@ _Jv_AllocObject (jclass c, jint size)
#ifdef ENABLE_JVMPI #ifdef ENABLE_JVMPI
// Service JVMPI request. // Service JVMPI request.
if (__builtin_expect (_Jv_JVMPI_Notify_OBJECT_ALLOC != 0, 0)) if (__builtin_expect (_Jv_JVMPI_Notify_OBJECT_ALLOC != 0, false))
{ {
JVMPI_Event event; JVMPI_Event event;
...@@ -372,7 +372,7 @@ _Jv_AllocObject (jclass c, jint size) ...@@ -372,7 +372,7 @@ _Jv_AllocObject (jclass c, jint size)
jobjectArray jobjectArray
_Jv_NewObjectArray (jsize count, jclass elementClass, jobject init) _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
{ {
if (__builtin_expect (count < 0, 0)) if (__builtin_expect (count < 0, false))
JvThrow (new java::lang::NegativeArraySizeException); JvThrow (new java::lang::NegativeArraySizeException);
JvAssert (! elementClass->isPrimitive ()); JvAssert (! elementClass->isPrimitive ());
...@@ -383,7 +383,7 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init) ...@@ -383,7 +383,7 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
// Check for overflow. // Check for overflow.
if (__builtin_expect ((size_t) count > if (__builtin_expect ((size_t) count >
(SIZE_T_MAX - size) / sizeof (jobject), 0)) (SIZE_T_MAX - size) / sizeof (jobject), false))
JvThrow (no_memory); JvThrow (no_memory);
size += count * sizeof (jobject); size += count * sizeof (jobject);
...@@ -392,7 +392,7 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init) ...@@ -392,7 +392,7 @@ _Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
jclass clas = _Jv_FindArrayClass (elementClass, 0); jclass clas = _Jv_FindArrayClass (elementClass, 0);
obj = (jobjectArray) _Jv_AllocArray (size); obj = (jobjectArray) _Jv_AllocArray (size);
if (__builtin_expect (! obj, 0)) if (__builtin_expect (! obj, false))
JvThrow (no_memory); JvThrow (no_memory);
obj->length = count; obj->length = count;
jobject* ptr = elements(obj); jobject* ptr = elements(obj);
...@@ -416,7 +416,7 @@ jobject ...@@ -416,7 +416,7 @@ jobject
_Jv_NewPrimArray (jclass eltype, jint count) _Jv_NewPrimArray (jclass eltype, jint count)
{ {
int elsize = eltype->size(); int elsize = eltype->size();
if (__builtin_expect (count < 0, 0)) if (__builtin_expect (count < 0, false))
JvThrow (new java::lang::NegativeArraySizeException ()); JvThrow (new java::lang::NegativeArraySizeException ());
JvAssert (eltype->isPrimitive ()); JvAssert (eltype->isPrimitive ());
...@@ -425,11 +425,11 @@ _Jv_NewPrimArray (jclass eltype, jint count) ...@@ -425,11 +425,11 @@ _Jv_NewPrimArray (jclass eltype, jint count)
// Check for overflow. // Check for overflow.
if (__builtin_expect ((size_t) count > if (__builtin_expect ((size_t) count >
(SIZE_T_MAX - size) / elsize, 0)) (SIZE_T_MAX - size) / elsize, false))
JvThrow (no_memory); JvThrow (no_memory);
__JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count); __JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count);
if (__builtin_expect (! arr, 0)) if (__builtin_expect (! arr, false))
JvThrow (no_memory); JvThrow (no_memory);
arr->length = count; arr->length = count;
// Note that we assume we are given zeroed memory by the allocator. // Note that we assume we are given zeroed memory by the allocator.
...@@ -932,10 +932,10 @@ _Jv_SetMaximumHeapSize (const char *arg) ...@@ -932,10 +932,10 @@ _Jv_SetMaximumHeapSize (const char *arg)
void * void *
_Jv_Malloc (jsize size) _Jv_Malloc (jsize size)
{ {
if (__builtin_expect (size == 0, 0)) if (__builtin_expect (size == 0, false))
size = 1; size = 1;
void *ptr = malloc ((size_t) size); void *ptr = malloc ((size_t) size);
if (__builtin_expect (ptr == NULL, 0)) if (__builtin_expect (ptr == NULL, false))
JvThrow (no_memory); JvThrow (no_memory);
return ptr; return ptr;
} }
...@@ -943,10 +943,10 @@ _Jv_Malloc (jsize size) ...@@ -943,10 +943,10 @@ _Jv_Malloc (jsize size)
void * void *
_Jv_Realloc (void *ptr, jsize size) _Jv_Realloc (void *ptr, jsize size)
{ {
if (__builtin_expect (size == 0, 0)) if (__builtin_expect (size == 0, false))
size = 1; size = 1;
ptr = realloc (ptr, (size_t) size); ptr = realloc (ptr, (size_t) size);
if (__builtin_expect (ptr == NULL, 0)) if (__builtin_expect (ptr == NULL, false))
JvThrow (no_memory); JvThrow (no_memory);
return ptr; return ptr;
} }
...@@ -954,7 +954,7 @@ _Jv_Realloc (void *ptr, jsize size) ...@@ -954,7 +954,7 @@ _Jv_Realloc (void *ptr, jsize size)
void * void *
_Jv_MallocUnchecked (jsize size) _Jv_MallocUnchecked (jsize size)
{ {
if (__builtin_expect (size == 0, 0)) if (__builtin_expect (size == 0, false))
size = 1; size = 1;
return malloc ((size_t) size); return malloc ((size_t) size);
} }
...@@ -975,7 +975,7 @@ _Jv_Free (void* ptr) ...@@ -975,7 +975,7 @@ _Jv_Free (void* ptr)
jint jint
_Jv_divI (jint dividend, jint divisor) _Jv_divI (jint dividend, jint divisor)
{ {
if (__builtin_expect (divisor == 0, 0)) if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception); _Jv_Throw (arithexception);
if (dividend == (jint) 0x80000000L && divisor == -1) if (dividend == (jint) 0x80000000L && divisor == -1)
...@@ -987,7 +987,7 @@ _Jv_divI (jint dividend, jint divisor) ...@@ -987,7 +987,7 @@ _Jv_divI (jint dividend, jint divisor)
jint jint
_Jv_remI (jint dividend, jint divisor) _Jv_remI (jint dividend, jint divisor)
{ {
if (__builtin_expect (divisor == 0, 0)) if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception); _Jv_Throw (arithexception);
if (dividend == (jint) 0x80000000L && divisor == -1) if (dividend == (jint) 0x80000000L && divisor == -1)
...@@ -999,7 +999,7 @@ _Jv_remI (jint dividend, jint divisor) ...@@ -999,7 +999,7 @@ _Jv_remI (jint dividend, jint divisor)
jlong jlong
_Jv_divJ (jlong dividend, jlong divisor) _Jv_divJ (jlong dividend, jlong divisor)
{ {
if (__builtin_expect (divisor == 0, 0)) if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception); _Jv_Throw (arithexception);
if (dividend == (jlong) 0x8000000000000000LL && divisor == -1) if (dividend == (jlong) 0x8000000000000000LL && divisor == -1)
...@@ -1011,7 +1011,7 @@ _Jv_divJ (jlong dividend, jlong divisor) ...@@ -1011,7 +1011,7 @@ _Jv_divJ (jlong dividend, jlong divisor)
jlong jlong
_Jv_remJ (jlong dividend, jlong divisor) _Jv_remJ (jlong dividend, jlong divisor)
{ {
if (__builtin_expect (divisor == 0, 0)) if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception); _Jv_Throw (arithexception);
if (dividend == (jlong) 0x8000000000000000LL && divisor == -1) if (dividend == (jlong) 0x8000000000000000LL && divisor == -1)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment