diff graal/com.oracle.jvmci.code/src/com/oracle/jvmci/code/ReferenceMap.java @ 21730:b9f9b8af17ff

Simplify interface to reference map
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Wed, 03 Jun 2015 19:57:38 -0700
parents 48c1ebd24120
children
line wrap: on
line diff
--- a/graal/com.oracle.jvmci.code/src/com/oracle/jvmci/code/ReferenceMap.java	Wed Jun 03 19:33:17 2015 -0700
+++ b/graal/com.oracle.jvmci.code/src/com/oracle/jvmci/code/ReferenceMap.java	Wed Jun 03 19:57:38 2015 -0700
@@ -22,20 +22,24 @@
  */
 package com.oracle.jvmci.code;
 
-import com.oracle.jvmci.meta.LIRKind;
-import com.oracle.jvmci.code.CodeUtil.RefMapFormatter;
+import com.oracle.jvmci.meta.*;
+
+public abstract class ReferenceMap {
 
-public abstract class ReferenceMap implements Cloneable {
-
-    public abstract void setRegister(int idx, LIRKind kind);
-
-    public abstract void setStackSlot(int offset, LIRKind kind);
+    /**
+     * Empty out the reference map.
+     */
+    public abstract void reset();
 
-    public abstract boolean hasRegisterRefMap();
-
-    public abstract boolean hasFrameRefMap();
+    /**
+     * Add {@code value} to the current set of reference values.
+     *
+     * @param v
+     */
+    public abstract void addLiveValue(Value v);
 
-    public abstract void appendRegisterMap(StringBuilder sb, RefMapFormatter formatterArg);
-
-    public abstract void appendFrameMap(StringBuilder sb, RefMapFormatter formatterArg);
+    /**
+     * Perform any final encoding needed before use.
+     */
+    public abstract void finish();
 }