changeset 10811:5fced75a7f57

Unit test for raw data patch.
author Roland Schatz <roland.schatz@oracle.com>
date Thu, 18 Jul 2013 15:37:07 +0200
parents 4e1db4c9d4c5
children dd95ee93c893
files graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java
diffstat 1 files changed, 23 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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;
     }