1. A method in a data processing system for dynamically allocating resources for a plurality of different types of events that occur within a microprocessor, said method comprising the steps of: providing a plurality of unallocated resources; and allocating one of said plurality of unallocated resources only in response to a first occurrence of an event that is one of said plurality of different types of events, wherein resources remain unallocated until a first occurrence of events for which resources are then allocated.