< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/Register.java

Print this page

        

*** 20,30 **** * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.vm.ci.code; ! import jdk.vm.ci.meta.*; /** * Represents a target machine register. */ public final class Register implements Comparable<Register> { --- 20,31 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.vm.ci.code; ! import jdk.vm.ci.meta.JavaKind; ! import jdk.vm.ci.meta.LIRKind; /** * Represents a target machine register. */ public final class Register implements Comparable<Register> {
*** 78,103 **** * A platform specific register type that describes which values can be stored in a register. */ public static class RegisterCategory { private final String name; ! ! private final int referenceMapOffset; ! private final int referenceMapShift; public RegisterCategory(String name) { ! this(name, 0, 0); ! } ! ! public RegisterCategory(String name, int referenceMapOffset) { ! this(name, referenceMapOffset, 0); } ! public RegisterCategory(String name, int referenceMapOffset, int referenceMapShift) { this.name = name; ! this.referenceMapOffset = referenceMapOffset; ! this.referenceMapShift = referenceMapShift; } @Override public String toString() { return name; --- 79,97 ---- * A platform specific register type that describes which values can be stored in a register. */ public static class RegisterCategory { private final String name; ! private final boolean mayContainReference; public RegisterCategory(String name) { ! this(name, true); } ! public RegisterCategory(String name, boolean mayContainReference) { this.name = name; ! this.mayContainReference = mayContainReference; } @Override public String toString() { return name;
*** 110,120 **** @Override public boolean equals(Object obj) { if (obj instanceof RegisterCategory) { RegisterCategory that = (RegisterCategory) obj; ! return this.referenceMapOffset == that.referenceMapOffset && this.referenceMapShift == that.referenceMapShift && this.name.equals(that.name); } return false; } } --- 104,114 ---- @Override public boolean equals(Object obj) { if (obj instanceof RegisterCategory) { RegisterCategory that = (RegisterCategory) obj; ! return this.name.equals(that.name); } return false; } }
*** 136,149 **** public RegisterCategory getRegisterCategory() { return registerCategory; } /** ! * Get the start index of this register in the {@link ReferenceMap}. */ ! public int getReferenceMapIndex() { ! return (encoding << registerCategory.referenceMapShift) + registerCategory.referenceMapOffset; } /** * Gets this register as a {@linkplain RegisterValue value} with a specified kind. * --- 130,143 ---- public RegisterCategory getRegisterCategory() { return registerCategory; } /** ! * Determine whether this register needs to be part of the reference map. */ ! public boolean mayContainReference() { ! return registerCategory.mayContainReference; } /** * Gets this register as a {@linkplain RegisterValue value} with a specified kind. *
< prev index next >