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
This commit is contained in:
parent
59b30ca6dd
commit
9d4c21486c
5 changed files with 64 additions and 32 deletions
|
@ -203,7 +203,7 @@ private:
|
|||
inline friend void
|
||||
_Jv_InitClass (jclass klass)
|
||||
{
|
||||
if (klass->state != JV_STATE_DONE)
|
||||
if (__builtin_expect (klass->state != JV_STATE_DONE, false))
|
||||
klass->initializeClass ();
|
||||
}
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ java::lang::Class::isAssignableFrom (jclass klass)
|
|||
inline jboolean
|
||||
java::lang::Class::isInstance (jobject obj)
|
||||
{
|
||||
if (! obj || isPrimitive ())
|
||||
if (__builtin_expect (! obj || isPrimitive (), false))
|
||||
return false;
|
||||
_Jv_InitClass (this);
|
||||
return _Jv_IsAssignableFrom (this, JV_CLASS (obj));
|
||||
|
@ -923,7 +923,7 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
|
|||
{
|
||||
_Jv_IDispatchTable *cl_idt = source->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.
|
||||
jshort cl_iindex = cl_idt->cls.iindex;
|
||||
if (cl_iindex <= if_idt->iface.ioffsets[0])
|
||||
|
@ -941,13 +941,16 @@ _Jv_IsAssignableFrom (jclass target, jclass source)
|
|||
jboolean
|
||||
_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 *
|
||||
_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);
|
||||
return obj;
|
||||
}
|
||||
|
@ -960,7 +963,8 @@ _Jv_CheckArrayStore (jobject arr, jobject obj)
|
|||
JvAssert (arr != NULL);
|
||||
jclass elt_class = (JV_CLASS (arr))->getComponentType();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -172,10 +172,10 @@ java::lang::Object::sync_init (void)
|
|||
void
|
||||
java::lang::Object::notify (void)
|
||||
{
|
||||
if (__builtin_expect (INIT_NEEDED (this), 0))
|
||||
if (__builtin_expect (INIT_NEEDED (this), false))
|
||||
sync_init ();
|
||||
_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
|
||||
("current thread not owner")));
|
||||
}
|
||||
|
@ -183,10 +183,10 @@ java::lang::Object::notify (void)
|
|||
void
|
||||
java::lang::Object::notifyAll (void)
|
||||
{
|
||||
if (__builtin_expect (INIT_NEEDED (this), 0))
|
||||
if (__builtin_expect (INIT_NEEDED (this), false))
|
||||
sync_init ();
|
||||
_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
|
||||
("current thread not owner")));
|
||||
}
|
||||
|
@ -194,9 +194,9 @@ java::lang::Object::notifyAll (void)
|
|||
void
|
||||
java::lang::Object::wait (jlong timeout, jint nanos)
|
||||
{
|
||||
if (__builtin_expect (INIT_NEEDED (this), 0))
|
||||
if (__builtin_expect (INIT_NEEDED (this), false))
|
||||
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);
|
||||
_Jv_SyncInfo *si = (_Jv_SyncInfo *) sync_info;
|
||||
switch (_Jv_CondWait (&si->condition, &si->mutex, timeout, nanos))
|
||||
|
@ -226,10 +226,10 @@ jint
|
|||
_Jv_MonitorEnter (jobject obj)
|
||||
{
|
||||
#ifndef HANDLE_SEGV
|
||||
if (__builtin_expect (! obj, 0))
|
||||
if (__builtin_expect (! obj, false))
|
||||
JvThrow (new java::lang::NullPointerException);
|
||||
#endif
|
||||
if (__builtin_expect (INIT_NEEDED (obj), 0))
|
||||
if (__builtin_expect (INIT_NEEDED (obj), false))
|
||||
obj->sync_init ();
|
||||
_Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info;
|
||||
return _Jv_MutexLock (&si->mutex);
|
||||
|
@ -241,7 +241,7 @@ _Jv_MonitorExit (jobject obj)
|
|||
JvAssert (obj);
|
||||
JvAssert (! INIT_NEEDED (obj));
|
||||
_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);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue