1. A non-transitory computer readable medium storing software code, when executed by a computer, for designing instruction extensions to supplement an existing processor instruction set architecture (ISA) and to supplement a plurality of existing software tools that support the existing processor ISA, the computer readable medium storing: code for receiving an instruction extension description for a new instruction from a user to supplement the existing processor ISA, the received instruction extension description excluding a description for the existing instruction set of the existing processor; and code for modifying the plurality of existing software tools to support the new instruction based on the received instruction extension description, wherein the code for modifying includes code for modifying an existing assembler, wherein the existing assembler encoding and decoding is grouped in a separate software library which is generated automatically using information in a description of the ISA.