Patent ID: 8078849

Claim:
A method, performed by a data processing system, the method comprising: executing, via a processor of the data processing system, a computer program including a plurality of microcode instructions, where one of the plurality of microcode instructions is a branch instruction having a plurality of conditions specified by the branch instruction; defining, via the processor, a branch table mapping a branch code to a branch function entry, where the branch code corresponds to a conditional branch function stored in the branch function entry, and the branch function entry corresponds to a collection of outcome elements, where the collection of outcome elements represents possible offsets to be added to a base address to determine an address of a next instruction pointed to by a program counter associated with the data processing system; selecting, via the processor, a branch function entry from the branch table based on the branch instructions; selecting, via the processor, an outcome element from the collection of outcome elements of the selected branch function entry based on at least one condition code generated by a packet processing engine of the data processing system; determining, via the processor, a proper offset to be added to a base address to determine the address of the next instruction pointed to by the program counter based on the selected outcome element; jumping, using the processor, to the determined address of the next instruction; and executing, via the processor, the next instruction pointed to by the program counter.