Mercurial > hg > truffle
comparison graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java @ 13576:4e679d50ba9a
Move data section building code to Java.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Thu, 09 Jan 2014 13:09:44 +0100 |
parents | 5fced75a7f57 |
children | 390c4b742890 |
comparison
equal
deleted
inserted
replaced
13575:55a8ca3f49f7 | 13576:4e679d50ba9a |
---|---|
25 import java.nio.*; | 25 import java.nio.*; |
26 | 26 |
27 import org.junit.*; | 27 import org.junit.*; |
28 | 28 |
29 import com.oracle.graal.api.code.*; | 29 import com.oracle.graal.api.code.*; |
30 import com.oracle.graal.api.code.CompilationResult.ConstantData; | |
31 import com.oracle.graal.api.code.CompilationResult.RawData; | |
30 import com.oracle.graal.api.meta.*; | 32 import com.oracle.graal.api.meta.*; |
31 import com.oracle.graal.asm.Buffer; | 33 import com.oracle.graal.asm.Buffer; |
32 import com.oracle.graal.asm.amd64.*; | 34 import com.oracle.graal.asm.amd64.*; |
33 import com.oracle.graal.asm.test.*; | 35 import com.oracle.graal.asm.test.*; |
34 | 36 |
56 | 58 |
57 @Override | 59 @Override |
58 public Buffer generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig, CallingConvention cc) { | 60 public Buffer generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig, CallingConvention cc) { |
59 AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig); | 61 AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig); |
60 Register ret = registerConfig.getReturnRegister(Kind.Double); | 62 Register ret = registerConfig.getReturnRegister(Kind.Double); |
61 compResult.recordDataReference(asm.codeBuffer.position(), Constant.forDouble(84.72), 8, false); | 63 compResult.recordDataReference(asm.codeBuffer.position(), new ConstantData(Constant.forDouble(84.72), 8)); |
62 asm.movdbl(ret, asm.getPlaceholder()); | 64 asm.movdbl(ret, asm.getPlaceholder()); |
63 asm.ret(0); | 65 asm.ret(0); |
64 return asm.codeBuffer; | 66 return asm.codeBuffer; |
65 } | 67 } |
66 }; | 68 }; |
76 AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig); | 78 AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig); |
77 Register ret = registerConfig.getReturnRegister(Kind.Double); | 79 Register ret = registerConfig.getReturnRegister(Kind.Double); |
78 | 80 |
79 byte[] rawBytes = new byte[8]; | 81 byte[] rawBytes = new byte[8]; |
80 ByteBuffer.wrap(rawBytes).order(ByteOrder.nativeOrder()).putDouble(84.72); | 82 ByteBuffer.wrap(rawBytes).order(ByteOrder.nativeOrder()).putDouble(84.72); |
81 compResult.recordDataReference(asm.codeBuffer.position(), rawBytes, 8); | 83 compResult.recordDataReference(asm.codeBuffer.position(), new RawData(rawBytes, 8)); |
82 asm.movdbl(ret, asm.getPlaceholder()); | 84 asm.movdbl(ret, asm.getPlaceholder()); |
83 asm.ret(0); | 85 asm.ret(0); |
84 return asm.codeBuffer; | 86 return asm.codeBuffer; |
85 } | 87 } |
86 }; | 88 }; |