I'd have an opcode which pushes a literal value onto the stack, & on occasion we'd need to swap values. Followed by a 32bit value unless its a bool or nil. Occasionally we may need to duplicate or maybe swap or pop the top-of-stack.
I'd have a goto opcode that sets the program counter, & conditional gotos which branch depending on if the top-of-stack is false or nil.
I specifically include "maybe ops" in the CPU so simpler sub-opcodes for maths can be interpreted by the CPU itself.
2/5?