ai.timefold.jpyinterpreter.opcodes.stack.DupOpcode Maven / Gradle / Ivy
package ai.timefold.jpyinterpreter.opcodes.stack;
import ai.timefold.jpyinterpreter.FunctionMetadata;
import ai.timefold.jpyinterpreter.PythonBytecodeInstruction;
import ai.timefold.jpyinterpreter.StackMetadata;
import ai.timefold.jpyinterpreter.implementors.StackManipulationImplementor;
import ai.timefold.jpyinterpreter.opcodes.AbstractOpcode;
public class DupOpcode extends AbstractOpcode {
public DupOpcode(PythonBytecodeInstruction instruction) {
super(instruction);
}
@Override
public StackMetadata getStackMetadataAfterInstruction(FunctionMetadata functionMetadata,
StackMetadata stackMetadata) {
return stackMetadata.push(stackMetadata.getTOSValueSource());
}
@Override
public void implement(FunctionMetadata functionMetadata, StackMetadata stackMetadata) {
StackManipulationImplementor.duplicateTOS(functionMetadata.methodVisitor);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy