title: Why MIPS doesn't take additional function arguments in $v0 and $v1
body: <p>According to the MIPS documentation, functions output is stored in <code>$v0</code>-<code>$v1</code> (up to 64 bits), and the function arguments are given in <code>$a0</code>-<code>$a3</code>, where any additional arguments are written to the stack.</p>
  <p>Since the function is allowed to overwrite the values of <code>$v0</code>-<code>$v1</code>, wouldn't it be better to pass the function fifth argument (if such exist) on <code>$v0</code>?</p>
  <p>What is the motivation for using the stack in this case?</p>