@Override
		public void evaluate(Emulate emu, Varnode out, Varnode[] inputs) {
			if (out == null) {
				throw new LowlevelError("CALLOTHER: Find First One op missing required output");
			}

			if (inputs.length != 2 || inputs[1].getSize() == 0 || !inputs[1].isRegister()) {
				throw new LowlevelError(
					"CALLOTHER: Find First One op requires one register varnode input");
			}

			Varnode in = inputs[1];
			MemoryState memoryState = emu.getMemoryState();

			long value = memoryState.getValue(in);
			long size = in.getSize() * 8;
			long count = size - 1;
			long mask = 1L << count;
			while ((count >= 0) && ((mask & value) == 0)) {
				--count;
				value = value << 1;
			}

			memoryState.setValue(out, count >= 0 ? count : size);
		}
Use ISM register value to establish ISA_MODE when branching/calling. If
ISM = 0, check for odd destination address which may occur when
jumping/returning indirectly to Thumb mode. It is assumed that language
will properly handle context changes during the flow of execution, we
need only fix the current program counter.
Ghidra/Processors/68000/src/main/java/ghidra/program/emulation/m68kEmulateInstructionStateModifier.java