Mercurial > hg > truffle
changeset 17417:2915eff532d4
Fix code generation problem with sub-int Constants.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Mon, 13 Oct 2014 15:26:02 +0200 |
parents | f7ba2423fbc3 |
children | 393fe459eadc |
files | graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGeneratorTool.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java |
diffstat | 4 files changed, 5 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java Mon Oct 13 12:10:16 2014 +0200 +++ b/graal/com.oracle.graal.baseline/src/com/oracle/graal/baseline/BaselineBytecodeParser.java Mon Oct 13 15:26:02 2014 +0200 @@ -595,7 +595,7 @@ @Override protected Value appendConstant(Constant constant) { - return gen.emitLoadConstant(constant); + return gen.emitLoadConstant(constant.getLIRKind(), constant); } @Override
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java Mon Oct 13 12:10:16 2014 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java Mon Oct 13 15:26:02 2014 +0200 @@ -118,7 +118,7 @@ } @Override - public Value emitLoadConstant(Constant constant) { + public Value emitLoadConstant(LIRKind kind, Constant constant) { if (canInlineConstant(constant)) { return constant; } else {
--- a/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGeneratorTool.java Mon Oct 13 12:10:16 2014 +0200 +++ b/graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGeneratorTool.java Mon Oct 13 15:26:02 2014 +0200 @@ -52,7 +52,7 @@ void doBlockEnd(AbstractBlock<?> block); - Value emitLoadConstant(Constant constant); + Value emitLoadConstant(LIRKind kind, Constant constant); Value emitLoad(LIRKind kind, Value address, LIRFrameState state);
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java Mon Oct 13 12:10:16 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java Mon Oct 13 15:26:02 2014 +0200 @@ -94,7 +94,8 @@ if (onlyUsedInVirtualState()) { gen.setResult(this, value); } else { - gen.setResult(this, gen.getLIRGeneratorTool().emitLoadConstant(value)); + LIRKind kind = gen.getLIRGeneratorTool().getLIRKind(stamp()); + gen.setResult(this, gen.getLIRGeneratorTool().emitLoadConstant(kind, value)); } }