Mercurial > hg > truffle
changeset 19188:c79d0ed46368
Remove redundant code for Constant serialization.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Mon, 09 Feb 2015 11:56:31 +0100 |
parents | c5b20395a8bf |
children | 7ebed83df427 |
files | graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DataSection.java graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java |
diffstat | 3 files changed, 7 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DataSection.java Sun Feb 08 20:14:30 2015 -0800 +++ b/graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DataSection.java Mon Feb 09 11:56:31 2015 +0100 @@ -47,27 +47,8 @@ return (buffer, patch) -> buffer.put(data); } - static DataBuilder primitive(PrimitiveConstant c) { - switch (c.getKind()) { - case Boolean: - return (buffer, patch) -> buffer.put(c.asBoolean() ? (byte) 1 : (byte) 0); - case Byte: - return (buffer, patch) -> buffer.put((byte) c.asInt()); - case Char: - return (buffer, patch) -> buffer.putChar((char) c.asInt()); - case Short: - return (buffer, patch) -> buffer.putShort((short) c.asInt()); - case Int: - return (buffer, patch) -> buffer.putInt(c.asInt()); - case Long: - return (buffer, patch) -> buffer.putLong(c.asLong()); - case Float: - return (buffer, patch) -> buffer.putFloat(c.asFloat()); - case Double: - return (buffer, patch) -> buffer.putDouble(c.asDouble()); - default: - throw new IllegalArgumentException(); - } + static DataBuilder serializable(SerializableConstant c) { + return (buffer, patch) -> c.serialize(buffer); } static DataBuilder zero(int size) {
--- a/graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java Sun Feb 08 20:14:30 2015 -0800 +++ b/graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java Mon Feb 09 11:56:31 2015 +0100 @@ -68,7 +68,7 @@ public byte[] generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig, CallingConvention cc) { AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig); Register ret = registerConfig.getReturnRegister(Kind.Double); - Data data = new Data(8, 8, DataBuilder.primitive(JavaConstant.forDouble(84.72))); + Data data = new Data(8, 8, DataBuilder.serializable(JavaConstant.forDouble(84.72))); DataSectionReference ref = compResult.getDataSection().insertData(data); compResult.recordDataPatch(asm.position(), ref); asm.movdbl(ret, asm.getPlaceholder());
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java Sun Feb 08 20:14:30 2015 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java Mon Feb 09 11:56:31 2015 +0100 @@ -327,10 +327,10 @@ boolean compressed = COMPRESSED_NULL.equals(constant); size = target.getSizeInBytes(compressed ? Kind.Int : target.wordKind); builder = DataBuilder.zero(size); - } else if (constant instanceof PrimitiveConstant) { - PrimitiveConstant prim = (PrimitiveConstant) constant; - size = target.getSizeInBytes(prim.getKind()); - builder = DataBuilder.primitive(prim); + } else if (constant instanceof SerializableConstant) { + SerializableConstant s = (SerializableConstant) constant; + size = s.getSerializedSize(); + builder = DataBuilder.serializable(s); } else { throw GraalInternalError.shouldNotReachHere(); }