change zbranch to zret, fix tail call optimization