title: golang: what assembly instructions are available
body: <p>I've got a program that I'm running on an ARM and I'm writing one function of it in assembly.  I've made good progress on this, although I've found it difficult sometimes to figure out exactly how to write certain instructions for go's assembler, for example, I didn't expect a right shift to be written like this:</p>
  
  <p>MOVW    R3>>8, R3</p>
  
  <p>Now I want to do a multiply and accumulate (MLA), according to this doc not all opcodes are supported, so maybe MLA isn't, but I don't know how to tell if it is or not.  I see mentions of MLA with regards to ARM in the golang repo, but I'm not really sure what to make of what I see there.</p>
  
  <p>Is there anywhere that documents what instructions are supported and how to write them?  Can anyone give me any useful pointers?</p>