title: (MIPS) are some assembly instructions faster than others?
body: <p>Are certain bare MIPS instructions faster than others?  The question that sparked my interest was multiplying a register by a power of 2.</p>
  
  <p>Let's assume $t0 has a number that won't overflow.  If I want to multiply that register by 8, is there any quantifiable performance difference between:</p>
  
  <p><strong>a 3-bit sll:</strong></p>
  
  <pre><code>    sll     $t0,  $t0,3
  </code></pre>
  
  <p><strong>using the mul command (assume $t8's value is 8):</strong></p>
  
  <pre><code>    mul     $t0,  $t0,$t8
  </code></pre>
  
  <p><strong>or using the mult command?</strong></p>
  
  <pre><code>    mult    $t0,  $t0,$t8
  </code></pre>
  
  <p>Each example consists of a single instruction, but I don't know if one's faster than the other.  Intuition makes me think mul is faster than mult, since there's no storage of the extraneous bits into HI (is that correct?)</p>
  
  <p>Alternatively, does anyone know of any articles/webpages on the topic of individual instruction speed in assembly (MIPS or whatever)?  I would imagine that the different instructions are composed of different circuitry/hardware, and that every instruction executes in different amounts of time, but I can't seem to find any resources about this online.</p>
  
  <p>I'm very new to MIPS/assembly, so please forgive me for not running a timing example (or for potentially using incorrect syntax in my examples above).</p>