|
From: <ans...@us...> - 2007-01-16 23:14:52
|
Revision: 3079
http://jnode.svn.sourceforge.net/jnode/?rev=3079&view=rev
Author: ansari82
Date: 2007-01-16 15:14:51 -0800 (Tue, 16 Jan 2007)
Log Message:
-----------
Added support to allow methods to have NoOptCompile annotation set on them
Modified Paths:
--------------
branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java
branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/MethodPragmaFlags.java
branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/VmMethod.java
Modified: branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java
===================================================================
--- branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java 2007-01-16 23:13:48 UTC (rev 3078)
+++ branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/ClassDecoder.java 2007-01-16 23:14:51 UTC (rev 3079)
@@ -38,6 +38,7 @@
import org.jnode.vm.annotation.MagicPermission;
import org.jnode.vm.annotation.NoFieldAlignments;
import org.jnode.vm.annotation.NoInline;
+import org.jnode.vm.annotation.NoOptCompile;
import org.jnode.vm.annotation.NoReadBarrier;
import org.jnode.vm.annotation.NoWriteBarrier;
import org.jnode.vm.annotation.PrivilegedActionPragma;
@@ -118,7 +119,9 @@
new PragmaAnnotation(Uninterruptible.class,
MethodPragmaFlags.UNINTERRUPTIBLE),
new PragmaAnnotation(KernelSpace.class,
- MethodPragmaFlags.KERNELSPACE), };
+ MethodPragmaFlags.KERNELSPACE),
+ new PragmaAnnotation(NoOptCompile.class,
+ MethodPragmaFlags.NOOPTCOMPILE),};
/**
* Names of classes that you use shared statics, but cannot be modified.
Modified: branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/MethodPragmaFlags.java
===================================================================
--- branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/MethodPragmaFlags.java 2007-01-16 23:13:48 UTC (rev 3078)
+++ branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/MethodPragmaFlags.java 2007-01-16 23:14:51 UTC (rev 3079)
@@ -59,4 +59,7 @@
/** Method is run in kernel space (ring 0) */
public static final char KERNELSPACE = 0x0200;
+ /** Method is run in kernel space (ring 0) */
+ public static final char NOOPTCOMPILE = 0x0400;
+
}
Modified: branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/VmMethod.java
===================================================================
--- branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/VmMethod.java 2007-01-16 23:13:48 UTC (rev 3078)
+++ branches/jikesRVM/core/src/core/org/jnode/vm/classmgr/VmMethod.java 2007-01-16 23:14:51 UTC (rev 3079)
@@ -536,8 +536,16 @@
public final boolean hasKernelSpacePragma() {
return ((pragmaFlags & MethodPragmaFlags.KERNELSPACE) != 0);
}
-
+
/**
+ * Is the NoOptCompile pragma set for this method.
+ * @return
+ */
+ public final boolean hasNoOptCompilePragma() {
+ return ((pragmaFlags & MethodPragmaFlags.NOOPTCOMPILE) != 0);
+ }
+
+ /**
* Mark this method as uninterruptable.
*/
final void setUninterruptible() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|