changeset 18253:edb88f5425e6

switch to using use .equals() instead of == when comparing RegisterCaterory objects for equality
author Doug Simon <doug.simon@oracle.com>
date Wed, 05 Nov 2014 12:23:57 +0100
parents ae8e86212c77
children 01e268964aa4
files graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64/AMD64.java graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Register.java graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java graal/com.oracle.graal.hsail/src/com/oracle/graal/hsail/HSAIL.java graal/com.oracle.graal.ptx/src/com/oracle/graal/ptx/PTX.java graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARC.java
diffstat 8 files changed, 104 insertions(+), 102 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64/AMD64.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.amd64/src/com/oracle/graal/amd64/AMD64.java	Wed Nov 05 12:23:57 2014 +0100
@@ -154,7 +154,7 @@
         }
 
         Kind kind = (Kind) platformKind;
-        if (category == CPU) {
+        if (category.equals(CPU)) {
             switch (kind) {
                 case Boolean:
                 case Byte:
@@ -165,7 +165,7 @@
                 case Object:
                     return true;
             }
-        } else if (category == XMM) {
+        } else if (category.equals(XMM)) {
             switch (kind) {
                 case Float:
                 case Double:
@@ -178,9 +178,9 @@
 
     @Override
     public PlatformKind getLargestStorableKind(RegisterCategory category) {
-        if (category == CPU) {
+        if (category.equals(CPU)) {
             return Kind.Long;
-        } else if (category == XMM) {
+        } else if (category.equals(XMM)) {
             return Kind.Double;
         } else {
             return Kind.Illegal;
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Register.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Register.java	Wed Nov 05 12:23:57 2014 +0100
@@ -111,8 +111,8 @@
         @Override
         public boolean equals(Object obj) {
             if (obj instanceof RegisterCategory) {
-                RegisterCategory other = (RegisterCategory) obj;
-                return name.equals(other.name);
+                RegisterCategory that = (RegisterCategory) obj;
+                return this.referenceMapOffset == that.referenceMapOffset && this.referenceMapShift == that.referenceMapShift && this.name.equals(that.name);
             }
             return false;
         }
@@ -232,7 +232,7 @@
             if (number == other.number) {
                 assert name.equals(other.name);
                 assert encoding == other.encoding;
-                assert registerCategory == other.registerCategory;
+                assert registerCategory.equals(other.registerCategory);
                 return true;
             }
         }
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java	Wed Nov 05 12:23:57 2014 +0100
@@ -434,7 +434,7 @@
     }
 
     public final void addsd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -443,7 +443,7 @@
     }
 
     public final void addsd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -452,7 +452,7 @@
     }
 
     public final void addss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -461,7 +461,7 @@
     }
 
     public final void addss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefix(src, dst);
         emitByte(0x0F);
@@ -628,7 +628,7 @@
     }
 
     public final void cvtsd2ss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -637,8 +637,8 @@
     }
 
     public final void cvtsd2ss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -647,7 +647,7 @@
     }
 
     public final void cvtsi2sdl(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -656,7 +656,7 @@
     }
 
     public final void cvtsi2sdl(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -665,7 +665,7 @@
     }
 
     public final void cvtsi2ssl(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefix(src, dst);
         emitByte(0x0F);
@@ -674,7 +674,7 @@
     }
 
     public final void cvtsi2ssl(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -683,7 +683,7 @@
     }
 
     public final void cvtss2sd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefix(src, dst);
         emitByte(0x0F);
@@ -692,8 +692,8 @@
     }
 
     public final void cvtss2sd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -710,7 +710,7 @@
     }
 
     public final void cvttsd2sil(Register dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -727,7 +727,7 @@
     }
 
     public final void cvttss2sil(Register dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -742,7 +742,7 @@
     }
 
     public final void divsd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -751,8 +751,8 @@
     }
 
     public final void divsd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -761,7 +761,7 @@
     }
 
     public final void divss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefix(src, dst);
         emitByte(0x0F);
@@ -770,8 +770,8 @@
     }
 
     public final void divss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -968,8 +968,8 @@
     }
 
     public final void movapd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         int dstenc = dst.encoding;
         int srcenc = src.encoding;
         emitByte(0x66);
