# HG changeset patch # User Roland Schatz # Date 1402991999 -7200 # Node ID 9e5a323e0a1ee9be9a72262c11521cd471df3df0 # Parent 9a595d3f9a2f038d983c092182aa94813d4bca5f Remove hotspot specific NarrowOop kind, use LIRKind.reference(Kind.Int) instead. diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java Tue Jun 17 09:59:59 2014 +0200 @@ -92,7 +92,7 @@ final int stackFrameAlignment = 16; final int implicitNullCheckLimit = 4096; final boolean inlineObjects = true; - return new HotSpotTargetDescription(createArchitecture(config), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects, Kind.Int); + return new HotSpotTargetDescription(createArchitecture(config), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects); } @Override @@ -233,15 +233,15 @@ } else { /* * System V Application Binary Interface, AMD64 Architecture Processor Supplement - * + * * Draft Version 0.96 - * + * * http://www.uclibc.org/docs/psABI-x86_64.pdf - * + * * 3.2.1 - * + * * ... - * + * * This subsection discusses usage of each register. Registers %rbp, %rbx and %r12 * through %r15 "belong" to the calling function and the called function is required to * preserve their values. In other words, a called function must preserve these diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java Tue Jun 17 09:59:59 2014 +0200 @@ -30,7 +30,6 @@ import com.oracle.graal.compiler.common.*; import com.oracle.graal.hotspot.data.*; import com.oracle.graal.hotspot.meta.*; -import com.oracle.graal.hotspot.nodes.type.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.amd64.AMD64Move.MemOp; @@ -38,33 +37,6 @@ public class AMD64HotSpotCompare { - @Opcode("NCMP") - public static class HotSpotCompareNarrowOp extends AMD64LIRInstruction { - - @Use({REG}) protected AllocatableValue x; - @Use({REG, STACK}) protected AllocatableValue y; - - public HotSpotCompareNarrowOp(AllocatableValue x, AllocatableValue y) { - this.x = x; - this.y = y; - } - - @Override - public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) { - if (isRegister(y)) { - masm.cmpl(asRegister(x), asRegister(y)); - } else { - assert isStackSlot(y); - masm.cmpl(asRegister(x), (AMD64Address) crb.asAddress(y)); - } - } - - @Override - protected void verify() { - assert x.getPlatformKind() == NarrowOopStamp.NarrowOop && y.getPlatformKind() == NarrowOopStamp.NarrowOop; - } - } - @Opcode("CMP") public static class HotSpotCompareConstantOp extends AMD64LIRInstruction { diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Tue Jun 17 09:59:59 2014 +0200 @@ -39,7 +39,6 @@ import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; import com.oracle.graal.hotspot.amd64.AMD64HotSpotMove.HotSpotStoreConstantOp; import com.oracle.graal.hotspot.meta.*; -import com.oracle.graal.hotspot.nodes.type.*; import com.oracle.graal.hotspot.stubs.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.StandardOp.NoOp; @@ -50,7 +49,6 @@ import com.oracle.graal.lir.amd64.AMD64Move.LeaDataOp; import com.oracle.graal.lir.amd64.AMD64Move.LoadOp; import com.oracle.graal.lir.amd64.AMD64Move.MoveFromRegOp; -import com.oracle.graal.lir.amd64.AMD64Move.MoveToRegOp; import com.oracle.graal.lir.amd64.AMD64Move.StoreOp; import com.oracle.graal.lir.gen.*; @@ -436,14 +434,6 @@ } } - private static Kind getMemoryKind(LIRKind kind) { - if (kind.getPlatformKind() == NarrowOopStamp.NarrowOop) { - return Kind.Int; - } else { - return (Kind) kind.getPlatformKind(); - } - } - private static LIRKind toStackKind(LIRKind kind) { if (kind.getPlatformKind() instanceof Kind) { Kind stackKind = ((Kind) kind.getPlatformKind()).getStackKind(); @@ -465,7 +455,7 @@ public Variable emitLoad(LIRKind kind, Value address, LIRFrameState state) { AMD64AddressValue loadAddress = asAddressValue(address); Variable result = newVariable(toStackKind(kind)); - append(new LoadOp(getMemoryKind(kind), result, loadAddress, state)); + append(new LoadOp((Kind) kind.getPlatformKind(), result, loadAddress, state)); return result; } @@ -475,12 +465,12 @@ if (isConstant(inputVal)) { Constant c = asConstant(inputVal); if (canStoreConstant(c)) { - append(new HotSpotStoreConstantOp(getMemoryKind(kind), storeAddress, c, state)); + append(new HotSpotStoreConstantOp((Kind) kind.getPlatformKind(), storeAddress, c, state)); return; } } Variable input = load(inputVal); - append(new StoreOp(getMemoryKind(kind), storeAddress, input, state)); + append(new StoreOp((Kind) kind.getPlatformKind(), storeAddress, input, state)); } @Override @@ -489,7 +479,7 @@ assert inputKind.getPlatformKind() == Kind.Long || inputKind.getPlatformKind() == Kind.Object; if (inputKind.isReference(0)) { // oop - Variable result = newVariable(LIRKind.reference(NarrowOopStamp.NarrowOop)); + Variable result = newVariable(LIRKind.reference(Kind.Int)); append(new AMD64HotSpotMove.CompressPointer(result, asAllocatable(pointer), getProviders().getRegisters().getHeapBaseRegister().asValue(), encoding, nonNull)); return result; } else { @@ -507,7 +497,7 @@ @Override public Value emitUncompress(Value pointer, CompressEncoding encoding, boolean nonNull) { LIRKind inputKind = pointer.getLIRKind(); - assert inputKind.getPlatformKind() == Kind.Int || inputKind.getPlatformKind() == NarrowOopStamp.NarrowOop; + assert inputKind.getPlatformKind() == Kind.Int; if (inputKind.isReference(0)) { // oop Variable result = newVariable(LIRKind.reference(Kind.Object)); @@ -529,12 +519,6 @@ protected AMD64LIRInstruction createMove(AllocatableValue dst, Value src) { if (src instanceof Constant) { return new AMD64HotSpotMove.HotSpotLoadConstantOp(dst, (Constant) src); - } else if (dst.getPlatformKind() == NarrowOopStamp.NarrowOop) { - if (isRegister(src) || isStackSlot(dst)) { - return new MoveFromRegOp(Kind.Int, dst, src); - } else { - return new MoveToRegOp(Kind.Int, dst, src); - } } else { return super.createMove(dst, src); } @@ -543,7 +527,7 @@ public Value emitCompareAndSwap(Value address, Value expectedValue, Value newValue, Value trueValue, Value falseValue) { LIRKind kind = newValue.getLIRKind(); assert kind.equals(expectedValue.getLIRKind()); - Kind memKind = getMemoryKind(kind); + Kind memKind = (Kind) kind.getPlatformKind(); AMD64AddressValue addressValue = asAddressValue(address); RegisterValue raxRes = AMD64.rax.asValue(kind); @@ -558,7 +542,7 @@ public Value emitAtomicReadAndAdd(Value address, Value delta) { LIRKind kind = delta.getLIRKind(); - Kind memKind = getMemoryKind(kind); + Kind memKind = (Kind) kind.getPlatformKind(); Variable result = newVariable(kind); AMD64AddressValue addressValue = asAddressValue(address); append(new AMD64Move.AtomicReadAndAddOp(memKind, result, addressValue, asAllocatable(delta))); @@ -567,7 +551,7 @@ public Value emitAtomicReadAndWrite(Value address, Value newValue) { LIRKind kind = newValue.getLIRKind(); - Kind memKind = getMemoryKind(kind); + Kind memKind = (Kind) kind.getPlatformKind(); Variable result = newVariable(kind); AMD64AddressValue addressValue = asAddressValue(address); append(new AMD64Move.AtomicReadAndWriteOp(memKind, result, addressValue, asAllocatable(newValue))); @@ -583,8 +567,6 @@ protected void emitCompareOp(PlatformKind cmpKind, Variable left, Value right) { if (right instanceof HotSpotConstant) { append(new AMD64HotSpotCompare.HotSpotCompareConstantOp(left, (Constant) right)); - } else if (cmpKind == NarrowOopStamp.NarrowOop) { - append(new AMD64HotSpotCompare.HotSpotCompareNarrowOp(left, asAllocatable(right))); } else { super.emitCompareOp(cmpKind, left, right); } diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRegisterConfig.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRegisterConfig.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotRegisterConfig.java Tue Jun 17 09:59:59 2014 +0200 @@ -33,7 +33,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.compiler.common.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.nodes.type.*; public class AMD64HotSpotRegisterConfig implements RegisterConfig { @@ -70,16 +69,9 @@ return categorized.get(kind); } - PlatformKind primitiveKind; - if (kind == NarrowOopStamp.NarrowOop) { - primitiveKind = Kind.Int; - } else { - primitiveKind = kind; - } - ArrayList list = new ArrayList<>(); for (Register reg : getAllocatableRegisters()) { - if (architecture.canStoreValue(reg.getRegisterCategory(), primitiveKind)) { + if (architecture.canStoreValue(reg.getRegisterCategory(), kind)) { list.add(reg); } } diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackendFactory.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotBackendFactory.java Tue Jun 17 09:59:59 2014 +0200 @@ -72,7 +72,7 @@ final int stackFrameAlignment = 8; final int implicitNullCheckLimit = 0; final boolean inlineObjects = true; - return new HotSpotTargetDescription(new HSAIL(), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects, Kind.Int); + return new HotSpotTargetDescription(new HSAIL(), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects); } public String getArchitecture() { diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLIRGenerator.java Tue Jun 17 09:59:59 2014 +0200 @@ -33,7 +33,6 @@ import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; import com.oracle.graal.hotspot.meta.*; -import com.oracle.graal.hotspot.nodes.type.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.StandardOp.SaveRegistersOp; import com.oracle.graal.lir.gen.*; @@ -46,7 +45,6 @@ import com.oracle.graal.lir.hsail.HSAILMove.CompareAndSwapOp; import com.oracle.graal.lir.hsail.HSAILMove.LoadAcquireOp; import com.oracle.graal.lir.hsail.HSAILMove.LoadOp; -import com.oracle.graal.lir.hsail.HSAILMove.MoveFromRegOp; import com.oracle.graal.lir.hsail.HSAILMove.MoveToRegOp; import com.oracle.graal.lir.hsail.HSAILMove.StoreConstantOp; import com.oracle.graal.lir.hsail.HSAILMove.StoreOp; @@ -109,26 +107,18 @@ } } - private static Kind getMemoryKind(LIRKind kind) { - if (kind.getPlatformKind() == NarrowOopStamp.NarrowOop) { - return Kind.Int; - } else { - return (Kind) kind.getPlatformKind(); - } - } - @Override public Variable emitLoad(LIRKind kind, Value address, LIRFrameState state) { HSAILAddressValue loadAddress = asAddressValue(address); Variable result = newVariable(kind); - append(new LoadOp(getMemoryKind(kind), result, loadAddress, state)); + append(new LoadOp((Kind) kind.getPlatformKind(), result, loadAddress, state)); return result; } public Variable emitLoadAcquire(LIRKind kind, Value address, LIRFrameState state) { HSAILAddressValue loadAddress = asAddressValue(address); Variable result = newVariable(kind); - append(new LoadAcquireOp(getMemoryKind(kind), result, loadAddress, state)); + append(new LoadAcquireOp((Kind) kind.getPlatformKind(), result, loadAddress, state)); return result; } @@ -141,25 +131,25 @@ c = Constant.INT_0; } if (canStoreConstant(c)) { - append(new StoreConstantOp(getMemoryKind(kind), storeAddress, c, state)); + append(new StoreConstantOp((Kind) kind.getPlatformKind(), storeAddress, c, state)); return; } } Variable input = load(inputVal); - append(new StoreOp(getMemoryKind(kind), storeAddress, input, state)); + append(new StoreOp((Kind) kind.getPlatformKind(), storeAddress, input, state)); } public void emitStoreRelease(LIRKind kind, Value address, Value inputVal, LIRFrameState state) { HSAILAddressValue storeAddress = asAddressValue(address); // TODO: handle Constants here Variable input = load(inputVal); - append(new StoreReleaseOp(getMemoryKind(kind), storeAddress, input, state)); + append(new StoreReleaseOp((Kind) kind.getPlatformKind(), storeAddress, input, state)); } public Value emitCompareAndSwap(Value address, Value expectedValue, Value newValue, Value trueValue, Value falseValue) { LIRKind kind = newValue.getLIRKind(); assert kind == expectedValue.getLIRKind(); - Kind memKind = getMemoryKind(kind); + Kind memKind = (Kind) kind.getPlatformKind(); HSAILAddressValue addressValue = asAddressValue(address); Variable expected = emitMove(expectedValue); @@ -175,7 +165,7 @@ @Override public Value emitAtomicReadAndAdd(Value address, Value delta) { LIRKind kind = delta.getLIRKind(); - Kind memKind = getMemoryKind(kind); + Kind memKind = (Kind) kind.getPlatformKind(); Variable result = newVariable(kind); HSAILAddressValue addressValue = asAddressValue(address); append(new HSAILMove.AtomicReadAndAddOp(memKind, result, addressValue, asAllocatable(delta))); @@ -185,7 +175,7 @@ @Override public Value emitAtomicReadAndWrite(Value address, Value newValue) { LIRKind kind = newValue.getLIRKind(); - Kind memKind = getMemoryKind(kind); + Kind memKind = (Kind) kind.getPlatformKind(); Variable result = newVariable(kind); HSAILAddressValue addressValue = asAddressValue(address); append(new HSAILMove.AtomicReadAndWriteOp(memKind, result, addressValue, asAllocatable(newValue))); @@ -251,12 +241,6 @@ append(new MoveToRegOp(Kind.Object, uncompressed, src)); CompressEncoding oopEncoding = config.getOopEncoding(); return new HSAILMove.CompressPointer(dst, newVariable(LIRKind.reference(Kind.Object)), uncompressed, oopEncoding.base, oopEncoding.shift, oopEncoding.alignment, true); - } else if (dst.getPlatformKind() == NarrowOopStamp.NarrowOop) { - if (isRegister(src) || isStackSlot(dst)) { - return new MoveFromRegOp(Kind.Int, dst, src); - } else { - return new MoveToRegOp(Kind.Int, dst, src); - } } else { return super.createMove(dst, src); } @@ -297,7 +281,7 @@ @Override public Value emitCompress(Value pointer, CompressEncoding encoding, boolean nonNull) { - Variable result = newVariable(LIRKind.reference(NarrowOopStamp.NarrowOop)); + Variable result = newVariable(LIRKind.reference(Kind.Int)); append(new HSAILMove.CompressPointer(result, newVariable(pointer.getLIRKind()), asAllocatable(pointer), encoding.base, encoding.shift, encoding.alignment, nonNull)); return result; } diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotRegisterConfig.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotRegisterConfig.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotRegisterConfig.java Tue Jun 17 09:59:59 2014 +0200 @@ -29,7 +29,6 @@ import com.oracle.graal.api.code.CallingConvention.Type; import com.oracle.graal.api.meta.*; import com.oracle.graal.compiler.common.*; -import com.oracle.graal.hotspot.nodes.type.*; import com.oracle.graal.hsail.*; /** @@ -145,14 +144,7 @@ @Override public Register[] getAllocatableRegisters(PlatformKind kind) { - Kind primitiveKind; - if (kind == NarrowOopStamp.NarrowOop) { - primitiveKind = Kind.Int; - } else { - primitiveKind = (Kind) kind; - } - - switch (primitiveKind) { + switch ((Kind) kind) { case Int: case Short: case Byte: diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotBackendFactory.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotBackendFactory.java Tue Jun 17 09:59:59 2014 +0200 @@ -93,7 +93,7 @@ final int stackFrameAlignment = 1; final int implicitNullCheckLimit = 0; final boolean inlineObjects = true; - return new HotSpotTargetDescription(createArchitecture(), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects, Kind.Int); + return new HotSpotTargetDescription(createArchitecture(), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects); } public String getArchitecture() { diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Tue Jun 17 09:59:59 2014 +0200 @@ -42,7 +42,7 @@ final int stackFrameAlignment = 16; final int implicitNullCheckLimit = 4096; final boolean inlineObjects = true; - return new HotSpotTargetDescription(createArchitecture(), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects, Kind.Int); + return new HotSpotTargetDescription(createArchitecture(), true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects); } public HotSpotBackend createBackend(HotSpotGraalRuntime runtime, HotSpotBackend host) { diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetDescription.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetDescription.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetDescription.java Tue Jun 17 09:59:59 2014 +0200 @@ -24,24 +24,16 @@ import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.hotspot.nodes.type.*; public class HotSpotTargetDescription extends TargetDescription { - private final PlatformKind rawNarrowOopKind; - - public HotSpotTargetDescription(Architecture arch, boolean isMP, int stackAlignment, int implicitNullCheckLimit, boolean inlineObjects, PlatformKind rawNarrowOopKind) { + public HotSpotTargetDescription(Architecture arch, boolean isMP, int stackAlignment, int implicitNullCheckLimit, boolean inlineObjects) { super(arch, isMP, stackAlignment, implicitNullCheckLimit, inlineObjects); - this.rawNarrowOopKind = rawNarrowOopKind; } @Override public int getSizeInBytes(PlatformKind kind) { - if (kind == NarrowOopStamp.NarrowOop) { - return super.getSizeInBytes(rawNarrowOopKind); - } else { - return super.getSizeInBytes(kind); - } + return super.getSizeInBytes(kind); } @Override diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/data/OopData.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/data/OopData.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/data/OopData.java Tue Jun 17 09:59:59 2014 +0200 @@ -28,7 +28,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.compiler.common.*; import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.nodes.type.*; /** * A data item that represents an oop value. @@ -48,7 +47,7 @@ @Override public int getSize(TargetDescription target) { if (compressed) { - return target.getSizeInBytes(NarrowOopStamp.NarrowOop); + return target.getSizeInBytes(Kind.Int); } else { return target.getSizeInBytes(Kind.Object); } diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompressedNullConstant.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompressedNullConstant.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompressedNullConstant.java Tue Jun 17 09:59:59 2014 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.hotspot.meta; import com.oracle.graal.api.meta.*; -import com.oracle.graal.hotspot.nodes.type.*; /** * The compressed representation of the {@link Constant#NULL_OBJECT null constant}. @@ -35,7 +34,7 @@ public static final Constant COMPRESSED_NULL = new HotSpotCompressedNullConstant(); private HotSpotCompressedNullConstant() { - super(LIRKind.reference(NarrowOopStamp.NarrowOop)); + super(LIRKind.reference(Kind.Int)); } @Override diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Tue Jun 17 09:59:59 2014 +0200 @@ -23,7 +23,6 @@ package com.oracle.graal.hotspot.meta; import com.oracle.graal.api.meta.*; -import com.oracle.graal.hotspot.nodes.type.*; /** * Represents a constant non-{@code null} object reference, within the compiler and across the @@ -79,7 +78,7 @@ private final boolean compressed; private HotSpotObjectConstant(Object object, boolean compressed) { - super(LIRKind.reference(compressed ? NarrowOopStamp.NarrowOop : Kind.Object)); + super(LIRKind.reference(compressed ? Kind.Int : Kind.Object)); this.object = object; this.compressed = compressed; assert object != null; diff -r 9a595d3f9a2f -r 9e5a323e0a1e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/type/NarrowOopStamp.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/type/NarrowOopStamp.java Tue Jun 17 09:43:23 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/type/NarrowOopStamp.java Tue Jun 17 09:59:59 2014 +0200 @@ -26,26 +26,9 @@ import com.oracle.graal.compiler.common.spi.*; import com.oracle.graal.compiler.common.type.*; import com.oracle.graal.hotspot.HotSpotVMConfig.CompressEncoding; -import com.oracle.graal.hotspot.meta.*; public class NarrowOopStamp extends AbstractObjectStamp { - public static final PlatformKind NarrowOop = new PlatformKind() { - - public String name() { - return "NarrowOop"; - } - - @Override - public String toString() { - return name(); - } - - public Constant getDefaultValue() { - return HotSpotCompressedNullConstant.COMPRESSED_NULL; - } - }; - private final CompressEncoding encoding; public NarrowOopStamp(ResolvedJavaType type, boolean exactType, boolean nonNull, boolean alwaysNull, CompressEncoding encoding) { @@ -72,7 +55,7 @@ @Override public LIRKind getLIRKind(LIRKindTool tool) { - return LIRKind.reference(NarrowOop); + return LIRKind.reference(Kind.Int); } @Override