The invention describes a method for executing structured symbolic 
machine code on a 
microprocessor. Said structured symbolic 
machine code contains a set of one or more regions, where each of said regions contains symbolic 
machine code containing, in addition to the proper instructions, information about the symbolic variables, the symbolic constants, the 
branch tree, pointers and functions arguments used within each of said regions. This information is fetched by the 
microprocessor from the instruction cache and stored into dedicated memories before the proper instructions of each region are fetched and executed. Said information is used by the 
microprocessor in order to improve the 
degree of parallelism achieved during 
instruction scheduling and execution. Among other purposes, said information allows the microprocessor to perform so-called speculative 
branch prediction. Speculative 
branch prediction does branch prediction along a branch path containing several dependent branches in the shortest time possible (in only a few 
clock cycles) without having to wait for branches to resolve. This is a key issue which allows to apply region scheduling in practice, e.g. treegion scheduling, where 
machine code must be fetched and speculatively executed from the trace having highest probability or confidence among several traces. This allows to use the computation resources (e.g. the FUs) of the microprocessor in the most efficient way. Finally, said information allows to re-execute instructions in the right order and to overwrite wrong data with the correct ones when miss-predictions occur.