1 /*
2  * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef _PICO_BOOTROM_SF_TABLE_H
8 #define _PICO_BOOTROM_SF_TABLE_H
9 
10 // NOTE THESE FUNCTION IMPLEMENTATIONS MATCH THE BEHAVIOR DESCRIBED IN THE BOOTROM SECTION OF THE RP2040 DATASHEET
11 
12 #define SF_TABLE_FADD               0x00
13 #define SF_TABLE_FSUB               0x04
14 #define SF_TABLE_FMUL               0x08
15 #define SF_TABLE_FDIV               0x0c
16 #define SF_TABLE_FCMP_FAST          0x10
17 #define SF_TABLE_FCMP_FAST_FLAGS    0x14
18 #define SF_TABLE_FSQRT              0x18
19 #define SF_TABLE_FLOAT2INT          0x1c
20 #define SF_TABLE_FLOAT2FIX          0x20
21 #define SF_TABLE_FLOAT2UINT         0x24
22 #define SF_TABLE_FLOAT2UFIX         0x28
23 #define SF_TABLE_INT2FLOAT          0x2c
24 #define SF_TABLE_FIX2FLOAT          0x30
25 #define SF_TABLE_UINT2FLOAT         0x34
26 #define SF_TABLE_UFIX2FLOAT         0x38
27 #define SF_TABLE_FCOS               0x3c
28 #define SF_TABLE_FSIN               0x40
29 #define SF_TABLE_FTAN               0x44
30 #define SF_TABLE_V3_FSINCOS         0x48
31 #define SF_TABLE_FEXP               0x4c
32 #define SF_TABLE_FLN                0x50
33 
34 #define SF_TABLE_V1_SIZE            0x54
35 
36 #define SF_TABLE_FCMP_BASIC         0x54
37 #define SF_TABLE_FATAN2             0x58
38 #define SF_TABLE_INT642FLOAT        0x5c
39 #define SF_TABLE_FIX642FLOAT        0x60
40 #define SF_TABLE_UINT642FLOAT       0x64
41 #define SF_TABLE_UFIX642FLOAT       0x68
42 #define SF_TABLE_FLOAT2INT64        0x6c
43 #define SF_TABLE_FLOAT2FIX64        0x70
44 #define SF_TABLE_FLOAT2UINT64       0x74
45 #define SF_TABLE_FLOAT2UFIX64       0x78
46 #define SF_TABLE_FLOAT2DOUBLE       0x7c
47 
48 #define SF_TABLE_V2_SIZE            0x80
49 
50 #endif
51