# HG changeset patch # User Roland Schatz # Date 1374154627 -7200 # Node ID 5fced75a7f57552785a531dc26d8612e231b9d2b # Parent 4e1db4c9d4c573d0bb2c731b8be874a77dfb1f27 Unit test for raw data patch. diff -r 4e1db4c9d4c5 -r 5fced75a7f57 graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java --- a/graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java Thu Jul 18 15:37:02 2013 +0200 +++ b/graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java Thu Jul 18 15:37:07 2013 +0200 @@ -22,11 +22,13 @@ */ package com.oracle.graal.asm.amd64.test; +import java.nio.*; + import org.junit.*; import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; -import com.oracle.graal.asm.*; +import com.oracle.graal.asm.Buffer; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.asm.test.*; @@ -65,6 +67,26 @@ assertReturn("doubleStub", test, 84.72); } + @Test + public void rawDoubleTest() { + CodeGenTest test = new CodeGenTest() { + + @Override + public Buffer generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig, CallingConvention cc) { + AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig); + Register ret = registerConfig.getReturnRegister(Kind.Double); + + byte[] rawBytes = new byte[8]; + ByteBuffer.wrap(rawBytes).order(ByteOrder.nativeOrder()).putDouble(84.72); + compResult.recordDataReference(asm.codeBuffer.position(), rawBytes, 8); + asm.movdbl(ret, asm.getPlaceholder()); + asm.ret(0); + return asm.codeBuffer; + } + }; + assertReturn("doubleStub", test, 84.72); + } + public static int intStub() { return 0; }