use of org.vmmagic.pragma.Inline in project JikesRVM by JikesRVM.
the class Unsafe method defineClass.
@Inline
public Class<?> defineClass(String name, byte[] bytes, int off, int len) {
ClassLoader callingClassloader = null;
// ClassLoader callingClassloader = VMStackWalker.getCallingClassLoader();
VM.sysFail("Implement me with org.jikesrvm.runtime.StackBrowser or move code " + "from VMStackWalker.getCallingClassLoader() to a place that's not in the GNU " + "Classpath namespace");
return RVMClassLoader.defineClassInternal(name, bytes, off, len, callingClassloader).getClassForType();
}
use of org.vmmagic.pragma.Inline in project JikesRVM by JikesRVM.
the class Unsafe method putOrderedLong.
@Inline
public void putOrderedLong(Object obj, long offset, long value) {
Offset off = Offset.fromLong(offset);
Magic.storeStoreBarrier();
if (NEEDS_LONG_PUTFIELD_BARRIER) {
longFieldWrite(obj, value, off, 0);
} else {
Magic.setLongAtOffset(obj, off, value);
}
}
use of org.vmmagic.pragma.Inline in project JikesRVM by JikesRVM.
the class Unsafe method putOrderedInt.
@Inline
public void putOrderedInt(Object obj, long offset, int value) {
Offset off = Offset.fromLong(offset);
Magic.storeStoreBarrier();
if (NEEDS_INT_PUTFIELD_BARRIER) {
intFieldWrite(obj, value, off, 0);
} else {
Magic.setIntAtOffset(obj, off, value);
}
}
use of org.vmmagic.pragma.Inline in project JikesRVM by JikesRVM.
the class RCHeader method makeUnlogged.
/**
* Change <code>object</code>'s state to <code>UNLOGGED</code>.
*
* @param object The object whose state is to be changed.
*/
@Inline
@Uninterruptible
public static void makeUnlogged(ObjectReference object) {
Word oldValue, newValue;
do {
oldValue = VM.objectModel.prepareAvailableBits(object);
if (VM.VERIFY_ASSERTIONS)
VM.assertions._assert(oldValue.and(LOGGING_MASK).EQ(LOGGED));
newValue = oldValue.or(UNLOGGED);
} while (!VM.objectModel.attemptAvailableBits(object, oldValue, newValue));
}
use of org.vmmagic.pragma.Inline in project JikesRVM by JikesRVM.
the class RCHeader method testAndMark.
/**
* Attempts to atomically mark this object.
*
* @param object the object to mark
* @return {@code true} if the mark was performed, {@code false}
* otherwise
*/
@Inline
public static boolean testAndMark(ObjectReference object) {
Word oldValue, newValue;
do {
oldValue = VM.objectModel.prepareAvailableBits(object);
if (isHeaderMarked(oldValue)) {
return false;
}
newValue = oldValue.or(MARK_BIT_MASK);
} while (!VM.objectModel.attemptAvailableBits(object, oldValue, newValue));
return true;
}
Aggregations