* @see org.jnode.vm.VmReflection#getStaticFieldAddress(org.jnode.vm.classmgr.VmStaticField)
*/
public static Object staticFieldBase(Unsafe instance, Field f) {
final VmProcessor proc = VmProcessor.current();
final Address tablePtr;
VmStaticField sf = (VmStaticField) getVmField(f);
if (sf.isShared()) {
tablePtr = VmMagic.getArrayData(proc.getSharedStaticsTable());
} else {
tablePtr = VmMagic.getArrayData(proc.getIsolatedStaticsTable());
}
Object ret = tablePtr.loadObjectReference().toObject();
if(sf.isStatic() && sf.isFinal() && f.getType().equals(String.class))
ret = new IrregularStaticAccess(tablePtr.toLong());
else
ret = new StaticAccess(tablePtr.toLong());
return ret;
}