changeset 7749:52fd6491fca8

avoid generics
author Roland Schatz <roland.schatz@oracle.com>
date Fri, 08 Feb 2013 18:05:40 +0100
parents 2d57a3bd82ab
children e8c71b8562e3 98143feb3879 e393b8156c42
files graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java
diffstat 2 files changed, 18 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java	Fri Feb 08 14:37:55 2013 +0100
+++ b/graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/SimpleAssemblerTest.java	Fri Feb 08 18:05:40 2013 +0100
@@ -26,25 +26,23 @@
 
 import com.oracle.graal.api.code.*;
 import com.oracle.graal.api.meta.*;
+import com.oracle.graal.asm.*;
 import com.oracle.graal.asm.amd64.*;
 import com.oracle.graal.asm.test.*;
 
-public class SimpleAssemblerTest extends AssemblerTest<AMD64MacroAssembler> {
-
-    @Override
-    protected AMD64MacroAssembler createAssembler(TargetDescription target, RegisterConfig registerConfig) {
-        return new AMD64MacroAssembler(target, registerConfig);
-    }
+public class SimpleAssemblerTest extends AssemblerTest {
 
     @Test
     public void intTest() {
-        CodeGenTest<AMD64Assembler> test = new CodeGenTest<AMD64Assembler>() {
+        CodeGenTest test = new CodeGenTest() {
 
             @Override
-            public void generateCode(CompilationResult compResult, AMD64Assembler asm, RegisterConfig registerConfig) {
+            public Buffer generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig) {
+                AMD64Assembler asm = new AMD64Assembler(target, registerConfig);
                 Register ret = registerConfig.getReturnRegister(Kind.Int);
                 asm.movl(ret, 8472);
                 asm.ret(0);
+                return asm.codeBuffer;
             }
         };
         assertReturn("intStub", test, 8472);
@@ -52,14 +50,16 @@
 
     @Test
     public void doubleTest() {
-        CodeGenTest<AMD64MacroAssembler> test = new CodeGenTest<AMD64MacroAssembler>() {
+        CodeGenTest test = new CodeGenTest() {
 
             @Override
-            public void generateCode(CompilationResult compResult, AMD64MacroAssembler asm, RegisterConfig registerConfig) {
+            public Buffer generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig) {
+                AMD64MacroAssembler asm = new AMD64MacroAssembler(target, registerConfig);
                 Register ret = registerConfig.getReturnRegister(Kind.Double);
                 compResult.recordDataReference(asm.codeBuffer.position(), Constant.forDouble(84.72), 8, false);
                 asm.movdbl(ret, Address.Placeholder);
                 asm.ret(0);
+                return asm.codeBuffer;
             }
         };
         assertReturn("doubleStub", test, 84.72);
--- a/graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java	Fri Feb 08 14:37:55 2013 +0100
+++ b/graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java	Fri Feb 08 18:05:40 2013 +0100
@@ -32,37 +32,32 @@
 import com.oracle.graal.asm.*;
 import com.oracle.graal.test.*;
 
-public abstract class AssemblerTest<T extends AbstractAssembler> extends GraalTest {
+public abstract class AssemblerTest extends GraalTest {
 
     protected final CodeCacheProvider codeCache;
 
-    public interface CodeGenTest<T> {
+    public interface CodeGenTest {
 
-        void generateCode(CompilationResult compResult, T asm, RegisterConfig registerConfig);
+        Buffer generateCode(CompilationResult compResult, TargetDescription target, RegisterConfig registerConfig);
     }
 
     public AssemblerTest() {
         this.codeCache = Graal.getRequiredCapability(CodeCacheProvider.class);
     }
 
-    protected abstract T createAssembler(TargetDescription target, RegisterConfig registerConfig);
-
-    protected InstalledCode assembleMethod(Method m, CodeGenTest<? super T> test) {
+    protected InstalledCode assembleMethod(Method m, CodeGenTest test) {
         ResolvedJavaMethod method = codeCache.lookupJavaMethod(m);
         RegisterConfig registerConfig = codeCache.lookupRegisterConfig(method);
 
         CompilationResult compResult = new CompilationResult();
-        T asm = createAssembler(codeCache.getTarget(), registerConfig);
-
-        test.generateCode(compResult, asm, registerConfig);
 
-        compResult.setTargetCode(asm.codeBuffer.close(true), asm.codeBuffer.position());
-        InstalledCode code = codeCache.addMethod(method, compResult, null);
+        Buffer codeBuffer = test.generateCode(compResult, codeCache.getTarget(), registerConfig);
+        compResult.setTargetCode(codeBuffer.close(true), codeBuffer.position());
 
-        return code;
+        return codeCache.addMethod(method, compResult, null);
     }
 
-    protected void assertReturn(String methodName, CodeGenTest<? super T> test, Object expected, Object... args) {
+    protected void assertReturn(String methodName, CodeGenTest test, Object expected, Object... args) {
         Method method = getMethod(methodName);
         InstalledCode code = assembleMethod(method, test);