Commit 29012852 authored by Yi Lin's avatar Yi Lin

new baseline use_nonop_yp

parent 222cf49b
......@@ -37,6 +37,7 @@ public class Config {
public static final int USE_NOP1_YP = 21;
public static final int USE_NOP4_YP = 24;
public static final int USE_NOP6_YP = 26;
public static final int USE_NONOP_YP = 30;
public final boolean ENABLE_YP_STAT;
......@@ -64,6 +65,8 @@ public class Config {
YIELDPOINT_IMPL = USE_NOP1_YP;
} else if (config.getBooleanProperty("mmtk.use_nop4_yp", false)) {
YIELDPOINT_IMPL = USE_NOP4_YP;
} else if (config.getBooleanProperty("mmtk.use_nonop_yp", false)) {
YIELDPOINT_IMPL = USE_NONOP_YP;
}
else if (config.getBooleanProperty("mmtk.use_nop6_yp", false)) {
YIELDPOINT_IMPL = USE_NOP6_YP;
......
#
# This file is part of the Jikes RVM project (http://jikesrvm.org).
#
# This file is licensed to You under the Eclipse Public License (EPL);
# You may not use this file except in compliance with the License. You
# may obtain a copy of the License at
#
# http://www.opensource.org/licenses/eclipse-1.0.php
#
# See the COPYRIGHT.txt file distributed with this work for information
# regarding copyright ownership.
#
# Default MMTk properties file.
mmtk.use_nonop_yp = true
......@@ -1341,6 +1341,11 @@ public class GenerateAssembler {
emitTab(4);
emit("break;\n");
emitTab(3);
emit("case FORCENONOP_opcode:\n");
emitTab(4);
emit("break;\n");
Set<String> errorOpcodes = getErrorOpcodes(emittedOpcodes);
if (!errorOpcodes.isEmpty()) {
i = errorOpcodes.iterator();
......
......@@ -410,6 +410,14 @@ stm: FORCE6NOP
EMIT_INSTRUCTION
EMIT(P(p));
##############
#
########
stm: FORCENONOP
10
EMIT_INSTRUCTION
EMIT(P(p));
#####
# GUARD_MOVE
#####
......
......@@ -539,6 +539,13 @@ none
# force NONOP
FORCENONOP
Empty
none
# Move an integer value from one (register/constant) operand
# to a register operand. Value is unchanged.
INT_MOVE
......
......@@ -3970,6 +3970,9 @@ public abstract class BaselineCompilerImpl extends BaselineCompiler implements B
else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NOP6_YP) {
asm.emitNOP(6);
}
else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NONOP_YP) {
}
// global yieldpoint
else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_GLOBAL_CHECKING_YP) {
......
......@@ -53,6 +53,7 @@ import static org.jikesrvm.compilers.opt.ir.Operators.NOP;
import static org.jikesrvm.compilers.opt.ir.Operators.FORCENOP;
import static org.jikesrvm.compilers.opt.ir.Operators.FORCE4NOP;
import static org.jikesrvm.compilers.opt.ir.Operators.FORCE6NOP;
import static org.jikesrvm.compilers.opt.ir.Operators.FORCENONOP;
import static org.jikesrvm.compilers.opt.ir.Operators.IA32_ADD;
import static org.jikesrvm.compilers.opt.ir.Operators.IA32_CALL;
import static org.jikesrvm.compilers.opt.ir.Operators.IA32_CMP;
......@@ -437,6 +438,8 @@ public class FinalMIRExpansion extends IRTools {
expandNopYieldpoint(p, ir, 6);
} else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NOP4_YP) {
expandNopYieldpoint(p, ir, 4);
} else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NONOP_YP) {
expandNopYieldpoint(p, ir, 0);
}
break;
......@@ -465,6 +468,8 @@ public class FinalMIRExpansion extends IRTools {
expandNopYieldpoint(p, ir, 6);
} else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NOP4_YP) {
expandNopYieldpoint(p, ir, 4);
} else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NONOP_YP) {
expandNopYieldpoint(p, ir, 0);
}
break;
......@@ -493,6 +498,8 @@ public class FinalMIRExpansion extends IRTools {
expandNopYieldpoint(p, ir, 6);
} else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NOP4_YP) {
expandNopYieldpoint(p, ir, 4);
} else if (org.mmtk.vm.VM.config.YIELDPOINT_IMPL == org.mmtk.vm.Config.USE_NONOP_YP) {
expandNopYieldpoint(p, ir, 0);
}
break;
......@@ -515,6 +522,8 @@ private static void expandNopYieldpoint(Instruction p, IR ir, int n) {
}
else if (n == 6) {
nop = Empty.create(FORCE6NOP);
} else if (n == 0) {
nop = Empty.create(FORCENONOP);
}
p.insertBefore(nop);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment