1. A method for forwarding data within a pipeline of a pipelined data processor comprising the steps of: providing a plurality of execution pipeline stages where each stage accepts a plurality of operand inputs and generates a result; providing a pipefile comprising at least the same number of entries as the number of execution pipeline stages; assigning each new instruction to one of the entries in the pipefile before the new instruction is executed, wherein the pipefile entry assignment remains valid while the instruction remains in any of the execution pipeline stages; passing the new instruction through the execution pipeline stages to generate a result; storing the result in the assigned pipefile entry; and upon successful completion of executing the new instruction, writing back the result from the assigned pipefile entry to an architectural register.