Thank you for your interest and response!
My main problem (and the reason to send the email before) is how to create 'common' value for branches as you have noticed. The code snippet which I sent only simplifies what is automatically generated when analyzing some virtual machine bytecode. I think I will try not only to manage the stack 'top' variable directly in the host program (as it is right now) but I will create stack and top variables as libjit data structures which are also modified using jit_insn functions. Thus I hope to be able to create values inside branches (push and pop) and later return values from stack top. I will let you know if that approach works.