On Tue, Nov 29, 2016 at 8:59 PM, matt <matthew.horsn...@gmail.com> wrote: > Where in the source code does it map say MOVBU.P to ldrb post increment?
It's complicated, there's no trivial easily-visible mapping (although for this one instruction the actual concrete mapping chosen is probably trivial), there's relatively complex code that decides what to do with an instruction like MOVBU.P. Look in oplook, buildop and asmout. However, for the vast majority of instruction that still doesn't actually say "ldrb post increment" anywhere in the code. You just have to follow the code and functions like oprrr, opmvl, etc, and then read the bits. It's much easier to use objdump if you are unsure of a particular instruction. However, you rarely have to use objdump. Mostly only to add new instructions. Go uses consistent calling convention and syntax between architectures, and a large class of consistent pseudo-instructions like MOVW, MOVD, etc; the only things that vary are the more-specialized instructions and the name of the register. If you need a specialized instruction it's easy. It usually has the same name as the one from the platform manual (there are exceptions). If you don't need specialized instructions, just use generic instructions with whatever addressing mode that you want. If a particular address mode is not supported, or a multi-instruction sequence is not generated for a particular architecture and complex addressing mode the assembler will complain. You can always know what code means semantically, so there's no problem. Sometimes you want to see the actual generated code without any pseudo-instructions, when this is the case, just use objdump. I understand all this is not ideal, but it really isn't that bad. I write more assembly than Go these days, and I never have a problem with the lack of this mapping. That being said, for sparc64 there is indeed a much better documented mapping. -- Aram Hăvărneanu -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.