Mercurial > hg > graal-jvmci-8
changeset 3172:80af9762097a
Generating safepoints.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Wed, 06 Jul 2011 17:53:05 +0200 |
parents | f9f3059830e9 |
children | 5ad8481bebfc |
files | graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotXirGenerator.java |
diffstat | 3 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Wed Jul 06 17:15:43 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/GraalOptions.java Wed Jul 06 17:53:05 2011 +0200 @@ -129,6 +129,7 @@ public static boolean UseBranchPrediction = true; public static boolean UseExceptionProbability = ____; public static int MatureInvocationCount = 100; + public static boolean GenSafepoints = true; public static boolean UseConstDirectCall = ____;
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java Wed Jul 06 17:15:43 2011 +0200 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/gen/LIRGenerator.java Wed Jul 06 17:53:05 2011 +0200 @@ -1505,6 +1505,9 @@ public void visitLoopEnd(LoopEnd x) { setNoResult(x); moveToPhi(x.loopBegin(), x); + if (GraalOptions.GenSafepoints) { + xir.genSafepoint(site(x)); + } lir.jump(getLIRBlock(x.loopBegin())); }
--- a/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotXirGenerator.java Wed Jul 06 17:15:43 2011 +0200 +++ b/graal/com.oracle.max.graal.runtime/src/com/oracle/max/graal/runtime/HotSpotXirGenerator.java Wed Jul 06 17:53:05 2011 +0200 @@ -164,8 +164,8 @@ protected XirTemplate create(CiXirAssembler asm, long flags) { asm.restart(CiKind.Void); - // XirOperand temp = asm.createRegister("temp", CiKind.Word, AMD64.rax); - // asm.pload(CiKind.Word, temp, asm.w(config.safepointPollingAddress), true); + XirOperand temp = asm.createRegister("temp", CiKind.Word, AMD64.rax); + asm.pload(CiKind.Word, temp, asm.w(config.safepointPollingAddress), true); return asm.finishTemplate("safepoint"); }