# pLoadFlt

Syntax: | Copy
    #ilASM{
        [32]
            lea esi,[a]
            call :%pLoadFlt     -- st0:=[esi]
        [64]
            lea rsi,[a]
            call :%pLoadFlt     -- st0:=[rsi]
        []
          }
Description: | Load [e|rsi] into st0, whether it is an integer or floating-point. NB no checks are made to verify [e|rsi] is actually/definitely an atom. While this is untested, it would probably work fine if e|rsi was set to the address of a string that happened to contain the right binary representation of an appropriately-sized floating point value, but all other string/sequence values will just result in random garbage being loaded into st0. Most uses of this are either carefully manually tested first, or sufficiently localised that any additional internal testing is not justified. Aside: Just after documenting this, a search revealed it is not [yet] used anywhere at all..
On return: | [32] eax is damaged, all other registers are preserved. [64] rax is damaged, r15 is set to h4, all other registers are preserved.
Defined in: | builtins\VM\pHeap.e