1. A method of processing a first instruction stream, the method comprising: unbundling groups of instructions in the first instruction stream into unbundled instructions; translating at least some of the unbundled instructions; and performing instruction group rebundling with the translated instructions, wherein the rebundling includes puffing instructions back into a bundle to ensure that order of instructions is preserved, and that processor-specific bundling constraints are followed, and wherein a number of operations are performed for unbundling, translating and rebundling, the number of operations upper-bounded by a linear function of a number of instructions or instruction bundles being translated.