I am working on a microcontroller that uses the ARM Cortex-R4F CPU. I would like to know that when performing single precision floating point calculations, where the FPU stores intermediate results in double precision before rounding and storing the final result in single precision?
Hi, i do not need access to it but would like to understand whether single precision calculations on the FPU get better accuracy and precision because internally it uses double precision to store intermediate results before storing the final result in single precision format,
are you, perhaps, confusing what the FPU hardware does internally, with what code generated by a high-level language compiler (eg, 'C') does in software ... ?
Thanks. I would like to know how the FPU hardware deals with single precision calculations. For example on Intel PCs, even if the code is using single precision floats (e.g. float in C ), the hardware internally used extended precision (80 bits) to store the results from intermediate calculations and then rounds the final result to single before writing to the register. I wonder whether the FPU hardware on the ARM does something similar? The ARM Cortex R4 FPU documentations seems to suggest it only had double precision registers so I wonder whether singles are promoted to doubles in the hardware.
View all questions in Cortex-R / R-Profile forum