bug fix
authorbdemsky <bdemsky>
Mon, 18 Aug 2008 22:45:16 +0000 (22:45 +0000)
committerbdemsky <bdemsky>
Mon, 18 Aug 2008 22:45:16 +0000 (22:45 +0000)
Robust/src/IR/Flat/BuildCode.java

index 8781ff4e3ca832db40545acb02f3d86ce2a20c59..dccd9c152b7006a8a71f844743b4fd3085114933 100644 (file)
@@ -350,6 +350,7 @@ public class BuildCode {
                 MethodDescriptor md=lb.getMethod();
                FlatMethod fm=state.getMethodFlat(md);
                if (!md.getModifiers().isNative()) {
+                   System.out.println("***"+fm);
                        generateFlatMethod(fm, lb, outmethod);
                }
            }
@@ -1928,6 +1929,14 @@ public class BuildCode {
                    output.println(dst+"="+ src+"->"+field+";");
                }
            } else if (status==LocalityAnalysis.LOCAL) {
+             if (ffn.getField().getType().isPtr()&&
+                 ffn.getField().isGlobal()) {
+               String field=ffn.getField().getSafeSymbol();
+               String src=generateTemp(fm, ffn.getSrc(),lb);
+               String dst=generateTemp(fm, ffn.getDst(),lb);
+               output.println(dst+"="+ src +"->"+field+ ";");
+               output.println(dst+"=(void *) transRead(trans, (unsigned int) "+dst+");");
+             } else
                output.println(generateTemp(fm, ffn.getDst(),lb)+"="+ generateTemp(fm,ffn.getSrc(),lb)+"->"+ ffn.getField().getSafeSymbol()+";");
            } else if (status==LocalityAnalysis.EITHER) {
                //Code is reading from a null pointer