7.61 --float_literal_pools, --no_float_literal_pools

Controls whether the compiler places floating-point and vector constants in literal pools.

With the --float_literal_pools option, where there are floating-point or vector constants in source code and hardware support is available, the compiler generates code that loads those constants from literal pools using VFP or NEON instructions:
** Section #1 '.text' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
    Size   : 12 bytes (alignment 4)
    Address: 0x00000000

    $a
    .text
    main
        0x00000000:    ed9f0a00    ....    VLDR     s0,[pc,#0] ; [0x8] = 0x42280000
        0x00000004:    eafffffe    ....    B        f
    $d
        0x00000008:    42280000    ..(B    DCD    1109917696
With the --no_float_literal_pools option, the compiler generates code that loads these constants using core instruction set loads and reinterprets them as floats or vectors:
** Section #1 '.text' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
    Size   : 16 bytes (alignment 4)
    Address: 0x00000000

    $a
    .text
    main
        0x00000000:    e59f0004    ....    LDR      r0,[pc,#4] ; [0xc] = 0x42280000
        0x00000004:    ee000a10    ....    VMOV     s0,r0
        0x00000008:    eafffffe    ....    B        f
    $d
        0x0000000c:    42280000    ..(B    DCD    1109917696
If you also specify the --no_integer_literal_pools option, the compiler constructs these constants with sequences of MOVW and MOVT instructions.
This option also controls integer vectors.

Default

The default is --float_literal_pools.
--execute_only implies --no_float_literal_pools, unless --float_literal_pools is explicitly specified.
Related concepts
3.19 Compiler support for literal pools
Related reference
7.81 --integer_literal_pools, --no_integer_literal_pools
7.147 --string_literal_pools, --no_string_literal_pools
7.14 --branch_tables, --no_branch_tables
7.58 --execute_only
Non-ConfidentialPDF file icon PDF versionARM DUI0375E
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.