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 };