A more efficient method of handling instructions in a computer processor,
by associating resource fields with respective program instructions
wherein the resource fields indicate which of the processor hardware
resources are required to carry out the program instructions, calculating
resource requirements for merging two or more program instructions based
on their resource fields, and determining resource availability for
simultaneously executing the merged program instructions based on the
calculated resource requirements. Resource vectors indicative of the
required resource may be encoded into the resource fields, and the
resource fields decoded at a later stage to derive the resource vectors.
The resource fields can be stored in the instruction cache associated
with the respective program instructions. The processor may operate in a
simultaneous multithreading mode with different program instructions
being part of different hardware threads. When the resource availability
equals or exceeds the resource requirements for a group of instructions,
those instructions can be dispatched simultaneously to the hardware
resources. A start bit may be inserted in one of the program instructions
to define the instruction group. The hardware resources may in particular
be execution units such as a fixed-point unit, a load/store unit, a
floating-point unit, or a branch processing unit.