Despite being advanced for the time, the Pentium Pro's out-of-order register renaming architecture had trouble with running 16-bit code and mixed code (8/16-bit or 16/32-bit), as using partial registers cause frequent pipeline flushing. Specific use of partial registers was a common performance optimization in the day, as it incurred no performance penalty on pre-P6 Intel processors; also, the dominant operating systems at the time of the Pentium Pro's release were 16-bit DOS and the mixed 16/32-bit Windows 3.1x and Windows 95 (although the latter requires a 32-bit 80386 CPU, much of its code is still 16-bit for performance reasons, such as USER.exe). This, together with the high cost of Pentium Pro systems, caused rather lackluster reception among PC enthusiasts at the time. To take full advantage of the Pentium Pro's P6 microarchitecture, a fully 32-bit OS is needed, such as Windows NT, Linux, Unix, or OS/2. The performance issues on legacy code were later partially mitigated by Intel with the Pentium II.