# HG changeset patch # User Stefan Anzinger # Date 1398341380 -7200 # Node ID 9a40006b53c14af67a13661ba16a101215b0a81d # Parent e5a8608f7d635c49664802fc52e60a158d178dd9 Make proper code for c const strings required for fixup in hotspot diff -r e5a8608f7d63 -r 9a40006b53c1 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCConstDataOp.java --- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCConstDataOp.java Thu Apr 24 14:02:20 2014 +0200 +++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCConstDataOp.java Thu Apr 24 14:09:40 2014 +0200 @@ -2,12 +2,17 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.*; +import com.oracle.graal.api.code.*; import com.oracle.graal.api.code.CompilationResult.RawData; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.sparc.*; +import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.lir.sparc.SPARCMove.LoadAddressOp; +import com.oracle.graal.sparc.*; +import com.sun.javafx.binding.SelectBinding.*; +@Opcode("CONST_DATA") public class SPARCConstDataOp extends SPARCLIRInstruction { @Def({REG}) private AllocatableValue dst; @@ -20,8 +25,10 @@ @Override public void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) { - RawData data = new RawData(val, 16); - new LoadAddressOp(dst, (SPARCAddress) crb.recordDataReferenceInCode(data)).emitCode(crb); + Register dstReg = ValueUtil.asLongReg(dst); + long addr = 0; // Will be fixed up by the loader + new SPARCAssembler.Sethi((int) addr, dstReg).emit(masm); + new SPARCAssembler.Add(SPARC.g0, (int) addr, dstReg).emit(masm); } }