« Return to Thread: SF.net SVN: jikesrvm:[15683] rvmroot/trunk/rvm/src

SF.net SVN: jikesrvm:[15683] rvmroot/trunk/rvm/src

by dgrove-oss :: Rate this Message:

Reply to Author | View in Thread

Revision: 15683
          http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15683&view=rev
Author:   dgrove-oss
Date:     2009-05-07 17:48:22 +0000 (Thu, 07 May 2009)

Log Message:
-----------
RVM-744 : Terminal not in Grammer READ_CEILING

Fix IA32 BURS rules and Assembler to handle READ_CEILING/WRITE_FLOOR instructions.  These instructions can be introduced on IA32 via elimination of monitorenter/exit by escape transformations even though there is no IA32 magic that cases them to be generated.

Modified Paths:
--------------
    rvmroot/trunk/rvm/src/org/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerBase.java
    rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules

Modified: rvmroot/trunk/rvm/src/org/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerBase.java
===================================================================
--- rvmroot/trunk/rvm/src/org/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerBase.java 2009-05-07 12:54:35 UTC (rev 15682)
+++ rvmroot/trunk/rvm/src/org/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerBase.java 2009-05-07 17:48:22 UTC (rev 15683)
@@ -671,6 +671,8 @@
       case LABEL_opcode:
         return (4 - offset) & 3; // return size of nop required for alignment
       case BBEND_opcode:
+      case READ_CEILING_opcode:
+      case WRITE_FLOOR_opcode:
       case UNINT_BEGIN_opcode:
       case UNINT_END_opcode: {
         // these generate no code

Modified: rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules
===================================================================
--- rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules 2009-05-07 12:54:35 UTC (rev 15682)
+++ rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules 2009-05-07 17:48:22 UTC (rev 15683)
@@ -2549,6 +2549,22 @@
 EMIT(MIR_CacheOp.mutate(P(p), IA32_PREFETCHNTA, R(CacheOp.getRef(P(p)))));
 
 #####
+# WRITE_FLOOR
+#####
+stm: WRITE_FLOOR
+11
+EMIT_INSTRUCTION
+EMIT(P(p)); // Pass through to maintain barrier semantics for code motion
+
+#####
+# READ_CEILING
+#####
+stm: READ_CEILING
+11
+EMIT_INSTRUCTION
+EMIT(P(p)); // Pass through to maintain barrier semantics for code motion
+
+#####
 # PAUSE
 #####
 stm: PAUSE


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Jikesrvm-commits mailing list
Jikesrvm-commits@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-commits

 « Return to Thread: SF.net SVN: jikesrvm:[15683] rvmroot/trunk/rvm/src