This patch is another installment in the series of Nios II patches aimed at removing or isolating hard-wired instruction encodings. This will make the code more extensible for the future addition of new instruction set revisions. In this patch, all explicit matching of opcodes and masks in nios2_in_epilogue_p, nios2_analyze_prologue, and nios2_get_net_pc is eliminated in favor of invoking the disassembler (via nios2_find_opcode_hash) to do that part. A new set of helper functions are introduced to extract instruction operands according to the format of the matched instruction opcode. Future ISA extensions are likely to include multiple encodings of some logical operations, such as add or subtract, so this organization will allow those details to be consolidated in the new helper functions instead of handled inline at call sites for those functions. Also, organizing the analysis by what the instructions being examined conceptually do instead of by their format and encoding makes it easier to understand. This patch also fixes an outstanding bug in the code. Formerly, there were assumptions that the prologue and epilogue could only include one stack adjustment each. This used to be true of code emitted by GCC except for functions with stack frame too large to be addressed via a 16-bit offset. A change made to GCC earlier this year (r208472) to correct an ABI conformance issue also means that many functions with frame pointers now have an additional stack pointer adjustment too. In lifting the restriction, I made the prologue analyzer a little smarter in differentiating valid prologue stack adjustments (decrementing the SP, setting the FP from the SP) from those that can only appear in epilogues (incrementing the SP, setting the SP from the FP). Test results on nios2-elf look good. OK to commit? -Sandra