@@ -993,8 +993,8 @@
     }
 
     public final void movaps(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         int dstenc = dst.encoding;
         int srcenc = src.encoding;
         if (dstenc < 8) {
@@ -1024,22 +1024,22 @@
     }
 
     public final void movb(AMD64Address dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.CPU : "must have byte register";
+        assert src.getRegisterCategory().equals(AMD64.CPU) : "must have byte register";
         prefix(dst, src, true);
         emitByte(0x88);
         emitOperandHelper(src, dst);
     }
 
     public final void movdl(Register dst, Register src) {
-        if (dst.getRegisterCategory() == AMD64.XMM) {
-            assert src.getRegisterCategory() != AMD64.XMM : "does this hold?";
+        if (dst.getRegisterCategory().equals(AMD64.XMM)) {
+            assert !src.getRegisterCategory().equals(AMD64.XMM) : "does this hold?";
             emitByte(0x66);
             int encode = prefixAndEncode(dst.encoding, src.encoding);
             emitByte(0x0F);
             emitByte(0x6E);
             emitByte(0xC0 | encode);
-        } else if (src.getRegisterCategory() == AMD64.XMM) {
-            assert dst.getRegisterCategory() != AMD64.XMM;
+        } else if (src.getRegisterCategory().equals(AMD64.XMM)) {
+            assert !dst.getRegisterCategory().equals(AMD64.XMM);
             emitByte(0x66);
             // swap src/dst to get correct prefix
             int encode = prefixAndEncode(src.encoding, dst.encoding);
@@ -1087,7 +1087,7 @@
      * {@link AMD64MacroAssembler#movflt(Register, Register)}.
      */
     public final void movlpd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0x66);
         prefix(src, dst);
         emitByte(0x0F);
@@ -1096,7 +1096,7 @@
     }
 
     public final void movq(Register dst, AMD64Address src) {
-        if (dst.getRegisterCategory() == AMD64.XMM) {
+        if (dst.getRegisterCategory().equals(AMD64.XMM)) {
             emitByte(0xF3);
             prefixq(src, dst);
             emitByte(0x0F);
@@ -1116,7 +1116,7 @@
     }
 
     public final void movq(AMD64Address dst, Register src) {
-        if (src.getRegisterCategory() == AMD64.XMM) {
+        if (src.getRegisterCategory().equals(AMD64.XMM)) {
             emitByte(0x66);
             prefixq(dst, src);
             emitByte(0x0F);
@@ -1158,8 +1158,8 @@
     }
 
     public final void movsd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -1168,7 +1168,7 @@
     }
 
     public final void movsd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -1177,7 +1177,7 @@
     }
 
     public final void movsd(AMD64Address dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(dst, src);
         emitByte(0x0F);
@@ -1186,8 +1186,8 @@
     }
 
     public final void movss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -1196,7 +1196,7 @@
     }
 
     public final void movss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefix(src, dst);
         emitByte(0x0F);
@@ -1205,7 +1205,7 @@
     }
 
     public final void movss(AMD64Address dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefix(dst, src);
         emitByte(0x0F);
@@ -1271,7 +1271,7 @@
     }
 
     public final void mulsd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -1280,8 +1280,8 @@
     }
 
     public final void mulsd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
 
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
@@ -1291,7 +1291,7 @@
     }
 
     public final void mulss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
 
         emitByte(0xF3);
         prefix(src, dst);
@@ -1301,8 +1301,8 @@
     }
 
     public final void mulss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -1764,7 +1764,7 @@
     }
 
     public final void sqrtsd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefix(src, dst);
         emitByte(0x0F);
@@ -1773,8 +1773,8 @@
     }
 
     public final void sqrtsd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         // HMM Table D-1 says sse2
         // assert is64 || target.supportsSSE();
         emitByte(0xF2);
@@ -1805,8 +1805,8 @@
     }
 
     public final void subsd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -1815,7 +1815,7 @@
     }
 
     public final void subsd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
 
         emitByte(0xF2);
         prefix(src, dst);
@@ -1825,8 +1825,8 @@
     }
 
     public final void subss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -1835,7 +1835,7 @@
     }
 
     public final void subss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
 
         emitByte(0xF3);
         prefix(src, dst);
