# HG changeset patch # User Roland Schatz # Date 1360343140 -3600 # Node ID 52fd6491fca8ae7c987825adaca9269c7d7b844e # Parent 2d57a3bd82ab947ad9a218c7808915fef8cf583d avoid generics diff -r 2d57a3bd82ab -r 52fd6491fca8 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 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 { - - @Override - protected AMD64MacroAssembler createAssembler(TargetDescription target, RegisterConfig registerConfig) { - return new AMD64MacroAssembler(target, registerConfig); - } +public class SimpleAssemblerTest extends AssemblerTest { @Test public void intTest() { - CodeGenTest test = new CodeGenTest() { + 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 test = new CodeGenTest() { + 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); diff -r 2d57a3bd82ab -r 52fd6491fca8 graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java --- 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 extends GraalTest { +public abstract class AssemblerTest extends GraalTest { protected final CodeCacheProvider codeCache; - public interface CodeGenTest { + 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 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 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);