+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>
* java/util/Locale.java (Locale): Don't explicitly check for
inline friend void
_Jv_InitClass (jclass klass)
{
- if (klass->state != JV_STATE_DONE)
+ if (__builtin_expect (klass->state != JV_STATE_DONE, false))
klass->initializeClass ();
}
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));
{
_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])
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;
}
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);
}
}
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")));
}
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")));
}
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))
_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);
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;
}
_Jv_InitClass (c);
jobject obj = (jobject) _Jv_AllocObj (size);
- if (__builtin_expect (! obj, 0))
+ if (__builtin_expect (! obj, false))
JvThrow (no_memory);
*((_Jv_VTable **) obj) = c->vtable;
#ifdef ENABLE_JVMPI
// 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;
jobjectArray
_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);
JvAssert (! elementClass->isPrimitive ());
// Check for overflow.
if (__builtin_expect ((size_t) count >
- (SIZE_T_MAX - size) / sizeof (jobject), 0))
+ (SIZE_T_MAX - size) / sizeof (jobject), false))
JvThrow (no_memory);
size += count * sizeof (jobject);
jclass clas = _Jv_FindArrayClass (elementClass, 0);
obj = (jobjectArray) _Jv_AllocArray (size);
- if (__builtin_expect (! obj, 0))
+ if (__builtin_expect (! obj, false))
JvThrow (no_memory);
obj->length = count;
jobject* ptr = elements(obj);
_Jv_NewPrimArray (jclass eltype, jint count)
{
int elsize = eltype->size();
- if (__builtin_expect (count < 0, 0))
+ if (__builtin_expect (count < 0, false))
JvThrow (new java::lang::NegativeArraySizeException ());
JvAssert (eltype->isPrimitive ());
// Check for overflow.
if (__builtin_expect ((size_t) count >
- (SIZE_T_MAX - size) / elsize, 0))
+ (SIZE_T_MAX - size) / elsize, false))
JvThrow (no_memory);
__JArray *arr = (__JArray*) _Jv_AllocObj (size + elsize * count);
- if (__builtin_expect (! arr, 0))
+ if (__builtin_expect (! arr, false))
JvThrow (no_memory);
arr->length = count;
// Note that we assume we are given zeroed memory by the allocator.
void *
_Jv_Malloc (jsize size)
{
- if (__builtin_expect (size == 0, 0))
+ if (__builtin_expect (size == 0, false))
size = 1;
void *ptr = malloc ((size_t) size);
- if (__builtin_expect (ptr == NULL, 0))
+ if (__builtin_expect (ptr == NULL, false))
JvThrow (no_memory);
return ptr;
}
void *
_Jv_Realloc (void *ptr, jsize size)
{
- if (__builtin_expect (size == 0, 0))
+ if (__builtin_expect (size == 0, false))
size = 1;
ptr = realloc (ptr, (size_t) size);
- if (__builtin_expect (ptr == NULL, 0))
+ if (__builtin_expect (ptr == NULL, false))
JvThrow (no_memory);
return ptr;
}
void *
_Jv_MallocUnchecked (jsize size)
{
- if (__builtin_expect (size == 0, 0))
+ if (__builtin_expect (size == 0, false))
size = 1;
return malloc ((size_t) size);
}
jint
_Jv_divI (jint dividend, jint divisor)
{
- if (__builtin_expect (divisor == 0, 0))
+ if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception);
if (dividend == (jint) 0x80000000L && divisor == -1)
jint
_Jv_remI (jint dividend, jint divisor)
{
- if (__builtin_expect (divisor == 0, 0))
+ if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception);
if (dividend == (jint) 0x80000000L && divisor == -1)
jlong
_Jv_divJ (jlong dividend, jlong divisor)
{
- if (__builtin_expect (divisor == 0, 0))
+ if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception);
if (dividend == (jlong) 0x8000000000000000LL && divisor == -1)
jlong
_Jv_remJ (jlong dividend, jlong divisor)
{
- if (__builtin_expect (divisor == 0, 0))
+ if (__builtin_expect (divisor == 0, false))
_Jv_Throw (arithexception);
if (dividend == (jlong) 0x8000000000000000LL && divisor == -1)