@@ -1879,20 +1879,20 @@
     }
 
     public final void ucomisd(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0x66);
         ucomiss(dst, src);
     }
 
     public final void ucomisd(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0x66);
         ucomiss(dst, src);
     }
 
     public final void ucomiss(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
 
         prefix(src, dst);
         emitByte(0x0F);
@@ -1901,8 +1901,8 @@
     }
 
     public final void ucomiss(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
         emitByte(0x2E);
@@ -1936,7 +1936,7 @@
     }
 
     public final void andps(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
         emitByte(0x54);
@@ -1944,7 +1944,7 @@
     }
 
     public final void andps(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         prefix(src, dst);
         emitByte(0x0F);
         emitByte(0x54);
@@ -1962,7 +1962,7 @@
     }
 
     public final void orps(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
         emitByte(0x56);
@@ -1970,7 +1970,7 @@
     }
 
     public final void orps(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         prefix(src, dst);
         emitByte(0x0F);
         emitByte(0x56);
@@ -1988,7 +1988,7 @@
     }
 
     public final void xorps(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         int encode = prefixAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
         emitByte(0x57);
@@ -1996,7 +1996,7 @@
     }
 
     public final void xorps(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         prefix(src, dst);
         emitByte(0x0F);
         emitByte(0x57);
@@ -2287,7 +2287,7 @@
     }
 
     public final void cvtsi2sdq(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         prefixq(src, dst);
         emitByte(0x0F);
@@ -2296,7 +2296,7 @@
     }
 
     public final void cvtsi2sdq(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixqAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -2305,7 +2305,7 @@
     }
 
     public final void cvtsi2ssq(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         prefixq(src, dst);
         emitByte(0x0F);
@@ -2314,7 +2314,7 @@
     }
 
     public final void cvtsi2ssq(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixqAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -2331,7 +2331,7 @@
     }
 
     public final void cvttsd2siq(Register dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF2);
         int encode = prefixqAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -2348,7 +2348,7 @@
     }
 
     public final void cvttss2siq(Register dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         emitByte(0xF3);
         int encode = prefixqAndEncode(dst.encoding, src.encoding);
         emitByte(0x0F);
@@ -2458,12 +2458,12 @@
         // table D-1 says MMX/SSE2
         emitByte(0x66);
 
-        if (dst.getRegisterCategory() == AMD64.XMM) {
+        if (dst.getRegisterCategory().equals(AMD64.XMM)) {
             int encode = prefixqAndEncode(dst.encoding, src.encoding);
             emitByte(0x0F);
             emitByte(0x6E);
             emitByte(0xC0 | encode);
-        } else if (src.getRegisterCategory() == AMD64.XMM) {
+        } else if (src.getRegisterCategory().equals(AMD64.XMM)) {
 
             // swap src/dst to get correct prefix
             int encode = prefixqAndEncode(src.encoding, dst.encoding);
--- a/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java	Wed Nov 05 12:23:57 2014 +0100
@@ -180,7 +180,7 @@
     }
 
     public void movflt(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         if (UseXmmRegToRegMoveAll) {
             movaps(dst, src);
         } else {
@@ -189,17 +189,17 @@
     }
 
     public void movflt(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         movss(dst, src);
     }
 
     public void movflt(AMD64Address dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         movss(dst, src);
     }
 
     public void movdbl(Register dst, Register src) {
-        assert dst.getRegisterCategory() == AMD64.XMM && src.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM) && src.getRegisterCategory().equals(AMD64.XMM);
         if (UseXmmRegToRegMoveAll) {
             movapd(dst, src);
         } else {
@@ -208,7 +208,7 @@
     }
 
     public void movdbl(Register dst, AMD64Address src) {
-        assert dst.getRegisterCategory() == AMD64.XMM;
+        assert dst.getRegisterCategory().equals(AMD64.XMM);
         if (UseXmmLoadAndClearUpper) {
             movsd(dst, src);
         } else {
@@ -217,7 +217,7 @@
     }
 
     public void movdbl(AMD64Address dst, Register src) {
-        assert src.getRegisterCategory() == AMD64.XMM;
+        assert src.getRegisterCategory().equals(AMD64.XMM);
         movsd(dst, src);
     }
 
@@ -267,7 +267,7 @@
     }
 
     private AMD64Address trigPrologue(Register value) {
-        assert value.getRegisterCategory() == AMD64.XMM;
+        assert value.getRegisterCategory().equals(AMD64.XMM);
         AMD64Address tmp = new AMD64Address(AMD64.rsp);
         subq(AMD64.rsp, target.getSizeInBytes(Kind.Double));
         movdbl(tmp, value);
@@ -276,7 +276,7 @@
     }
 
     private void trigEpilogue(Register dest, AMD64Address tmp) {
-        assert dest.getRegisterCategory() == AMD64.XMM;
+        assert dest.getRegisterCategory().equals(AMD64.XMM);
         fstpd(tmp);
         movdbl(dest, tmp);
         addq(AMD64.rsp, target.getSizeInBytes(Kind.Double));
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java	Wed Nov 05 12:23:57 2014 +0100
@@ -33,6 +33,7 @@
 import org.junit.*;
 
 import com.oracle.graal.api.code.*;
+import com.oracle.graal.api.code.Register.RegisterCategory;
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.api.runtime.*;
 import com.oracle.graal.compiler.*;
@@ -201,6 +202,7 @@
         if (verifyEquals) {
             new VerifyUsageWithEquals(Value.class).apply(graph, context);
             new VerifyUsageWithEquals(Register.class).apply(graph, context);
+            new VerifyUsageWithEquals(RegisterCategory.class).apply(graph, context);
             new VerifyUsageWithEquals(JavaType.class).apply(graph, context);
             new VerifyUsageWithEquals(JavaMethod.class).apply(graph, context);
             new VerifyUsageWithEquals(JavaField.class).apply(graph, context);
--- a/graal/com.oracle.graal.hsail/src/com/oracle/graal/hsail/HSAIL.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.hsail/src/com/oracle/graal/hsail/HSAIL.java	Wed Nov 05 12:23:57 2014 +0100
@@ -217,7 +217,7 @@
             return false;
         }
         Kind kind = (Kind) platformKind;
-        if (category == CPU32) {
+        if (category.equals(CPU32)) {
             switch (kind) {
                 case Boolean:
                 case Byte:
@@ -231,7 +231,7 @@
                 case Object:
                     return false;
             }
-        } else if (category == CPU64 || category == CPU128) {
+        } else if (category.equals(CPU64) || category.equals(CPU128)) {
             switch (kind) {
                 case Boolean:
                 case Byte:
@@ -250,9 +250,9 @@
 
     @Override
     public PlatformKind getLargestStorableKind(RegisterCategory category) {
-        if (category == CPU32) {
+        if (category.equals(CPU32)) {
             return Kind.Int;
-        } else if (category == CPU64 || category == CPU128) {
+        } else if (category.equals(CPU64) || category.equals(CPU128)) {
             return Kind.Long;
         } else {
             return Kind.Illegal;
--- a/graal/com.oracle.graal.ptx/src/com/oracle/graal/ptx/PTX.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.ptx/src/com/oracle/graal/ptx/PTX.java	Wed Nov 05 12:23:57 2014 +0100
@@ -203,7 +203,7 @@
         }
 
         Kind kind = (Kind) lirKind;
-        if (category == REG) {
+        if (category.equals(REG)) {
             switch (kind) {
                 case Boolean:
                 case Byte:
@@ -223,7 +223,7 @@
 
     @Override
     public PlatformKind getLargestStorableKind(RegisterCategory category) {
-        if (category == REG) {
+        if (category.equals(REG)) {
             return Kind.Double;
         } else {
             return Kind.Illegal;
--- a/graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARC.java	Wed Nov 05 11:41:18 2014 +0100
+++ b/graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARC.java	Wed Nov 05 12:23:57 2014 +0100
@@ -237,7 +237,7 @@
         }
 
         Kind kind = (Kind) lirKind;
-        if (category == CPU) {
+        if (category.equals(CPU)) {
             switch (kind) {
                 case Boolean:
                 case Byte:
@@ -248,7 +248,7 @@
                 case Object:
                     return true;
             }
-        } else if (category == FPU) {
+        } else if (category.equals(FPU)) {
             switch (kind) {
                 case Float:
                 case Double:
@@ -260,9 +260,9 @@
 
     @Override
     public PlatformKind getLargestStorableKind(RegisterCategory category) {
-        if (category == CPU) {
+        if (category.equals(CPU)) {
             return Kind.Long;
-        } else if (category == FPU) {
+        } else if (category.equals(FPU)) {
             return Kind.Double;
         } else {
             return Kind.Illegal;