[fpc-devel] What's the difference between -Cp and -Op?

Jonas Maebe jonas at freepascal.org
Wed Sep 7 20:15:10 CEST 2022

On 2022-09-07 16:34, J. Gareth Moreton via fpc-devel wrote:
> So this one has eluded me a little bit... what's the exact difference
> between the -Cp and -Op options?

-Cp: the code is only guaranteed to run on this cpu and usually also 
later ones (the code generator/optimiser can use instruction that are 
not available on earlier/other cpus). E.g.: use BMI2 instructions.
-Op: the code is optimised for this cpu, but will still run on 
earlier/later ones. E.g., use lea instead of shl on a particular cpu 
because it's faster there, even if it's not the case on all of them.
-Cf: use this instruction set to perform floating point calculations. It 
is independently handled from the two previous settings, even if it can 
indirectly also influence the minimum required CPU.


More information about the fpc-devel mailing list