RP.ROM.Floating_Point

Entities

Subprograms

Description

fadd

function fadd (A, B : Float) return Float
Parameters
A
B
Return Value

fcos

function fcos (V : Float) return Float

with Export, Convention => C, External_Name => "cosf";

Parameters
V
Return Value

fdiv

function fdiv (A, B : Float) return Float
Parameters
A
B
Return Value

fexp

function fexp (V : Float) return Float

with Export, Convention => C, External_Name => "expf";

Parameters
V
Return Value

fln

function fln (V : Float) return Float

with Export, Convention => C, External_Name => "logf";

Parameters
V
Return Value

float2int

function float2int (V : Float) return int

pico-sdk rewrites this one too

Parameters
V
Return Value

float2uint

function float2uint (V : Float) return unsigned
Parameters
V
Return Value

fmul

function fmul (A, B : Float) return Float
Parameters
A
B
Return Value

frsub

function frsub (A, B : Float) return Float
Parameters
A
B
Return Value

fsin

function fsin (V : Float) return Float

with Export, Convention => C, External_Name => "sinf";

Parameters
V
Return Value

fsqrt

function fsqrt (V : Float) return Float
Parameters
V
Return Value

fsub

function fsub (A, B : Float) return Float
Parameters
A
B
Return Value

ftan

function ftan (V : Float) return Float

with Export, Convention => C, External_Name => "tanf";

Parameters
V
Return Value

Initialize

procedure Initialize

__gnat_initialize_bootrom must be called before any of the __aeabi functions, which means it needs to be called before elaboration. crt0.S takes care of this, unless Use_Startup=false.

int2float

function int2float (V : int) return Float

pico-sdk doesn't use int2float and instead implements __aeabi_i2f in software. Maybe the ROM is missing an edge case?

Parameters
V
Return Value

uint2float

function uint2float (V : unsigned) return Float
Parameters
V
Return Value