public void executeBranch(PcodeOpRaw op) {
		Address destaddr = op.getInput(0).getAddress();
		if (destaddr.getAddressSpace().isConstantSpace()) {
			long id = destaddr.getOffset();
			id = id + current_op;
			current_op = (int) id;
			if (current_op == pcode.length) {
				fallthruOp();
			}
			else if ((current_op < 0) || (current_op >= pcode.length)) {
				throw new LowlevelError("Bad intra-instruction branch");
			}
		}
		else {
			setCurrentAddress(destaddr);
		}
	}
Since the full instruction is cached, we can do relative branches properly

@param op is the particular branch op being executed
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emulate/Emulate.java