public void stepOp(PcodeOp op, PcodeFrame frame, PcodeUseropLibrary<T> library) {
		OpBehavior b = OpBehaviorFactory.getOpBehavior(op.getOpcode());
		switch (b) {
			case null -> badOp(op);
			case UnaryOpBehavior unOp -> executeUnaryOp(op, unOp);
			case BinaryOpBehavior binOp -> executeBinaryOp(op, binOp);
			default -> {
				switch (op.getOpcode()) {
					case PcodeOp.LOAD -> executeLoad(op);
					case PcodeOp.STORE -> executeStore(op);
					case PcodeOp.BRANCH -> executeBranch(op, frame);
					case PcodeOp.CBRANCH -> executeConditionalBranch(op, frame);
					case PcodeOp.BRANCHIND -> executeIndirectBranch(op, frame);
					case PcodeOp.CALL -> executeCall(op, frame, library);
					case PcodeOp.CALLIND -> executeIndirectCall(op, frame);
					case PcodeOp.CALLOTHER -> executeCallother(op, frame, library);
					case PcodeOp.RETURN -> executeReturn(op, frame);
					default -> badOp(op);
				}
			}
		}
	}
Step one p-code op

@param op the op
@param frame the current frame
@param library the library, invoked in case of {@link PcodeOp#CALLOTHER}
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/exec/PcodeExecutor.java