Split Temporary Variable

        eax = 1;
        ecx = eax*2;
        ...
        eax = 6;
        func(eax);

        eax1 = 1;
        ecx = eax1*2;
        ...
        eax2 = 6;
        func(eax2);

Motivation

In compiled code, the registers are recurrently used as temporary variables, having more than one responsibility in the code, which is confusing to the reader. A different temporary variable should be used for each responsibility.

Mechanics