@instruction<EOL><INDENT>def PUSH(cpu, src):<DEDENT>
<EOL>size = src.size<EOL>v = src.read()<EOL>if size != <NUM_LIT:64> and size != cpu.address_bit_size // <NUM_LIT:2>:<EOL><INDENT>v = Operators.SEXTEND(v, size, cpu.address_bit_size)<EOL>size = cpu.address_bit_size<EOL><DEDENT>cpu.push(v, size)<EOL>
Pushes a value onto the stack.

Decrements the stack pointer and then stores the source operand on the top of the stack.

:param cpu: current CPU.
:param src: source operand.